summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--classes/User.php11
-rw-r--r--lib/settingsaction.php6
-rw-r--r--plugins/OpenID/OpenIDPlugin.php15
-rw-r--r--plugins/OpenID/User_openid.php13
4 files changed, 28 insertions, 17 deletions
diff --git a/classes/User.php b/classes/User.php
index bea47a3b0..104dfbacb 100644
--- a/classes/User.php
+++ b/classes/User.php
@@ -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);
diff --git a/lib/settingsaction.php b/lib/settingsaction.php
index 4cf9b80c4..a923a98b2 100644
--- a/lib/settingsaction.php
+++ b/lib/settingsaction.php
@@ -78,11 +78,7 @@ 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);
- }
+ common_redirect(common_local_url('login'), 303);
}
} else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$this->handlePost();
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);
+ }
}