* add contexttype, so the subst can precheck the context pointer for us, and bad...
[citadel.git] / webcit / auth.c
index d5b77ab86f63802fc89ccdd9775ca3d445f2274d..2e58a710a0d053d5d5d249f26d90d69ee41c3b4c 100644 (file)
@@ -209,6 +209,7 @@ void display_openid_name_request(char *claimed_id, char *username) {
 void become_logged_in(char *user, char *pass, char *serv_response)
 {
        char buf[SIZ];
+       StrBuf *FloorDiv;
 
        WC->logged_in = 1;
        extract_token(WC->wc_fullname, &serv_response[4], 0, '|', sizeof WC->wc_fullname);
@@ -232,7 +233,8 @@ void become_logged_in(char *user, char *pass, char *serv_response)
 
        get_pref_long("current_iconbar", &WC->current_iconbar, current_iconbar_menu);
 
-       get_preference("floordiv_expanded", &WC->floordiv_expanded);
+       get_preference("floordiv_expanded", &FloorDiv);
+       WC->floordiv_expanded = FloorDiv;
 }
 
 
@@ -553,7 +555,6 @@ void end_webcit_session(void) {
        
        if (WC->logged_in) {
                set_pref_long("current_iconbar", WC->current_iconbar, 0);
-               set_preference("floordiv_expanded", WC->floordiv_expanded, 1);
        }
 
        serv_puts("QUIT");
@@ -881,6 +882,18 @@ void changepw(void)
        }
 }
 
+int ConditionalAide(WCTemplateToken *Token, void *Context, int ContextType)
+{
+       return (WC->is_aide == 0);
+}
+
+int ConditionalRoomAide(WCTemplateToken *Token, void *Context, int ContextType)
+{
+       return (WC->is_room_aide == 0);
+}
+
+
+
 void _display_openid_login(void) {display_openid_login(NULL);}
 void _display_reg(void) {display_reg(0);}
 
@@ -901,5 +914,9 @@ InitModule_AUTH
        WebcitAddUrlHandler(HKEY("display_changepw"), display_changepw, 0);
        WebcitAddUrlHandler(HKEY("changepw"), changepw, 0);
        WebcitAddUrlHandler(HKEY("termquit"), do_logout, 0);
+
+       RegisterConditional(HKEY("COND:AIDE"), 2, ConditionalAide, CTX_NONE);
+       RegisterConditional(HKEY("COND:ROOMAIDE"), 2, ConditionalRoomAide, CTX_NONE);
+
        return ;
 }