]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Don't try to find groupnoticestream if impossible
authorEvan Prodromou <evan@status.net>
Wed, 21 Mar 2012 20:18:38 +0000 (16:18 -0400)
committerEvan Prodromou <evan@status.net>
Wed, 21 Mar 2012 20:18:56 +0000 (16:18 -0400)
lib/groupnoticestream.php

index 26784458e0ea1c7a7590cd068593098bcc13dab5..849dfeaaf5b9f09c43d5cafe2a16d49b2ebe9005 100644 (file)
@@ -46,15 +46,47 @@ if (!defined('STATUSNET')) {
  */
 class GroupNoticeStream extends ScopingNoticeStream
 {
+    var $group;
+
     function __construct($group, $profile = -1)
     {
         if (is_int($profile) && $profile == -1) {
             $profile = Profile::current();
         }
+        $this->group = $group;
+
         parent::__construct(new CachingNoticeStream(new RawGroupNoticeStream($group),
                                                     'user_group:notice_ids:' . $group->id),
                             $profile);
     }
+
+    function getNoticeIds($offset, $limit, $since_id, $max_id)
+    {
+        if ($this->impossibleStream()) {
+            return array();
+        } else {
+            return parent::getNoticeIds($offset, $limit, $since_id, $max_id);
+        }
+    }
+
+    function getNotices($offset, $limit, $sinceId = null, $maxId = null)
+    {
+        if ($this->impossibleStream()) {
+            return array();
+        } else {
+            return parent::getNotices($offset, $limit, $sinceId, $maxId);
+        }
+    }
+
+    function impossibleStream() 
+    {
+        if ($this->group->force_scope &&
+            (empty($this->profile) || !$this->profile->isMember($group))) {
+            return true;
+        }
+
+        return false;
+    }
 }
 
 /**