diff --git a/actions/finishaddopenid.php b/actions/finishaddopenid.php index 2b34b38ea2..6a7bb3d248 100644 --- a/actions/finishaddopenid.php +++ b/actions/finishaddopenid.php @@ -64,7 +64,8 @@ class FinishaddopenidAction extends Action { $this->message(_t('This OpenID is already associated with user "') . $user->nickname . _t('"')); } else { $cur = common_current_user(); - if (!$this->connect_user($cur, $display, $canonical)) { + $result = oid_link_user($cur->id, $display, $canonical); + if (!$result) { $this->message(_t('Error connecting user')); return; } @@ -136,24 +137,4 @@ class FinishaddopenidAction extends Action { return true; } - - function connect_user($user, $display, $canonical) { - - $id = $user->id; - - $oid = new User_openid(); - $oid->display = $display; - $oid->canonical = $canonical; - $oid->user_id = $id; - $oid->created = DB_DataObject_Cast::dateTime(); - - $result = $oid->insert(); - - if (!$result) { - $err = PEAR::getStaticProperty('DB_DataObject','lastError'); - common_debug('DB error ' . $err->code . ': ' . $err->message, __FILE__); - return false; - } - return true; - } } diff --git a/actions/finishopenidlogin.php b/actions/finishopenidlogin.php index 202520d54e..3d0c8f2779 100644 --- a/actions/finishopenidlogin.php +++ b/actions/finishopenidlogin.php @@ -264,15 +264,8 @@ class FinishopenidloginAction extends Action { $profile->delete(); } - $oid = new User_openid(); - $oid->display = $display; - $oid->canonical = $canonical; - $oid->user_id = $id; - $oid->created = DB_DataObject_Cast::dateTime(); - $result = $oid->insert(); - - if (!$result) { + if (!oid_link_user($user->id, $canonical, $display) { # Try to clean up... $user->delete(); $profile->delete(); @@ -303,14 +296,10 @@ class FinishopenidloginAction extends Action { return; } - $oid = new User_openid(); - $oid->display = $display; - $oid->canonical = $canonical; - $oid->user_id = $user->id; - $oid->created = DB_DataObject_Cast::dateTime(); + $result = oid_link_user($user->id, $canonical, $display); - if (!$oid->insert()) { - common_server_error(_t('Error connecting OpenID.')); + if (!$result) { + common_server_error(_t('Error connecting user to OpenID.')); return; } diff --git a/lib/openid.php b/lib/openid.php index 9128ecddcc..c41b3424cd 100644 --- a/lib/openid.php +++ b/lib/openid.php @@ -41,4 +41,21 @@ function oid_consumer() { $store = oid_store(); $consumer = new Auth_OpenID_Consumer($store); return $consumer; -} \ No newline at end of file +} + +function oid_link_user($id, $canonical, $display) { + + $oid = new User_openid(); + $oid->user_id = $id; + $oid->canonical = $canonical; + $oid->display = $display; + $oid->created = DB_DataObject_Cast::dateTime(); + + if (!$oid->insert()) { + $err = PEAR::getStaticProperty('DB_DataObject','lastError'); + common_debug('DB error ' . $err->code . ': ' . $err->message, __FILE__); + return false; + } + + return true; +}