X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FOStatus%2Factions%2Fgroupsalmon.php;h=d03803d620ee12f3f8975ed403515517c126cde9;hb=4ab995dd1ef9b1b4d22f27223a7d28b12895ff93;hp=5094dccf0f05015bc408c5a4d833a67ef19ea977;hpb=12eee30586dbac883e39adf453586ffef9189214;p=quix0rs-gnu-social.git diff --git a/plugins/OStatus/actions/groupsalmon.php b/plugins/OStatus/actions/groupsalmon.php index 5094dccf0f..d03803d620 100644 --- a/plugins/OStatus/actions/groupsalmon.php +++ b/plugins/OStatus/actions/groupsalmon.php @@ -17,15 +17,14 @@ * along with this program. If not, see . */ -/** - * @package OStatusPlugin - * @author James Walker - */ - if (!defined('STATUSNET')) { exit(1); } +/** + * @package OStatusPlugin + * @author James Walker + */ class GroupsalmonAction extends SalmonAction { var $group = null; @@ -37,18 +36,24 @@ class GroupsalmonAction extends SalmonAction $id = $this->trimmed('id'); if (!$id) { - $this->clientError(_('No ID.')); + // TRANS: Client error. + $this->clientError(_m('No ID.')); } $this->group = User_group::staticGet('id', $id); if (empty($this->group)) { - $this->clientError(_('No such group.')); + // TRANS: Client error. + $this->clientError(_m('No such group.')); } + + $this->target = $this->group; + $oprofile = Ostatus_profile::staticGet('group_id', $id); if ($oprofile) { - $this->clientError(_m("Can't accept remote posts for a remote group.")); + // TRANS: Client error. + $this->clientError(_m('Cannot accept remote posts for a remote group.')); } return true; @@ -57,7 +62,6 @@ class GroupsalmonAction extends SalmonAction /** * We've gotten a post event on the Salmon backchannel, probably a reply. */ - function handlePost() { // @fixme process all objects? @@ -69,18 +73,20 @@ class GroupsalmonAction extends SalmonAction case ActivityObject::COMMENT: break; default: - throw new ClientException("Can't handle that kind of post."); + // TRANS: Client exception. + throw new ClientException('Cannot handle that kind of post.'); } // Notice must be to the attention of this group - $context = $this->activity->context; if (empty($context->attention)) { + // TRANS: Client exception. throw new ClientException("Not to the attention of anyone."); } else { $uri = common_local_url('groupbyid', array('id' => $this->group->id)); if (!in_array($uri, $context->attention)) { + // TRANS: Client exception. throw new ClientException("Not to the attention of this group."); } } @@ -116,15 +122,16 @@ class GroupsalmonAction extends SalmonAction * currently we're doing the main logic in joingroup action * and so have to repeat it here. */ - function handleJoin() { $oprofile = $this->ensureProfile(); if (!$oprofile) { - $this->clientError(_m("Can't read profile to set up group membership.")); + // TRANS: Client error. + $this->clientError(_m('Cannot read profile to set up group membership.')); } if ($oprofile->isGroup()) { - $this->clientError(_m("Groups can't join groups.")); + // TRANS: Client error. + $this->clientError(_m('Groups cannot join groups.')); } common_log(LOG_INFO, "Remote profile {$oprofile->uri} joining local group {$this->group->nickname}"); @@ -137,20 +144,14 @@ class GroupsalmonAction extends SalmonAction } if (Group_block::isBlocked($this->group, $profile)) { - $this->clientError(_('You have been blocked from that group by the admin.'), 403); + $this->clientError(_m('You have been blocked from that group by the admin.'), 403); return false; } try { - // @fixme that event currently passes a user from main UI - // Event should probably move into Group_member::join - // and take a Profile object. - // - //if (Event::handle('StartJoinGroup', array($this->group, $profile))) { - Group_member::join($this->group->id, $profile->id); - //Event::handle('EndJoinGroup', array($this->group, $profile)); - //} + $profile->joinGroup($this->group); } catch (Exception $e) { + // TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. $this->serverError(sprintf(_m('Could not join remote user %1$s to group %2$s.'), $oprofile->uri, $this->group->nickname)); } @@ -159,31 +160,26 @@ class GroupsalmonAction extends SalmonAction /** * A remote user left our group. */ - function handleLeave() { $oprofile = $this->ensureProfile(); if (!$oprofile) { - $this->clientError(_m("Can't read profile to cancel group membership.")); + $this->clientError(_m('Cannot read profile to cancel group membership.')); } if ($oprofile->isGroup()) { - $this->clientError(_m("Groups can't join groups.")); + $this->clientError(_m('Groups cannot join groups.')); } common_log(LOG_INFO, "Remote profile {$oprofile->uri} leaving local group {$this->group->nickname}"); $profile = $oprofile->localProfile(); try { - // @fixme event needs to be refactored as above - //if (Event::handle('StartLeaveGroup', array($this->group, $profile))) { - Group_member::leave($this->group->id, $profile->id); - //Event::handle('EndLeaveGroup', array($this->group, $profile)); - //} + $profile->leaveGroup($this->group); } catch (Exception $e) { + // TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. $this->serverError(sprintf(_m('Could not remove remote user %1$s from group %2$s.'), $oprofile->uri, $this->group->nickname)); return; } } - }