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; return $profile;
} }
function hasOpenID()
{
$oid = new User_openid();
$oid->user_id = $this->id;
$cnt = $oid->find();
return ($cnt > 0);
}
function getDesign() function getDesign()
{ {
return Design::staticGet('id', $this->design_id); return Design::staticGet('id', $this->design_id);

View File

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

View File

@ -156,4 +156,19 @@ class OpenIDPlugin extends Plugin
$action->element('meta', array('http-equiv' => 'X-XRDS-Location', $action->element('meta', array('http-equiv' => 'X-XRDS-Location',
'content' => common_local_url('publicxrds'))); '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 */ /* the code above is auto generated do not remove the tag below */
###END_AUTOCODE ###END_AUTOCODE
static function hasOpenID($user_id)
{
$oid = new User_openid();
$oid->user_id = $user_id;
$cnt = $oid->find();
return ($cnt > 0);
}
} }