move redirect-to-openid code to OpenID plugin

This commit is contained in:
Evan Prodromou 2009-08-04 13:17:43 -04:00
parent 000e21be19
commit 622c0b24c3
4 changed files with 28 additions and 17 deletions

View File

@ -670,17 +670,6 @@ class User extends Memcached_DataObject
return $profile;
}
function hasOpenID()
{
$oid = new User_openid();
$oid->user_id = $this->id;
$cnt = $oid->find();
return ($cnt > 0);
}
function getDesign()
{
return Design::staticGet('id', $this->design_id);

View File

@ -78,12 +78,8 @@ class SettingsAction extends CurrentUserDesignAction
common_set_returnto($this->selfUrl());
$user = common_current_user();
if (Event::handle('RedirectToLogin', array($this, $user))) {
if ($user->hasOpenID()) {
common_redirect(common_local_url('openidlogin'), 303);
} else {
common_redirect(common_local_url('login'), 303);
}
}
} else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$this->handlePost();
} else {

View File

@ -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;
}
}

View File

@ -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);
}
}