output_headers(1, 1, 2, 0, 0, 0);
wprintf("<div id=\"login_screen\">\n");
- if (mesg != NULL) if (!IsEmptyStr(mesg)) {
- stresc(buf, SIZ, mesg, 0, 0);
- svprintf(HKEY("MESG"), WCS_STRING, "%s", buf);
+ if ((mesg != NULL) && (!IsEmptyStr(mesg))) {
+ stresc(buf, SIZ, mesg, 0, 0);
+ svprintf(HKEY("MESG"), WCS_STRING, "%s", buf);
}
svprintf(HKEY("LOGIN_INSTRUCTIONS"), WCS_STRING,
svput("OFFER_OPENID_LOGIN", WCS_STRING, "");
}
- do_template("login");
+ do_template("login", NULL);
wDumpContent(2);
}
output_headers(1, 1, 2, 0, 0, 0);
wprintf("<div id=\"login_screen\">\n");
- if (mesg != NULL) if (!IsEmptyStr(mesg)) {
- stresc(buf, SIZ, mesg, 0, 0);
- svprintf(HKEY("MESG"), WCS_STRING, "%s", buf);
+ if ((mesg != NULL) && (!IsEmptyStr(mesg))) {
+ stresc(buf, SIZ, mesg, 0, 0);
+ svprintf(HKEY("MESG"), WCS_STRING, "%s", buf);
}
svprintf(HKEY("LOGIN_INSTRUCTIONS"), WCS_STRING,
"Log in using a user name and password"
);
- do_template("openid_login");
+ do_template("openid_login", NULL);
wDumpContent(2);
}
svprintf(HKEY("BOXTITLE"), WCS_STRING, _("%s - powered by <a href=\"http://www.citadel.org\">Citadel</a>"),
serv_info.serv_humannode);
- do_template("openid_manual_create");
+ do_template("openid_manual_create", NULL);
wDumpContent(2);
}
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);
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;
}
}
}
if (WC->logged_in) {
+ set_preference("language", NewStrBufPlain(bstr("language"), -1), 1);
if (WC->need_regi) {
display_reg(1);
} else if (WC->need_vali) {
urlcontent *u;
void *U;
long HKLen;
- char *HKey;
+ const char *HKey;
HashPos *Cursor;
Cursor = GetNewHashPos ();
while (GetNextHashPos(WCC->urlstrings, Cursor, &HKLen, &HKey, &U)) {
u = (urlcontent*) U;
if (!strncasecmp(u->url_key, "openid.", 7)) {
- serv_printf("%s|%s", &u->url_key[7], u->url_data);
+ serv_printf("%s|%s", &u->url_key[7], ChrPtr(u->url_data));
}
}
StrBufCutLeft(Buf, 1);
}
if (StrLength(Buf) == 0)
- StrBufAppendBufPlain(Buf, "/knrooms", 1, 0);
+ StrBufAppendBufPlain(Buf, "dotgoto?room=_BASEROOM_", -1, 0);
http_redirect(ChrPtr(Buf));
}
if (WC->logged_in) {
set_pref_long("current_iconbar", WC->current_iconbar, 0);
- set_preference("floordiv_expanded", WC->floordiv_expanded, 1);
}
serv_puts("QUIT");
void display_changepw(void)
{
char buf[SIZ];
-
+ StrBuf *Buf;
output_headers(1, 1, 1, 0, 0, 0);
- svput("BOXTITLE", WCS_STRING, _("Change your password"));
- do_template("beginbox");
+ Buf = NewStrBufPlain(_("Change your password"), -1);
+ DoTemplate(HKEY("beginbox"), NULL, Buf, CTX_STRBUF);
+
+ FreeStrBuf(&Buf);
if (!IsEmptyStr(WC->ImportantMessage)) {
wprintf("<span class=\"errormsg\">"
wprintf("</div>\n");
wprintf("</form>\n");
- do_template("endbox");
+ do_template("endbox", NULL);
wDumpContent(1);
}
}
}
+int ConditionalAide(WCTemplateToken *Tokens, void *Context, int ContextType)
+{
+ return (WC->is_aide == 0);
+}
+
+int ConditionalRoomAide(WCTemplateToken *Tokens, void *Context, int ContextType)
+{
+ return (WC->is_room_aide == 0);
+}
+
+int ConditionalRoomAcessDelete(WCTemplateToken *Tokens, void *Context, int ContextType)
+{
+ struct wcsession *WCC = WC;
+ return ( (WCC->is_room_aide) || (WCC->is_mailbox) || (WCC->room_flags2 & QR2_COLLABDEL) );
+}
+
+
+
void _display_openid_login(void) {display_openid_login(NULL);}
void _display_reg(void) {display_reg(0);}
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);
+ RegisterConditional(HKEY("COND:ACCESS:DELETE"), 2, ConditionalRoomAcessDelete, CTX_NONE);
+
return ;
}