diff options
author | Evan Prodromou <evan@status.net> | 2009-11-16 19:22:22 +0100 |
---|---|---|
committer | Evan Prodromou <evan@status.net> | 2009-11-16 19:22:22 +0100 |
commit | f1efb845e4955f398be3a7e36499474dc67bdade (patch) | |
tree | de565738a6743fb4bc016d03dc843365f36c6860 | |
parent | d2145a5b7f3a95dcfa90edb4bcd5e5b3bf66c116 (diff) |
don't allow sandboxed users to post public notices
-rw-r--r-- | classes/Notice.php | 5 | ||||
-rw-r--r-- | classes/Profile.php | 3 | ||||
-rw-r--r-- | lib/right.php | 1 |
3 files changed, 6 insertions, 3 deletions
diff --git a/classes/Notice.php b/classes/Notice.php index fde40240f..1db431f2a 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -203,12 +203,11 @@ class Notice extends Memcached_DataObject $notice = new Notice(); $notice->profile_id = $profile_id; - $blacklist = common_config('public', 'blacklist'); $autosource = common_config('public', 'autosource'); - # Blacklisted are non-false, but not 1, either + # Sandboxed are non-false, but not 1, either - if (($blacklist && in_array($profile_id, $blacklist)) || + if (!$user->hasRight(Right::PUBLICNOTICE) || ($source && $autosource && in_array($source, $autosource))) { $notice->is_local = Notice::LOCAL_NONPUBLIC; } else { diff --git a/classes/Profile.php b/classes/Profile.php index e3b35533a..291e3f064 100644 --- a/classes/Profile.php +++ b/classes/Profile.php @@ -692,6 +692,9 @@ class Profile extends Memcached_DataObject case Right::NEWNOTICE: $result = !$this->isSilenced(); break; + case Right::PUBLICNOTICE: + $result = !$this->isSandboxed(); + break; default: $result = false; break; diff --git a/lib/right.php b/lib/right.php index ae8516602..1a3a7d49a 100644 --- a/lib/right.php +++ b/lib/right.php @@ -51,5 +51,6 @@ class Right const SILENCEUSER = 'silenceuser'; const SANDBOXUSER = 'sandboxuser'; const NEWNOTICE = 'newnotice'; + const PUBLICNOTICE = 'publicnotice'; } |