]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
change is_local flag for blacklisted users
authorEvan Prodromou <evan@controlyourself.ca>
Tue, 2 Dec 2008 18:42:58 +0000 (13:42 -0500)
committerEvan Prodromou <evan@controlyourself.ca>
Tue, 2 Dec 2008 18:42:58 +0000 (13:42 -0500)
Changed the flag on notices that says whether the notice is local, so
that it's -1 for local-but-blacklisted. This should keep blacklisted
users off the public timeline.

darcs-hash:20081202184258-5ed1f-cd87ea5c528ea0c90cb31eeb59d4d1ba4f85e9ad.gz

classes/Notice.php

index 98a77e20d179f6c758dcc4e07bab80e898ad1452..6d42a4f9af517dd21bacef981ab258ccfcf6337d 100644 (file)
@@ -95,7 +95,17 @@ class Notice extends Memcached_DataObject
 
                $notice = new Notice();
                $notice->profile_id = $profile_id;
-               $notice->is_local = $is_local;
+
+               $blacklist = common_config('public', 'blacklist');
+
+               # Blacklisted are non-false, but not 1, either
+
+               if ($blacklist && in_array($profile_id, $blacklist)) {
+                       $notice->is_local = -1;
+               } else {
+                       $notice->is_local = $is_local;
+               }
+
                $notice->reply_to = $reply_to;
                $notice->created = common_sql_now();
                $notice->content = $content;
@@ -214,7 +224,7 @@ class Notice extends Memcached_DataObject
        }
 
        function blowPublicCache($blowLast=false) {
-               if ($this->is_local) {
+               if ($this->is_local == 1) {
                        $cache = common_memcache();
                        if ($cache) {
                                $cache->delete(common_cache_key('public'));
@@ -426,10 +436,9 @@ class Notice extends Memcached_DataObject
 
                if (common_config('public', 'localonly')) {
                        $parts[] = 'is_local = 1';
-               }
-
-               if (common_config('public', 'blacklist')) {
-                       $parts[] = 'profile_id not in (' . implode(',', common_config('public', 'blacklist')) . ')';
+               } else {
+                       # -1 == blacklisted
+                       $parts[] = 'is_local != -1';
                }
 
                if ($parts) {