From e61ccbf45d0896ba97236043f61ca084b846dc69 Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Fri, 3 Sep 2010 10:27:29 -0400 Subject: [PATCH] CtdlAccessCheck() may now be passed a new access level to check for: ac_logged_in_or_guest, which will succeed if the user is logged in *or* if guest mode is enabled. --- citadel/citserver.c | 5 +++++ citadel/include/ctdl_module.h | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/citadel/citserver.c b/citadel/citserver.c index 48e4deae0..859c25fa9 100644 --- a/citadel/citserver.c +++ b/citadel/citserver.c @@ -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); diff --git a/citadel/include/ctdl_module.h b/citadel/include/ctdl_module.h index c3db1af9c..f1ee1a5f9 100644 --- a/citadel/include/ctdl_module.h +++ b/citadel/include/ctdl_module.h @@ -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, }; -- 2.30.2