summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Prodromou <evan@status.net>2009-11-16 19:22:22 +0100
committerEvan Prodromou <evan@status.net>2009-11-16 19:22:22 +0100
commitf1efb845e4955f398be3a7e36499474dc67bdade (patch)
treede565738a6743fb4bc016d03dc843365f36c6860
parentd2145a5b7f3a95dcfa90edb4bcd5e5b3bf66c116 (diff)
don't allow sandboxed users to post public notices
-rw-r--r--classes/Notice.php5
-rw-r--r--classes/Profile.php3
-rw-r--r--lib/right.php1
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';
}