X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fregister.php;h=6f23244d13526d2ac2d5898e53bf9bcadcbee15d;hb=8c7c6f3047ca177e63df08f4f0260d68342fd9b2;hp=c97201b666762b67611233e60544a0e134ad78a5;hpb=305c9f33a79de19b3c2958611adbb7eb5e802590;p=quix0rs-gnu-social.git diff --git a/actions/register.php b/actions/register.php index c97201b666..6f23244d13 100644 --- a/actions/register.php +++ b/actions/register.php @@ -27,9 +27,7 @@ * @link http://status.net/ */ -if (!defined('STATUSNET') && !defined('LACONICA')) { - exit(1); -} +if (!defined('GNUSOCIAL') && !defined('STATUSNET')) { exit(1); } /** * An action for registering a new user account @@ -122,9 +120,9 @@ class RegisterAction extends Action * * @return void */ - function handle($args) + function handle() { - parent::handle($args); + parent::handle(); if (common_config('site', 'closed')) { // TRANS: Client error displayed when trying to register to a closed site. @@ -133,7 +131,11 @@ class RegisterAction extends Action // TRANS: Client error displayed when trying to register while already logged in. $this->clientError(_('Already logged in.')); } else if ($_SERVER['REQUEST_METHOD'] == 'POST') { - $this->tryRegister(); + try { + $this->tryRegister(); + } catch (ClientException $e) { + $this->showForm($e->getMessage()); + } } else { $this->showForm(); } @@ -210,9 +212,6 @@ class RegisterAction extends Action !common_valid_http_url($homepage)) { // TRANS: Form validation error displayed when trying to register with an invalid homepage URL. $this->showForm(_('Homepage is not a valid URL.')); - } else if (!is_null($fullname) && mb_strlen($fullname) > 255) { - // TRANS: Form validation error displayed when trying to register with a too long full name. - $this->showForm(_('Full name is too long (maximum 255 characters).')); } else if (Profile::bioTooLong($bio)) { // TRANS: Form validation error on registration page when providing too long a bio text. // TRANS: %d is the maximum number of characters for bio; used for plural. @@ -220,49 +219,44 @@ class RegisterAction extends Action 'Bio is too long (maximum %d characters).', Profile::maxBio()), Profile::maxBio())); - } else if (!is_null($location) && mb_strlen($location) > 255) { - // TRANS: Form validation error displayed when trying to register with a too long location. - $this->showForm(_('Location is too long (maximum 255 characters).')); } else if (strlen($password) < 6) { // TRANS: Form validation error displayed when trying to register with too short a password. $this->showForm(_('Password must be 6 or more characters.')); } else if ($password != $confirm) { // TRANS: Form validation error displayed when trying to register with non-matching passwords. $this->showForm(_('Passwords do not match.')); - } else if ($user = User::register(array('nickname' => $nickname, + } else { + try { + $user = User::register(array('nickname' => $nickname, 'password' => $password, 'email' => $email, 'fullname' => $fullname, 'homepage' => $homepage, 'bio' => $bio, 'location' => $location, - 'code' => $code))) { - if (!($user instanceof User)) { + 'code' => $code)); + // success! + if (!common_set_user($user)) { + // TRANS: Server error displayed when saving fails during user registration. + $this->serverError(_('Error setting user.')); + } + // this is a real login + common_real_login(true); + if ($this->boolean('rememberme')) { + common_debug('Adding rememberme cookie for ' . $nickname); + common_rememberme($user); + } + + // Re-init language env in case it changed (not yet, but soon) + common_init_language(); + + Event::handle('EndRegistrationTry', array($this)); + + $this->showSuccess(); + } catch (Exception $e) { // TRANS: Form validation error displayed when trying to register with an invalid username or password. - $this->showForm(_('Invalid username or password.')); - return; - } - // success! - if (!common_set_user($user)) { - // TRANS: Server error displayed when saving fails during user registration. - $this->serverError(_('Error setting user.')); + $this->showForm($e->getMessage()); } - // this is a real login - common_real_login(true); - if ($this->boolean('rememberme')) { - common_debug('Adding rememberme cookie for ' . $nickname); - common_rememberme($user); - } - - // Re-init language env in case it changed (not yet, but soon) - common_init_language(); - - Event::handle('EndRegistrationTry', array($this)); - - $this->showSuccess(); - } else { - // TRANS: Form validation error displayed when trying to register with an invalid username or password. - $this->showForm(_('Invalid username or password.')); } } } @@ -489,6 +483,7 @@ class RegisterAction extends Action 'id' => 'license', 'class' => 'checkbox', 'name' => 'license', + 'required' => 'true', 'value' => 'true'); if ($this->boolean('license')) { $attrs['checked'] = 'checked';