summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--classes/Notice.php17
-rw-r--r--config.php.sample4
-rw-r--r--lib/common.php3
3 files changed, 17 insertions, 7 deletions
diff --git a/classes/Notice.php b/classes/Notice.php
index 92d4b8832..c392c39c9 100644
--- a/classes/Notice.php
+++ b/classes/Notice.php
@@ -357,17 +357,22 @@ class Notice extends Memcached_DataObject
function publicStream($offset=0, $limit=20, $since_id=0, $before_id=0) {
- $needAnd = FALSE;
- $needWhere = TRUE;
-
+ $parts = array();
+
$qry = 'SELECT * FROM notice ';
if (common_config('public', 'localonly')) {
- $qry .= ' WHERE is_local = 1 ';
- $needWhere = FALSE;
- $needAnd = TRUE;
+ $parts[] = 'is_local = 1';
+ }
+
+ if (common_config('public', 'blacklist')) {
+ $parts[] = 'profile_id not in (' . implode(',', common_config('public', 'blacklist')) . ')';
}
+ if ($parts) {
+ $qry .= ' WHERE ' . implode(' AND ', $parts);
+ }
+
return Notice::getStream($qry,
'public',
$offset, $limit, $since_id, $before_id);
diff --git a/config.php.sample b/config.php.sample
index d976b523b..17a7763af 100644
--- a/config.php.sample
+++ b/config.php.sample
@@ -92,6 +92,10 @@ $config['db']['database'] = 'mysql://laconica:microblog@localhost/laconica';
#optionally show non-local messages in public timeline
#$config['public']['localonly'] = false;
+#hide certain users from public pages, by ID
+#$config['public']['blacklist'][] = 123;
+#$config['public']['blacklist'][] = 2307;
+
#Do notice broadcasts offline
#If you use this, you must run the six offline daemons in the
#background. See the README for details.
diff --git a/lib/common.php b/lib/common.php
index 72965a358..2ab9c616c 100644
--- a/lib/common.php
+++ b/lib/common.php
@@ -86,7 +86,8 @@ $config =
'avatar' =>
array('server' => NULL),
'public' =>
- array('localonly' => true),
+ array('localonly' => true,
+ 'blacklist' => array()),
'theme' =>
array('server' => NULL),
'xmpp' =>