]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Make the ForceGroup plugin work consistently for notices from remote users.
authorJoshua Judson Rosen <rozzin@geekspace.com>
Tue, 19 Jun 2012 03:39:47 +0000 (23:39 -0400)
committerMikael Nordfeldth <mmn@hethane.se>
Sun, 29 Sep 2013 21:12:40 +0000 (23:12 +0200)
plugins/ForceGroup/ForceGroupPlugin.php

index 06d5521d039147d86ce39602e4e3bc8930396edb..626275d6b96b267584bcaf977ccfe8cd607f150f 100644 (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)) {