summaryrefslogtreecommitdiff
path: root/lib/command.php
diff options
context:
space:
mode:
authorSiebrand Mazeland <s.mazeland@xs4all.nl>2010-01-13 23:10:00 +0100
committerSiebrand Mazeland <s.mazeland@xs4all.nl>2010-01-13 23:10:00 +0100
commit108c51fa6859ec56269078ef9bd0459fdbd9b1ba (patch)
treec45dc1036d80ba0fdc58473819cde12bcc03eb32 /lib/command.php
parentf7f82982ec9a8671195efdc278c2987aa92c083c (diff)
parent25ed2d2c872e59fd99b54fdf0dec1ca448feca00 (diff)
Merge branch '0.9.x' of git://gitorious.org/statusnet/mainline into 0.9.x
Diffstat (limited to 'lib/command.php')
-rw-r--r--lib/command.php45
1 files changed, 18 insertions, 27 deletions
diff --git a/lib/command.php b/lib/command.php
index f846fb823..c0a32e1b1 100644
--- a/lib/command.php
+++ b/lib/command.php
@@ -222,18 +222,15 @@ class JoinCommand extends Command
return;
}
- $member = new Group_member();
-
- $member->group_id = $group->id;
- $member->profile_id = $cur->id;
- $member->created = common_sql_now();
-
- $result = $member->insert();
- if (!$result) {
- common_log_db_error($member, 'INSERT', __FILE__);
- $channel->error($cur, sprintf(_('Could not join user %s to group %s'),
- $cur->nickname, $group->nickname));
- return;
+ try {
+ if (Event::handle('StartJoinGroup', array($group, $cur))) {
+ Group_member::join($group->id, $cur->id);
+ Event::handle('EndJoinGroup', array($group, $cur));
+ }
+ } catch (Exception $e) {
+ $channel->error($cur, sprintf(_('Could not join user %s to group %s'),
+ $cur->nickname, $group->nickname));
+ return;
}
$channel->output($cur, sprintf(_('%s joined group %s'),
@@ -269,21 +266,15 @@ class DropCommand extends Command
return;
}
- $member = new Group_member();
-
- $member->group_id = $group->id;
- $member->profile_id = $cur->id;
-
- if (!$member->find(true)) {
- $channel->error($cur,_('Could not find membership record.'));
- return;
- }
- $result = $member->delete();
- if (!$result) {
- common_log_db_error($member, 'INSERT', __FILE__);
- $channel->error($cur, sprintf(_('Could not remove user %s to group %s'),
- $cur->nickname, $group->nickname));
- return;
+ try {
+ if (Event::handle('StartLeaveGroup', array($group, $cur))) {
+ Group_member::leave($group->id, $cur->id);
+ Event::handle('EndLeaveGroup', array($group, $cur));
+ }
+ } catch (Exception $e) {
+ $channel->error($cur, sprintf(_('Could not remove user %s to group %s'),
+ $cur->nickname, $group->nickname));
+ return;
}
$channel->output($cur, sprintf(_('%s left group %s'),