$this->try_login();
}
}
-
+
function try_login() {
$consumer =& oid_consumer();
// Authentication failed; display the error message.
$this->message(sprintf(_('OpenID authentication failed: %s'), $response->message));
} else if ($response->status == Auth_OpenID_SUCCESS) {
-
+
$display = $response->getDisplayIdentifier();
$canonical = ($response->endpoint && $response->endpoint->canonicalID) ?
$response->endpoint->canonicalID : $display;
$cur =& common_current_user();
$other = oid_get_user($canonical);
-
+
if ($other) {
if ($other->id == $cur->id) {
$this->message(_('You already have this OpenID!'));
}
# start a transaction
-
+
$cur->query('BEGIN');
-
+
$result = oid_link_user($cur->id, $canonical, $display);
-
+
if (!$result) {
$this->message(_('Error connecting user.'));
return;
return;
}
}
-
+
# success!
-
+
$cur->query('COMMIT');
oid_set_last($display);
-
+
common_redirect(common_local_url('openidsettings'));
}
}