CtdlAccessCheck() may now be passed a new access level to check for: ac_logged_in_or_...
authorArt Cancro <ajc@citadel.org>
Fri, 3 Sep 2010 14:27:29 +0000 (10:27 -0400)
committerArt Cancro <ajc@citadel.org>
Fri, 3 Sep 2010 14:27:29 +0000 (10:27 -0400)
citadel/citserver.c
citadel/include/ctdl_module.h

index 48e4deae038439e250011538a2e800934481aa86..859c25fa9d3b46b22cf19212245b32f7470bf248 100644 (file)
@@ -659,6 +659,11 @@ int CtdlAccessCheck(int required_level) {
                return(-1);
        }
 
+       if ((required_level >= ac_logged_in_or_guest) && (CC->logged_in == 0) && (!config.c_guest_logins)) {
+               cprintf("%d Not logged in.\n", ERROR + NOT_LOGGED_IN);
+               return(-1);
+       }
+
        if ((required_level >= ac_logged_in) && (CC->logged_in == 0)) {
                cprintf("%d Not logged in.\n", ERROR + NOT_LOGGED_IN);
                return(-1);
index c3db1af9c81c9be9963491d285783a085815c437..f1ee1a5f9dec587162ed7ce9acd16b489c30ded2 100644 (file)
@@ -274,10 +274,11 @@ int CtdlAccessCheck(int);
  */
 enum {
        ac_none,
+       ac_logged_in_or_guest,
        ac_logged_in,
        ac_room_aide,
        ac_aide,
-       ac_internal
+       ac_internal,
 };