]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/scopingnoticestream.php
Don't trust local HTML either
[quix0rs-gnu-social.git] / lib / scopingnoticestream.php
index a7ecbcd56ba8c34f44251317e28a93309edce8a6..c1651d5a30b1c347c33803091ddf441d5b65f1b3 100644 (file)
@@ -49,16 +49,15 @@ class ScopingNoticeStream extends FilteringNoticeStream
 {
     protected $profile;
 
-    function __construct($upstream, $profile = null)
+    function __construct($upstream, $profile = -1)
     {
         parent::__construct($upstream);
 
-        if (empty($profile)) {
-            $user = common_current_user();
-            if (!empty($user)) {
-                $profile = $user->getProfile();
-            }
+        // Invalid but not null
+        if (is_int($profile) && $profile == -1) {
+            $profile = Profile::current();
         }
+
         $this->profile = $profile;
     }
 
@@ -74,5 +73,25 @@ class ScopingNoticeStream extends FilteringNoticeStream
     {
         return $notice->inScope($this->profile);
     }
-    
+
+    function prefill($notices)
+    {
+        // XXX: this should probably only be in the scoping one.
+            
+        Notice::fillGroups($notices);
+        Notice::fillReplies($notices);
+
+        if (common_config('notice', 'hidespam')) {
+
+            $profiles = Notice::getProfiles($notices);
+
+            foreach ($profiles as $profile) {
+                $pids[] = $profile->id;
+            }
+            
+            Profile_role::pivotGet('profile_id',
+                                   $pids,
+                                   array('role' => Profile_role::SILENCED));
+        }
+    }
 }