From 3ffe57c7e2ca53b77909dc0daca5845a5a0497ee Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 20 Jul 2008 16:27:05 -0400 Subject: [PATCH] add autosubscribe to profile settings darcs-hash:20080720202705-84dde-da40ebc8bcb9bd438e891c5a103211ebd67fd2c7.gz --- actions/profilesettings.php | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/actions/profilesettings.php b/actions/profilesettings.php index 614ec4fec1..eeeb8592f3 100644 --- a/actions/profilesettings.php +++ b/actions/profilesettings.php @@ -52,6 +52,8 @@ class ProfilesettingsAction extends SettingsAction { common_input('location', _('Location'), ($this->arg('location')) ? $this->arg('location') : $profile->location, _('Where you are, like "City, State (or Region), Country"')); + common_checkbox('autosubscribe', _('Automatically subscribe to whoever subscribes to me (best for non-humans)'), + ($this->arg('autosubscribe') : $this->boolean('autosubscribe') : $user->autosubscribe); common_submit('submit', _('Save')); common_element_end('form'); common_show_footer(); @@ -64,7 +66,8 @@ class ProfilesettingsAction extends SettingsAction { $homepage = $this->trimmed('homepage'); $bio = $this->trimmed('bio'); $location = $this->trimmed('location'); - + $autosubscribe = $this->boolean('autosubscribe'); + # Some validation if (!Validate::string($nickname, array('min_length' => 1, @@ -115,6 +118,22 @@ class ProfilesettingsAction extends SettingsAction { } } + # XOR + + if ($user->autosubscribe ^ $autosubscribe) { + $original = clone($user); + + $user->nickname = $nickname; + + $result = $user->update($original); + + if ($result === FALSE) { + common_log_db_error($user, 'UPDATE', __FILE__); + common_server_error(_('Couldn\'t update user.')); + return; + } + } + $profile = $user->getProfile(); $orig_profile = clone($profile);