From 797cd9ccd4bd9d90d37411583d52bf8cad45a556 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 4 Apr 2011 22:34:47 -0400 Subject: [PATCH] fix scope for replies to group-private notices --- classes/Notice.php | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/classes/Notice.php b/classes/Notice.php index 835d9af53e..a4f530c44f 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -342,6 +342,12 @@ class Notice extends Memcached_DataObject $notice->uri = $uri; $notice->url = $url; + // Get the groups here so we can figure out replies and such + + if (!isset($groups)) { + $groups = self::groupsFromText($notice->content, $profile); + } + $reply = null; // Handle repeat case @@ -394,6 +400,20 @@ class Notice extends Memcached_DataObject $notice->reply_to = $reply->id; $notice->conversation = $reply->conversation; + + // If the original is private to a group, and notice has no group specified, + // make it to the same group(s) + + if (empty($groups) && ($reply->scope | Notice::GROUP_SCOPE)) { + $groups = array(); + $replyGroups = $reply->getGroups(); + foreach ($replyGroups as $group) { + if ($profile->isMember($group)) { + $groups[] = $group->id; + } + } + } + // Scope set below } } @@ -444,10 +464,6 @@ class Notice extends Memcached_DataObject // Force the scope for private groups - if (!isset($groups)) { - $groups = self::groupsFromText($notice->content, $profile); - } - foreach ($groups as $groupId) { $group = User_group::staticGet('id', $groupId); if (!empty($group)) { -- 2.39.5