diff options
author | Evan Prodromou <evan@controlyourself.ca> | 2009-08-04 13:17:43 -0400 |
---|---|---|
committer | Evan Prodromou <evan@controlyourself.ca> | 2009-08-04 13:17:43 -0400 |
commit | 622c0b24c3455557bdb1bee646dcd9c955a3b3ea (patch) | |
tree | efb03f2f7378562cf5e9f367f5c4f27ca9cfacea /plugins | |
parent | 000e21be1917b190a2aaca2e864bbf79de4796bb (diff) |
move redirect-to-openid code to OpenID plugin
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/OpenID/OpenIDPlugin.php | 15 | ||||
-rw-r--r-- | plugins/OpenID/User_openid.php | 13 |
2 files changed, 27 insertions, 1 deletions
diff --git a/plugins/OpenID/OpenIDPlugin.php b/plugins/OpenID/OpenIDPlugin.php index a395f9107..ec261d7f7 100644 --- a/plugins/OpenID/OpenIDPlugin.php +++ b/plugins/OpenID/OpenIDPlugin.php @@ -156,4 +156,19 @@ class OpenIDPlugin extends Plugin $action->element('meta', array('http-equiv' => 'X-XRDS-Location', 'content' => common_local_url('publicxrds'))); } + + /** + * Redirect to OpenID login if they have an OpenID + * + * @return boolean whether to continue + */ + + function onRedirectToLogin($action, $user) + { + if (!empty($user) && User_openid::hasOpenID($user->id)) { + common_redirect(common_local_url('openidlogin'), 303); + return false; + } + return true; + } } diff --git a/plugins/OpenID/User_openid.php b/plugins/OpenID/User_openid.php index f4fda1c72..338e0f6e9 100644 --- a/plugins/OpenID/User_openid.php +++ b/plugins/OpenID/User_openid.php @@ -4,7 +4,7 @@ */ require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; -class User_openid extends Memcached_DataObject +class User_openid extends Memcached_DataObject { ###START_AUTOCODE /* the code below is auto generated do not remove the above tag */ @@ -22,4 +22,15 @@ class User_openid extends Memcached_DataObject /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE + + static function hasOpenID($user_id) + { + $oid = new User_openid(); + + $oid->user_id = $user_id; + + $cnt = $oid->find(); + + return ($cnt > 0); + } } |