We are no longer offering accounts on this server. Consider https://gitlab.freedesktop.org/ as a place to host projects.

Commit 4a0b1a9e authored by Evan Prodromou's avatar Evan Prodromou

consolidate linking a user to an OpenID

darcs-hash:20080618114310-84dde-15b224bb16d434150af457bc3b08de58e3833abd.gz
parent dc2e7f42
......@@ -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;
}
}
......@@ -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;
}
......
......@@ -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;
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment