diff options
author | Evan Prodromou <evan@prodromou.name> | 2008-07-20 16:27:05 -0400 |
---|---|---|
committer | Evan Prodromou <evan@prodromou.name> | 2008-07-20 16:27:05 -0400 |
commit | 3ffe57c7e2ca53b77909dc0daca5845a5a0497ee (patch) | |
tree | f4411e8328befae89b4af360dfd30dc3b116658a | |
parent | d294c91d82804e8e8b83abaaa6c831561f5872bc (diff) |
add autosubscribe to profile settings
darcs-hash:20080720202705-84dde-da40ebc8bcb9bd438e891c5a103211ebd67fd2c7.gz
-rw-r--r-- | actions/profilesettings.php | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/actions/profilesettings.php b/actions/profilesettings.php index 614ec4fec..eeeb8592f 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); |