X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Ffinishopenidlogin.php;h=2b3616ffae8074c5103dd6eaa7527b825b057635;hb=4aedce6864eb27a0c37b3dcae22fee0aa16ae537;hp=e3db23dc3ee594ab9fa3d3099218a399ce340a47;hpb=252c4098c4910ec2fc20feb9f1c1f92ada129b04;p=quix0rs-gnu-social.git diff --git a/actions/finishopenidlogin.php b/actions/finishopenidlogin.php index e3db23dc3e..2b3616ffae 100644 --- a/actions/finishopenidlogin.php +++ b/actions/finishopenidlogin.php @@ -28,11 +28,12 @@ class FinishopenidloginAction extends Action { if (common_logged_in()) { common_user_error(_t('Already logged in.')); } else if ($_SERVER['REQUEST_METHOD'] == 'POST') { - if ($this->boolean('create')) { + if ($this->arg('create')) { $this->create_new_user(); - } else if ($this->boolean('connect')) { + } else if ($this->arg('connect')) { $this->connect_user(); } else { + common_debug(print_r($this->args, true), __FILE__); $this->show_form(_t('Something weird happened.'), $this->trimmed('newname')); } @@ -66,7 +67,7 @@ class FinishopenidloginAction extends Action { _t('1-64 lowercase letters or numbers, no punctuation or spaces')); common_submit('create', _t('Create')); common_element('h2', NULL, - 'Create new account'); + 'Connect existing account'); common_element('p', NULL, _t('If you already have an account, login with your username and password '. 'to connect it to your OpenID.')); @@ -178,14 +179,13 @@ class FinishopenidloginAction extends Action { $_SESSION['openid_sreg'] = $sreg; } - function get_saved_values($display, $canonical, $sreg) { - common_ensure_session(); + function get_saved_values() { return array($_SESSION['openid_display'], $_SESSION['openid_canonical'], $_SESSION['openid_sreg']); } - function create_new_login() { + function create_new_user() { $nickname = $this->trimmed('newname'); @@ -264,21 +264,16 @@ 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_link_user($user->id, $canonical, $display); - $result = $oid->insert(); - if (!$result) { # Try to clean up... $user->delete(); $profile->delete(); } - common_redirect(common_local_url('profilesettings')); + common_set_user($user->nickname); + common_redirect(common_local_url('showstream', array('nickname' => $user->nickname))); } function connect_user() { @@ -302,14 +297,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; } @@ -334,9 +325,13 @@ class FinishopenidloginAction extends Action { function best_new_nickname($display, $sreg) { # Try the passed-in nickname - - if ($sreg['nickname'] && $this->is_new_nickname($sreg['nickname'])) { - return $sreg['nickname']; + + + if ($sreg['nickname']) { + $nickname = $this->nicknamize($sreg['nickname']); + if ($this->is_new_nickname($nickname)) { + return $nickname; + } } # Try the full name