diff options
Diffstat (limited to 'actions')
-rw-r--r-- | actions/password.php | 28 | ||||
-rw-r--r-- | actions/profilesettings.php | 32 |
2 files changed, 32 insertions, 28 deletions
diff --git a/actions/password.php b/actions/password.php index c5ab28ee9..63b99c623 100644 --- a/actions/password.php +++ b/actions/password.php @@ -1,18 +1,18 @@ <?php -/* +/* * Laconica - a distributed open-source microblogging tool * Copyright (C) 2008, Controlez-Vous, Inc. - * + * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. - * + * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ @@ -22,14 +22,14 @@ if (!defined('LACONICA')) { exit(1); } require_once(INSTALLDIR.'/lib/settingsaction.php'); class PasswordAction extends SettingsAction { - + function show_form($msg=NULL, $success=false) { common_show_header(_t('Change password')); $this->settings_menu(); $this->message($msg, $success); common_element_start('form', array('method' => 'POST', 'id' => 'password', - 'action' => + 'action' => common_local_url('password'))); common_password('oldpassword', _t('Old password')); common_password('newpassword', _t('New password')); @@ -44,18 +44,18 @@ class PasswordAction extends SettingsAction { _t('Cancel')); common_element_end('form'); } - + function handle_post() { $user = common_current_user(); assert(!is_null($user)); # should already be checked - + # FIXME: scrub input $oldpassword = $this->arg('oldpassword'); $newpassword = $this->arg('newpassword'); $confirm = $this->arg('confirm'); - + if (0 != strcmp($newpassword, $confirm)) { $this->show_form(_t('Passwords don\'t match')); return; @@ -65,14 +65,16 @@ class PasswordAction extends SettingsAction { $this->show_form(_t('Incorrect old password')); return; } - + + $original = clone($user); + $user->password = common_munge_password($newpassword, $user->id); - - if (!$user->update()) { + + if (!$user->update($original)) { common_server_error(_t('Can\'t save new password.')); return; } - + $this->show_form(_t('Password saved'), true); } }
\ No newline at end of file diff --git a/actions/profilesettings.php b/actions/profilesettings.php index fc06c5a18..15c455fe2 100644 --- a/actions/profilesettings.php +++ b/actions/profilesettings.php @@ -1,18 +1,18 @@ <?php -/* +/* * Laconica - a distributed open-source microblogging tool * Copyright (C) 2008, Controlez-Vous, Inc. - * + * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. - * + * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ @@ -22,7 +22,7 @@ if (!defined('LACONICA')) { exit(1); } require_once(INSTALLDIR.'/lib/settingsaction.php'); class ProfilesettingsAction extends SettingsAction { - + function show_form($msg=NULL, $success=false) { $user = common_current_user(); $profile = $user->getProfile(); @@ -31,17 +31,17 @@ class ProfilesettingsAction extends SettingsAction { $this->message($msg, $success); common_element_start('form', array('method' => 'POST', 'id' => 'profilesettings', - 'action' => + 'action' => common_local_url('profilesettings'))); # too much common patterns here... abstractable? - common_input('nickname', _t('Nickname'), + common_input('nickname', _t('Nickname'), ($this->arg('nickname')) ? $this->arg('nickname') : $profile->nickname); common_input('fullname', _t('Full name'), ($this->arg('fullname')) ? $this->arg('fullname') : $profile->fullname); common_input('email', _t('Email address'), ($this->arg('email')) ? $this->arg('email') : $user->email); common_input('homepage', _t('Homepage'), - ($this->arg('homepage')) ? $this->arg('homepage') : $profile->homepage); + ($this->arg('homepage')) ? $this->arg('homepage') : $profile->homepage); common_input('bio', _t('Bio'), ($this->arg('bio')) ? $this->arg('bio') : $profile->bio); common_input('location', _t('Location'), @@ -53,7 +53,7 @@ class ProfilesettingsAction extends SettingsAction { common_element_end('form'); common_show_footer(); } - + function handle_post() { $nickname = $this->arg('nickname'); $fullname = $this->arg('fullname'); @@ -64,15 +64,15 @@ class ProfilesettingsAction extends SettingsAction { $user = common_current_user(); assert(!is_null($user)); # should already be checked - + # FIXME: scrub input # FIXME: transaction! $original = clone($user); - + $user->nickname = $this->arg('nickname'); $user->email = $this->arg('email'); - + if (!$user->update($original)) { common_server_error(_t('Couldnt update user.')); return; @@ -80,18 +80,20 @@ class ProfilesettingsAction extends SettingsAction { $profile = $user->getProfile(); + $orig_profile = clone($profile); + $profile->nickname = $user->nickname; $profile->fullname = $this->arg('fullname'); $profile->homepage = $this->arg('homepage'); $profile->bio = $this->arg('bio'); $profile->location = $this->arg('location'); $profile->profileurl = common_profile_url($nickname); - - if (!$profile->update()) { + + if (!$profile->update($orig_profile)) { common_server_error(_t('Couldnt save profile.')); return; } - + $this->show_form(_t('Settings saved.'), TRUE); } }
\ No newline at end of file |