diff options
author | Evan Prodromou <evan@prodromou.name> | 2008-05-14 10:54:36 -0400 |
---|---|---|
committer | Evan Prodromou <evan@prodromou.name> | 2008-05-14 10:54:36 -0400 |
commit | 67a347bafb875be60e7554f308d80d7f0a1d2747 (patch) | |
tree | fb7d54dff5e84e1e22b1c5fca882a5f776e1d4a9 /actions/unsubscribe.php | |
parent | f0a30cc89ddf82e3c774800d24f0ea3664065d9c (diff) |
considerable coding
darcs-hash:20080514145436-84dde-d0994cb35d3fe8545d3f08abeec3cdfe7559c67d.gz
Diffstat (limited to 'actions/unsubscribe.php')
-rw-r--r-- | actions/unsubscribe.php | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/actions/unsubscribe.php b/actions/unsubscribe.php new file mode 100644 index 000000000..c4e6b9891 --- /dev/null +++ b/actions/unsubscribe.php @@ -0,0 +1,35 @@ +<?php + +class UnsubscribeAction extends Action { + function handle($args) { + parent::handle($args); + if (!common_logged_in()) { + common_user_error(_t('Not logged in.')); + return; + } + $other_nickname = $this->arg('unsubscribeto'); + $other = User::staticGet('nickname', $other_nickname); + if (!$other) { + common_user_error(_t('No such user.')); + return; + } + + $user = common_current_user(); + + if (!$user->isSubscribed($other)) { + common_server_error(_t('Not subscribed!.')); + } + + $sub = new Subscription(); + $sub->subscriber = $user->id; + $sub->subscribed = $other->id; + + if (!$sub->delete()) { + common_server_error(_t('Couldn\'t delete subscription.')); + return; + } + + common_redirect(common_local_url('all', array('nickname' => + $user->nickname))); + } +} |