X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fopenid.c;h=ca71d6793c51ab72ebae517599022a92d599e618;hb=HEAD;hp=4c234b178ea3c5aaddd06b9ff23e3400192195bc;hpb=1b302cba797e9b8d6f94304f80c52ac63845503a;p=citadel.git diff --git a/webcit/openid.c b/webcit/openid.c index 4c234b178..b56c01c24 100644 --- a/webcit/openid.c +++ b/webcit/openid.c @@ -1,9 +1,17 @@ /* - * $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" -#include "webserver.h" + /* * Display the OpenIDs associated with an account @@ -16,47 +24,45 @@ void display_openids(void) output_headers(1, 1, 1, 0, 0, 0); - wprintf("
"); - - 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(""); + wc_printf("
"); 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("", (bg ? "even" : "odd")); - wprintf("", (bg ? "even" : "odd")); + wc_printf("\n"); + wc_printf("%s", _("(delete)")); + wc_printf("\n"); } - wprintf("
"); + wc_printf("
"); escputs(buf); - wprintf(""); - wprintf(""); + wc_printf("", + wc_printf("\" onClick=\"return confirm('%s');\">", _("Do you really want to delete this OpenID?")); - wprintf("%s", _("(delete)")); - wprintf("

\n"); + wc_printf("
\n"); - wprintf("
\n"); - wprintf("\n", WCC->nonce); - wprintf(_("Add an OpenID: ")); - wprintf("\n"); - wprintf("" + wc_printf("\n"); + wc_printf("\n", WCC->nonce); + wc_printf(_("Add an OpenID: ")); + wc_printf("\n"); + wc_printf("" "
\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("
"); + do_template("box_end"); wDumpContent(2); } @@ -68,24 +74,26 @@ void openid_attach(void) { 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. */ @@ -97,14 +105,14 @@ void openid_attach(void) { * 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(); @@ -114,7 +122,7 @@ void 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); }