/*
- * $Id$
+ * Copyright (c) 1996-2012 by the citadel.org team
+ *
+ * This program is open source software. You can redistribute it and/or
+ * modify it under the terms of the GNU General Public License, version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
*/
#include "webcit.h"
output_headers(1, 1, 1, 0, 0, 0);
- wprintf("<div class=\"fix_scrollbar_bug\">");
-
- svput("BOXTITLE", WCS_STRING, _("Manage Account/OpenID Associations"));
- do_template("beginboxx", NULL);
+ do_template("box_begin_1");
+ StrBufAppendBufPlain(WCC->WBuf, _("Manage Account/OpenID Associations"), -1, 0);
+ do_template("box_begin_2");
if (WCC->serv_info->serv_supports_openid) {
- wprintf("<table class=\"altern\">");
+ wc_printf("<table class=\"altern\">");
serv_puts("OIDL");
serv_getln(buf, sizeof buf);
if (buf[0] == '1') while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
bg = 1 - bg;
- wprintf("<tr class=\"%s\">", (bg ? "even" : "odd"));
- wprintf("<td><img src=\"static/openid-small.gif\"></td><td>");
+ wc_printf("<tr class=\"%s\">", (bg ? "even" : "odd"));
+ wc_printf("<td><img src=\"static/webcit_icons/openid-small.gif\"></td><td>");
escputs(buf);
- wprintf("</td><td>");
- wprintf("<a href=\"openid_detach?id_to_detach=");
+ wc_printf("</td><td>");
+ wc_printf("<a href=\"openid_detach?id_to_detach=");
urlescputs(buf);
- wprintf("\" onClick=\"return confirm('%s');\">",
+ wc_printf("\" onClick=\"return confirm('%s');\">",
_("Do you really want to delete this OpenID?"));
- wprintf("%s</a>", _("(delete)"));
- wprintf("</td></tr>\n");
+ wc_printf("%s</a>", _("(delete)"));
+ wc_printf("</td></tr>\n");
}
- wprintf("</table><br />\n");
+ wc_printf("</table><br>\n");
- wprintf("<form method=\"POST\" action=\"openid_attach\">\n");
- wprintf("<input type=\"hidden\" name=\"nonce\" value=\"%d\">\n", WCC->nonce);
- wprintf(_("Add an OpenID: "));
- wprintf("<input type=\"text\" name=\"openid_url\" class=\"openid_urlarea\" size=\"40\">\n");
- wprintf("<input type=\"submit\" name=\"attach_button\" value=\"%s\">"
+ wc_printf("<form method=\"POST\" action=\"openid_attach\">\n");
+ wc_printf("<input type=\"hidden\" name=\"nonce\" value=\"%d\">\n", WCC->nonce);
+ wc_printf(_("Add an OpenID: "));
+ wc_printf("<input type=\"text\" name=\"openid_url\" class=\"openid_urlarea\" size=\"40\">\n");
+ wc_printf("<input type=\"submit\" name=\"attach_button\" value=\"%s\">"
"</form></center>\n", _("Attach"));
}
else {
- wprintf(_("%s does not permit authentication via OpenID."), ChrPtr(WCC->serv_info->serv_humannode));
+ wc_printf(_("%s does not permit authentication via OpenID."), ChrPtr(WCC->serv_info->serv_humannode));
}
- do_template("endbox", NULL);
- wprintf("</div>");
+ do_template("box_end");
wDumpContent(2);
}
char buf[4096];
if (havebstr("attach_button")) {
- wcsession *WCC = WC;
- lprintf(CTDL_DEBUG, "Attempting to attach %s\n", bstr("openid_url"));
+ syslog(LOG_DEBUG, "Attempting to attach %s\n", bstr("openid_url"));
snprintf(buf, sizeof buf,
- "OIDS %s|%s://%s/finalize_openid_login|%s://%s",
- bstr("openid_url"),
- (is_https ? "https" : "http"), ChrPtr(WCC->http_host),
- (is_https ? "https" : "http"), ChrPtr(WCC->http_host)
+ "OIDS %s|%s/finalize_openid_login?attach_existing=1|%s",
+ bstr("openid_url"),
+ ChrPtr(site_prefix),
+ ChrPtr(site_prefix)
);
serv_puts(buf);
serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
- lprintf(CTDL_DEBUG, "OpenID server contacted; redirecting to %s\n", &buf[4]);
+ syslog(LOG_DEBUG, "OpenID server contacted; redirecting to %s\n", &buf[4]);
http_redirect(&buf[4]);
return;
}
+ else {
+ syslog(LOG_DEBUG, "OpenID attach failed: %s\n", &buf[4]);
+ }
}
/* If we get to this point then something failed. */
* Detach an OpenID from the currently logged-in account
*/
void openid_detach(void) {
- char buf[1024];
+ StrBuf *Line;
if (havebstr("id_to_detach")) {
serv_printf("OIDD %s", bstr("id_to_detach"));
- serv_getln(buf, sizeof buf);
- if (buf[0] != '2') {
- strcpy(WC->ImportantMessage, &buf[4]);
- }
+ Line = NewStrBuf();
+ StrBuf_ServGetln(Line);
+ GetServerStatusMsg(Line, NULL, 1, 2);
+ FreeStrBuf(&Line);
}
display_openids();
InitModule_OPENID
(void)
{
- WebcitAddUrlHandler(HKEY("display_openids"), display_openids, 0);
- WebcitAddUrlHandler(HKEY("openid_attach"), openid_attach, 0);
- WebcitAddUrlHandler(HKEY("openid_detach"), openid_detach, 0);
+ WebcitAddUrlHandler(HKEY("display_openids"), "", 0, display_openids, 0);
+ WebcitAddUrlHandler(HKEY("openid_attach"), "", 0, openid_attach, 0);
+ WebcitAddUrlHandler(HKEY("openid_detach"), "", 0, openid_detach, 0);
}