X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fregister.php;h=d2e54b634596e8ecf3f5077910fafbba65c32d60;hb=b899ff617f757e234d1954d4c71e4d55e739a1dd;hp=f9402b98f4f251dc60889d72b316d1afc68b51f4;hpb=6f6aed821387075de8c22da55c5620c04cda0dc1;p=quix0rs-gnu-social.git diff --git a/actions/register.php b/actions/register.php index f9402b98f4..d2e54b6345 100644 --- a/actions/register.php +++ b/actions/register.php @@ -1,18 +1,18 @@ . */ @@ -20,10 +20,10 @@ if (!defined('LACONICA')) { exit(1); } class RegisterAction extends Action { - + function handle($args) { parent::handle($args); - + if (common_logged_in()) { common_user_error(_t('Already logged in.')); } else if ($_SERVER['REQUEST_METHOD'] == 'POST') { @@ -34,18 +34,29 @@ class RegisterAction extends Action { } function try_register() { - $nickname = $this->arg('nickname'); + $nickname = $this->trimmed('nickname'); + $email = $this->trimmed('email'); + + # We don't trim these... whitespace is OK in a password! + $password = $this->arg('password'); $confirm = $this->arg('confirm'); - $email = $this->arg('email'); # Input scrubbing - + $nickname = common_canonical_nickname($nickname); $email = common_canonical_email($email); - - if ($this->nickname_exists($nickname)) { - $this->show_form(_t('Username already exists.')); + + if (!$this->boolean('license')) { + $this->show_form(_t('You can\'t register if you don\'t agree to the license.')); + } else if (!Validate::email($email, true)) { + $this->show_form(_t('Not a valid email address.')); + } else if (!Validate::string($nickname, array('min_length' => 1, + 'max_length' => 64, + 'format' => VALIDATE_NUM . VALIDATE_ALPHA_LOWER))) { + $this->show_form(_t('Nickname must have only letters and numbers and no spaces.')); + } else if ($this->nickname_exists($nickname)) { + $this->show_form(_t('Nickname already exists.')); } else if ($this->email_exists($email)) { $this->show_form(_t('Email address already exists.')); } else if ($password != $confirm) { @@ -63,14 +74,14 @@ class RegisterAction extends Action { } # checks if *CANONICAL* nickname exists - + function nickname_exists($nickname) { $user = User::staticGet('nickname', $nickname); return ($user !== false); } # checks if *CANONICAL* email exists - + function email_exists($email) { $email = common_canonical_email($email); $user = User::staticGet('email', $email); @@ -83,6 +94,7 @@ class RegisterAction extends Action { $profile->nickname = $nickname; $profile->profileurl = common_profile_url($nickname); $profile->created = DB_DataObject_Cast::dateTime(); # current time + $id = $profile->insert(); if (!$id) { return FALSE; @@ -93,6 +105,8 @@ class RegisterAction extends Action { $user->password = common_munge_password($password, $id); $user->email = $email; $user->created = DB_DataObject_Cast::dateTime(); # current time + $user->uri = common_mint_tag('user:'.$id); + $result = $user->insert(); if (!$result) { # Try to clean up... @@ -100,10 +114,14 @@ class RegisterAction extends Action { } return $result; } - + function show_form($error=NULL) { - + global $config; + common_show_header(_t('Register')); + if ($error) { + common_element('div', 'error', $error); + } common_element_start('form', array('method' => 'POST', 'id' => 'login', 'action' => common_local_url('register'))); @@ -111,6 +129,16 @@ class RegisterAction extends Action { common_password('password', _t('Password')); common_password('confirm', _t('Confirm')); common_input('email', _t('Email')); + common_element_start('p'); + common_element('input', array('type' => 'checkbox', + 'id' => 'license', + 'name' => 'license', + 'value' => 'true')); + common_text(_t('My text and files are available under ')); + common_element('a', array(href => $config['license']['url']), + $config['license']['title']); + common_text(_t(' except this private data: password, email address, IM address, phone number.')); + common_element_end('p'); common_submit('submit', _t('Register')); common_element_end('form'); common_show_footer();