int retval = 0;
visit vbuf;
int is_me = 0;
+ int is_guest = 0;
if (userbuf == &CC->user) {
is_me = 1;
}
- /*** temporary ObviousLog(tm) -- disregard this
- if (is_me) {
- CtdlLogPrintf(CTDL_DEBUG, "\033[32muserbuf==CC\033[0m\n");
+ if ((is_me) && (config.c_guest_logins) && (!CC->logged_in)) {
+ is_guest = 1;
}
- else {
- CtdlLogPrintf(CTDL_DEBUG, "\033[31muserbuf!=CC\033[0m\n");
- }
- ***/
/* for internal programs, always do everything */
if (((CC->internal_pgm)) && (roombuf->QRflags & QR_INUSE)) {
}
/* If guest mode is enabled, always grant access to the Lobby */
- if (
- (is_me)
- && (!CC->logged_in)
- && (config.c_guest_logins)
- && (!strcasecmp(roombuf->QRname, BASEROOM))
- ) {
+ if ((is_guest) && (!strcasecmp(roombuf->QRname, BASEROOM))) {
retval = (UA_KNOWN | UA_GOTOALLOWED);
vbuf.v_view = 0;
goto SKIP_EVERYTHING;
}
/* Locate any applicable user/room relationships */
- CtdlGetRelationship(&vbuf, userbuf, roombuf);
+ if (is_guest) {
+ memset(&vbuf, 0, sizeof vbuf);
+ }
+ else {
+ CtdlGetRelationship(&vbuf, userbuf, roombuf);
+ }
/* Force the properties of the Aide room */
if (!strcasecmp(roombuf->QRname, config.c_aideroom)) {
if (CtdlAccessCheck(ac_logged_in_or_guest)) return;
- if (CtdlGetUser(&CC->user, CC->curr_user)) {
- cprintf("%d Can't locate user!\n", ERROR + INTERNAL_ERROR);
- return;
- }
+ CtdlGetUser(&CC->user, CC->curr_user);
cprintf("%d Accessible rooms:\n", LISTING_FOLLOWS);
CtdlForEachRoom(cmd_lrms_backend, &FloorBeingSearched);
if (CtdlAccessCheck(ac_logged_in_or_guest)) return;
- if (CtdlGetUser(&CC->user, CC->curr_user)) {
- cprintf("%d Can't locate user!\n", ERROR + INTERNAL_ERROR);
- return;
- }
+ CtdlGetUser(&CC->user, CC->curr_user);
cprintf("%d Known rooms:\n", LISTING_FOLLOWS);
CtdlForEachRoom(cmd_lkra_backend, &FloorBeingSearched);
if (CtdlAccessCheck(ac_logged_in_or_guest)) return;
- if (CtdlGetUser(&CC->user, CC->curr_user)) {
- cprintf("%d Can't locate user!\n", ERROR + INTERNAL_ERROR);
- return;
- }
+ CtdlGetUser(&CC->user, CC->curr_user);
cprintf("%d Rooms w/ new msgs:\n", LISTING_FOLLOWS);
CtdlForEachRoom(cmd_lkrn_backend, &FloorBeingSearched);
if (CtdlAccessCheck(ac_logged_in_or_guest)) return;
- if (CtdlGetUser(&CC->user, CC->curr_user)) {
- cprintf("%d Can't locate user!\n", ERROR + INTERNAL_ERROR);
- return;
- }
+ CtdlGetUser(&CC->user, CC->curr_user);
cprintf("%d Rooms w/o new msgs:\n", LISTING_FOLLOWS);
CtdlForEachRoom(cmd_lkro_backend, &FloorBeingSearched);
if (CtdlAccessCheck(ac_logged_in_or_guest)) return;
- if (CtdlGetUser(&CC->user, CC->curr_user)) {
- cprintf("%d Can't locate user!\n", ERROR + INTERNAL_ERROR);
- return;
- }
+ CtdlGetUser(&CC->user, CC->curr_user);
cprintf("%d Zapped rooms:\n", LISTING_FOLLOWS);
CtdlForEachRoom(cmd_lzrm_backend, &FloorBeingSearched);