]> code.citadel.org Git - citadel.git/blobdiff - citadel/room_ops.c
* WHOK: ommit empty lines.
[citadel.git] / citadel / room_ops.c
index f450fe2539c890b3a861fb8400f45a4827dfba50..68eeb36385971435d6f9e2accc12de4f29cd7d04 100644 (file)
@@ -53,19 +53,15 @@ void CtdlRoomAccess(struct ctdlroom *roombuf, struct ctdluser *userbuf,
        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)) {
@@ -75,19 +71,19 @@ void CtdlRoomAccess(struct ctdlroom *roombuf, struct ctdluser *userbuf,
        }
 
        /* 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)) {
@@ -699,10 +695,7 @@ void cmd_lrms(char *argbuf)
 
        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);
@@ -737,10 +730,7 @@ void cmd_lkra(char *argbuf)
 
        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);
@@ -806,10 +796,7 @@ void cmd_lkrn(char *argbuf)
 
        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);
@@ -845,10 +832,7 @@ void cmd_lkro(char *argbuf)
 
        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);
@@ -884,10 +868,7 @@ void cmd_lzrm(char *argbuf)
 
        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);
@@ -1196,9 +1177,10 @@ void cmd_whok(char *cmdbuf)
                cdb_free(cdbus);
 
                CtdlRoomAccess(&CC->room, &temp, &ra, NULL);
-               if ((CC->room.QRflags & QR_INUSE)
-                   && (ra & UA_KNOWN)
-                   )
+               if ((!IsEmptyStr(temp.fullname)) && 
+                   (CC->room.QRflags & QR_INUSE) &&
+                   (ra & UA_KNOWN)
+                       )
                        cprintf("%s\n", temp.fullname);
        }
        cprintf("000\n");