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)) {
+ } else if ($email && !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,
$this->show_form(_t('Nickname must have only lowercase letters and numbers and no spaces.'));
} else if ($this->nickname_exists($nickname)) {
$this->show_form(_t('Nickname already exists.'));
+ } else if (!User::allowed_nickname($nickname)) {
+ $this->show_form(_t('Not a valid nickname.'));
} else if ($this->email_exists($email)) {
$this->show_form(_t('Email address already exists.'));
} else if ($password != $confirm) {
common_server_error(_t('Error setting user.'));
return;
}
+ common_real_login(true);
+ if ($this->boolean('rememberme')) {
+ common_rememberme();
+ }
common_redirect(common_local_url('profilesettings'));
} else {
$this->show_form(_t('Invalid username or password.'));
$profile->created = DB_DataObject_Cast::dateTime(); # current time
$id = $profile->insert();
+
if (!$id) {
- return FALSE;
+ common_log_db_error($profile, 'INSERT', __FILE__);
+ return FALSE;
}
$user = new User();
$user->id = $id;
$user->nickname = $nickname;
$user->password = common_munge_password($password, $id);
$user->created = DB_DataObject_Cast::dateTime(); # current time
- $user->uri = common_mint_tag('user:'.$id);
+ $user->uri = common_user_uri($user);
$result = $user->insert();
+
if (!$result) {
+ common_log_db_error($user, 'INSERT', __FILE__);
return FALSE;
}
if ($email) {
- $confirm = new Confirm_email();
- $confirm->code = common_good_rand(16);
+
+ $confirm = new Confirm_address();
+ $confirm->code = common_confirmation_code(128);
$confirm->user_id = $user->id;
- $confirm->email = $email;
+ $confirm->address = $email;
+ $confirm->address_type = 'email';
$result = $confirm->insert();
if (!$result) {
+ common_log_db_error($confirm, 'INSERT', __FILE__);
return FALSE;
}
}
_t('Same as password above'));
common_input('email', _t('Email'), NULL,
_t('Used only for updates, announcements, and password recovery'));
+ common_checkbox('rememberme', _t('Remember me'),
+ _t('Automatically login in the future; ' .
+ 'not for shared computers!'));
common_element_start('p');
common_element('input', array('type' => 'checkbox',
'id' => 'license',