From 2f99a257a0d8bd773ea96249b13b134fcfbc99cd Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Fri, 16 Jan 2009 20:25:46 +0000 Subject: Make the OpenID settings work with new framework --- actions/finishaddopenid.php | 112 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 95 insertions(+), 17 deletions(-) (limited to 'actions/finishaddopenid.php') diff --git a/actions/finishaddopenid.php b/actions/finishaddopenid.php index 708e8d4bf..8f10505cf 100644 --- a/actions/finishaddopenid.php +++ b/actions/finishaddopenid.php @@ -1,9 +1,12 @@ . + * + * @category Settings + * @package Laconica + * @author Evan Prodromou + * @copyright 2008-2009 Control Yourself, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ */ -if (!defined('LACONICA')) { exit(1); } +if (!defined('LACONICA')) { + exit(1); +} -require_once(INSTALLDIR.'/lib/openid.php'); +require_once INSTALLDIR.'/lib/openid.php'; + +/** + * Complete adding an OpenID + * + * Handle the return from an OpenID verification + * + * @category Settings + * @package Laconica + * @author Evan Prodromou + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + */ class FinishaddopenidAction extends Action { + var $msg = null; + + /** + * Handle the redirect back from OpenID confirmation + * + * Check to see if the user's logged in, and then try + * to use the OpenID login system. + * + * @param array $args $_REQUEST arguments + * + * @return void + */ function handle($args) { @@ -30,13 +66,20 @@ class FinishaddopenidAction extends Action if (!common_logged_in()) { $this->clientError(_('Not logged in.')); } else { - $this->try_login(); + $this->tryLogin(); } } - - function try_login() - { + /** + * Try to log in using OpenID + * + * Check the OpenID for validity; potentially store it. + * + * @return void + */ + + function tryLogin() + { $consumer =& oid_consumer(); $response = $consumer->complete(common_local_url('finishaddopenid')); @@ -46,10 +89,11 @@ class FinishaddopenidAction extends Action return; } else if ($response->status == Auth_OpenID_FAILURE) { // Authentication failed; display the error message. - $this->message(sprintf(_('OpenID authentication failed: %s'), $response->message)); + $this->message(sprintf(_('OpenID authentication failed: %s'), + $response->message)); } else if ($response->status == Auth_OpenID_SUCCESS) { - $display = $response->getDisplayIdentifier(); + $display = $response->getDisplayIdentifier(); $canonical = ($response->endpoint && $response->endpoint->canonicalID) ? $response->endpoint->canonicalID : $display; @@ -60,6 +104,7 @@ class FinishaddopenidAction extends Action } $cur =& common_current_user(); + $other = oid_get_user($canonical); if ($other) { @@ -71,7 +116,7 @@ class FinishaddopenidAction extends Action return; } - # start a transaction + // start a transaction $cur->query('BEGIN'); @@ -88,7 +133,7 @@ class FinishaddopenidAction extends Action } } - # success! + // success! $cur->query('COMMIT'); @@ -98,10 +143,43 @@ class FinishaddopenidAction extends Action } } + /** + * Show a failure message + * + * Something went wrong. Save the message, and show the page. + * + * @param string $msg Error message to show + * + * @return void + */ + function message($msg) { - common_show_header(_('OpenID Login')); - $this->element('p', null, $msg); - common_show_footer(); + $this->message = $msg; + $this->showPage(); + } + + /** + * Title of the page + * + * @return string title + */ + + function title() + { + return _('OpenID Login'); + } + + /** + * Show error message + * + * @return void + */ + + function showPageNotice() + { + if ($this->message) { + $this->element('p', 'error', $this->message); + } } } -- cgit v1.2.3-54-g00ecf