X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Ffinishopenidlogin.php;h=766a08b208a60778e9edccc3ce1345d86e29a58f;hb=2abe10b8ea4b5d69fc7f6513bf465541454ca2cf;hp=f09027e9e0a64f14086407b6e1d60ae38eb64b25;hpb=d6dd35a66a394a830eb171ab6620da808667c772;p=quix0rs-gnu-social.git diff --git a/actions/finishopenidlogin.php b/actions/finishopenidlogin.php index f09027e9e0..766a08b208 100644 --- a/actions/finishopenidlogin.php +++ b/actions/finishopenidlogin.php @@ -132,8 +132,12 @@ class FinishopenidloginAction extends Action { # XXX: commented out at @edd's request until better # control over how data flows from OpenID provider. # oid_update_user($user, $sreg); - common_set_user($user->nickname); + common_set_user($user); common_real_login(true); + if (isset($_SESSION['openid_rememberme']) && $_SESSION['openid_rememberme']) { + common_rememberme($user); + } + unset($_SESSION['openid_rememberme']); $this->go_home($user->nickname); } else { $this->save_values($display, $canonical, $sreg); @@ -163,6 +167,13 @@ class FinishopenidloginAction extends Action { function create_new_user() { + # FIXME: save invite code before redirect, and check here + + if (common_config('site', 'closed') || common_config('site', 'inviteonly')) { + common_user_error(_('Registration not allowed.')); + return; + } + $nickname = $this->trimmed('newname'); if (!Validate::string($nickname, array('min_length' => 1, @@ -207,28 +218,32 @@ class FinishopenidloginAction extends Action { $location = $sreg['country']; } } - + if ($sreg['fullname'] && strlen($sreg['fullname']) <= 255) { $fullname = $sreg['fullname']; } - + if ($sreg['email'] && Validate::email($sreg['email'], true)) { $email = $sreg['email']; } # XXX: add language # XXX: add timezone - - $user = User::register(array('nickname' => $nickname, + + $user = User::register(array('nickname' => $nickname, 'email' => $email, - 'fullname' => $fullname, + 'fullname' => $fullname, 'location' => $location)); $result = oid_link_user($user->id, $canonical, $display); - - oid_set_last($display); - common_set_user($user->nickname); + + oid_set_last($display); + common_set_user($user); common_real_login(true); + if (isset($_SESSION['openid_rememberme']) && $_SESSION['openid_rememberme']) { + common_rememberme($user); + } + unset($_SESSION['openid_rememberme']); common_redirect(common_local_url('showstream', array('nickname' => $user->nickname))); } @@ -262,8 +277,12 @@ class FinishopenidloginAction extends Action { oid_update_user($user, $sreg); oid_set_last($display); - common_set_user($user->nickname); + common_set_user($user); common_real_login(true); + if (isset($_SESSION['openid_rememberme']) && $_SESSION['openid_rememberme']) { + common_rememberme($user); + } + unset($_SESSION['openid_rememberme']); $this->go_home($user->nickname); } @@ -284,7 +303,6 @@ class FinishopenidloginAction extends Action { # Try the passed-in nickname - if ($sreg['nickname']) { $nickname = $this->nicknamize($sreg['nickname']); if ($this->is_new_nickname($nickname)) {