summaryrefslogtreecommitdiff
path: root/lib/command.php
diff options
context:
space:
mode:
authorZach Copley <zach@status.net>2010-01-13 19:17:49 +0000
committerZach Copley <zach@status.net>2010-01-13 19:17:49 +0000
commitc3188fd1fece2be7f7c4211d28f4a3d3a59c8fa1 (patch)
treeaa8018e132936b00fc63224e75ca134d68999b4e /lib/command.php
parent43170b3d18153b3dfd8675bd77ae1133eed8148a (diff)
parent0e1f2d4b47e5e340679c4245b62e1d64c6b9c9b9 (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'),