* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
-
class ProfilesettingsAction extends AccountSettingsAction
{
/**
*
* @return string Title of the page
*/
-
function title()
{
// TRANS: Page title for profile settings.
*
* @return instructions for use
*/
-
function getInstructions()
{
// TRANS: Usage instructions for profile settings.
*
* @return void
*/
-
function showContent()
{
$user = common_current_user();
*
* @return void
*/
-
function handlePost()
{
// CSRF protection
if (Event::handle('StartProfileSaveForm', array($this))) {
- $nickname = $this->trimmed('nickname');
+ try {
+ $nickname = Nickname::normalize($this->trimmed('nickname'));
+ } catch (NicknameException $e) {
+ $this->showForm($e->getMessage());
+ return;
+ }
+
$fullname = $this->trimmed('fullname');
$homepage = $this->trimmed('homepage');
$bio = $this->trimmed('bio');
$tagstring = $this->trimmed('tags');
// Some validation
- if (!Validate::string($nickname, array('min_length' => 1,
- 'max_length' => 64,
- 'format' => NICKNAME_FMT))) {
- // TRANS: Validation error in form for profile settings.
- $this->showForm(_('Nickname must have only lowercase letters and numbers and no spaces.'));
- return;
- } else if (!User::allowed_nickname($nickname)) {
+ if (!User::allowed_nickname($nickname)) {
// TRANS: Validation error in form for profile settings.
$this->showForm(_('Not a valid nickname.'));
return;
if ($result === false) {
common_log_db_error($user, 'UPDATE', __FILE__);
// TRANS: Server error thrown when user profile settings could not be updated.
- $this->serverError(_('Couldn\'t update user.'));
+ $this->serverError(_('Could not update user.'));
return;
} else {
// Re-initialize language environment if it changed
common_log_db_error($user, 'UPDATE', __FILE__);
// TRANS: Server error thrown when user profile settings could not be updated to
// TRANS: automatically subscribe to any subscriber.
- $this->serverError(_('Couldn\'t update user for autosubscribe.'));
+ $this->serverError(_('Could not update user for autosubscribe.'));
return;
}
}
if ($result === false) {
common_log_db_error($prefs, ($exists) ? 'UPDATE' : 'INSERT', __FILE__);
// TRANS: Server error thrown when user profile location preference settings could not be updated.
- $this->serverError(_('Couldn\'t save location prefs.'));
+ $this->serverError(_('Could not save location prefs.'));
return;
}
}
if ($result === false) {
common_log_db_error($profile, 'UPDATE', __FILE__);
// TRANS: Server error thrown when user profile settings could not be saved.
- $this->serverError(_('Couldn\'t save profile.'));
+ $this->serverError(_('Could not save profile.'));
return;
}
if (!$result) {
// TRANS: Server error thrown when user profile settings tags could not be saved.
- $this->serverError(_('Couldn\'t save tags.'));
+ $this->serverError(_('Could not save tags.'));
return;
}
return $other->id != $user->id;
}
}
+
+ function showAside() {
+ $user = common_current_user();
+
+ $this->elementStart('div', array('id' => 'aside_primary',
+ 'class' => 'aside'));
+ $this->elementStart('ul');
+ if (Event::handle('StartProfileSettingsActions', array($this))) {
+ if ($user->hasRight(Right::BACKUPACCOUNT)) {
+ $this->elementStart('li');
+ $this->element('a',
+ array('href' => common_local_url('backupaccount')),
+ _('Backup account'));
+ $this->elementEnd('li');
+ }
+ if ($user->hasRight(Right::DELETEACCOUNT)) {
+ $this->elementStart('li');
+ $this->element('a',
+ array('href' => common_local_url('deleteaccount')),
+ _('Delete account'));
+ $this->elementEnd('li');
+ }
+ if ($user->hasRight(Right::RESTOREACCOUNT)) {
+ $this->elementStart('li');
+ $this->element('a',
+ array('href' => common_local_url('restoreaccount')),
+ _('Restore account'));
+ $this->elementEnd('li');
+ }
+ Event::handle('EndProfileSettingsActions', array($this));
+ }
+ $this->elementEnd('ul');
+ $this->elementEnd('div');
+ }
}