Make the ForceGroup plugin work consistently for notices from remote users.

This commit is contained in:
Joshua Judson Rosen 2012-06-18 23:39:47 -04:00 committed by Mikael Nordfeldth
parent 8e5d58fe2a
commit 9844ec76e9
1 changed files with 18 additions and 0 deletions

View File

@ -52,6 +52,24 @@ class ForceGroupPlugin extends Plugin
function onStartNoticeDistribute($notice)
{
$profile = $notice->getProfile();
$isRemote = !(User::staticGet('id', $profile->id));
if ($isRemote) {
/*
* Notices from remote users on other sites
* will normally not end up here unless they're
* specifically directed here, e.g.: via explicit
* post to a remote (to them) group. But remote
* notices can also be `pulled in' as a result of
* local users subscribing to the remote user;
* from the remote user's perspective, this results
* in group-forcing appearing effectively random.
* So let's be consistent, and just never force
* incoming remote notices into a ForceGroup:
*/
return true;
}
foreach ($this->post as $nickname) {
$group = User_group::getForNickname($nickname);
if ($group && $profile->isMember($group)) {