don't allow sandboxed users to post public notices

This commit is contained in:
Evan Prodromou 2009-11-16 19:22:22 +01:00
parent d2145a5b7f
commit f1efb845e4
3 changed files with 6 additions and 3 deletions

View File

@ -203,12 +203,11 @@ class Notice extends Memcached_DataObject
$notice = new Notice(); $notice = new Notice();
$notice->profile_id = $profile_id; $notice->profile_id = $profile_id;
$blacklist = common_config('public', 'blacklist');
$autosource = common_config('public', 'autosource'); $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))) { ($source && $autosource && in_array($source, $autosource))) {
$notice->is_local = Notice::LOCAL_NONPUBLIC; $notice->is_local = Notice::LOCAL_NONPUBLIC;
} else { } else {

View File

@ -692,6 +692,9 @@ class Profile extends Memcached_DataObject
case Right::NEWNOTICE: case Right::NEWNOTICE:
$result = !$this->isSilenced(); $result = !$this->isSilenced();
break; break;
case Right::PUBLICNOTICE:
$result = !$this->isSandboxed();
break;
default: default:
$result = false; $result = false;
break; break;

View File

@ -51,5 +51,6 @@ class Right
const SILENCEUSER = 'silenceuser'; const SILENCEUSER = 'silenceuser';
const SANDBOXUSER = 'sandboxuser'; const SANDBOXUSER = 'sandboxuser';
const NEWNOTICE = 'newnotice'; const NEWNOTICE = 'newnotice';
const PUBLICNOTICE = 'publicnotice';
} }