FreeStrBuf(&Buf);
}
+
+
+/*
+ * modal/ajax version of 'login' (username and password)
+ */
+void ajax_login_username_password(void) {
+ StrBuf *Buf = NewStrBuf();
+
+ serv_printf("USER %s", bstr("name"));
+ StrBuf_ServGetln(Buf);
+ if (GetServerStatus(Buf, NULL) == 3) {
+ serv_printf("PASS %s", bstr("pass"));
+ StrBuf_ServGetln(Buf);
+ if (GetServerStatus(Buf, NULL) == 2) {
+ become_logged_in(sbstr("name"), sbstr("pass"), Buf);
+ }
+ }
+
+ /* The client is expecting to read back a citadel protocol response */
+ wc_printf("%s", ChrPtr(Buf));
+ FreeStrBuf(&Buf);
+}
+
+
+
/*
* Try to create an account manually after an OpenID was verified
*/
FlushStrBuf(WCC->wc_username);
FlushStrBuf(WCC->wc_password);
- FlushStrBuf(WCC->CurRoom.name);
FlushStrBuf(WCC->wc_fullname);
- /* FIXME: this is to suppress the iconbar displaying, because we aren't
- actually logged out yet */
+ serv_puts("LOUT");
+ serv_getln(buf, sizeof buf);
WCC->logged_in = 0;
- /** Calling output_headers() this way causes the cookies to be un-set */
+ if (WC->serv_info->serv_supports_guest) {
+ display_default_landing_page();
+ return;
+ }
+
+ FlushStrBuf(WCC->CurRoom.name);
+
+ /* Calling output_headers() this way causes the cookies to be un-set */
output_headers(1, 1, 0, 1, 0, 0);
wc_printf("<div id=\"logout_screen\">");
"<span class=\"button_link\"><a href=\".\">");
wc_printf(_("Log in again"));
wc_printf("</a></span>");
-
- /* The "close window" link is commented out because some browsers don't
- * allow it to work.
- *
- wc_printf(" <span class=\"button_link\">"
- "<a href=\"javascript:window.close();\">");
- wc_printf(_("Close window"));
- wc_printf("</a></span>");
- */
-
wc_printf("</div></div></div>\n");
wDumpContent(2);
end_webcit_session();
WebcitAddUrlHandler(HKEY("finalize_openid_login"), "", 0, finalize_openid_login, ANONYMOUS);
WebcitAddUrlHandler(HKEY("openid_manual_create"), "", 0, openid_manual_create, ANONYMOUS);
WebcitAddUrlHandler(HKEY("do_logout"), "", 0, do_logout, ANONYMOUS|COOKIEUNNEEDED|FORCE_SESSIONCLOSE);
+ WebcitAddUrlHandler(HKEY("ajax_login_username_password"), "", 0, ajax_login_username_password, AJAX);
WebcitAddUrlHandler(HKEY("validate"), "", 0, validate, 0);
+ WebcitAddUrlHandler(HKEY("do_welcome"), "", 0, do_welcome, 0);
WebcitAddUrlHandler(HKEY("display_reg"), "", 0, _display_reg, 0);
WebcitAddUrlHandler(HKEY("display_changepw"), "", 0, display_changepw, 0);
WebcitAddUrlHandler(HKEY("changepw"), "", 0, changepw, 0);
WebcitAddUrlHandler(HKEY("termquit"), "", 0, do_logout, 0);
+
RegisterConditional(HKEY("COND:AIDE"), 2, ConditionalAide, CTX_NONE);
RegisterConditional(HKEY("COND:LOGGEDIN"), 2, ConditionalIsLoggedIn, CTX_NONE);
RegisterConditional(HKEY("COND:MAY_CREATE_ROOM"), 2, ConditionalHaveAccessCreateRoom, CTX_NONE);
- return ;
+ return;
}