Add spam-training, spam-reviewing rights

Replaced the check for a moderator role in certain spam-training and
-reviewing points. Make sure modhelpers can check, too.
This commit is contained in:
Evan Prodromou 2012-03-25 13:16:23 -04:00
parent 3e46a9b164
commit 04ad0838be
5 changed files with 9 additions and 3 deletions

View File

@ -2472,7 +2472,7 @@ class Notice extends Managed_DataObject
$author = $this->getProfile();
if ($author->hasRole(Profile_role::SILENCED)) {
if (empty($profile) || !$profile->hasRole(Profile_role::MODERATOR)) {
if (empty($profile) || !$profile->hasRight(Right::REVIEWSPAM)) {
return true;
}
}

View File

@ -1190,6 +1190,8 @@ class Profile extends Managed_DataObject
case Right::SILENCEUSER:
case Right::DELETEUSER:
case Right::DELETEGROUP:
case Right::TRAINSPAM:
case Right::REVIEWSPAM:
$result = $this->hasRole(Profile_role::MODERATOR);
break;
case Right::CONFIGURESITE:

View File

@ -95,7 +95,7 @@ class ProfileNoticeStream extends ScopingNoticeStream
if (common_config('notice', 'hidespam')) {
if ($this->streamProfile->hasRole(Profile_role::SILENCED) &&
(empty($this->userProfile) || !$this->userProfile->hasRole(Profile_role::MODERATOR))) {
(empty($this->userProfile) || !$this->userProfile->hasRight(Right::REVIEWSPAM))) {
return true;
}
}

View File

@ -68,5 +68,7 @@ class Right
const CREATEGROUP = 'creategroup';
const WEBLOGIN = 'weblogin';
const API = 'api';
const REVIEWSPAM = 'reviewspam';
const TRAINSPAM = 'trainspam';
}

View File

@ -27,6 +27,8 @@ if (!defined('STATUSNET')) {
*/
class ModHelperPlugin extends Plugin
{
static $rights = array(Right::SILENCEUSER, Right::TRAINSPAM, Right::REVIEWSPAM);
function onPluginVersion(&$versions)
{
$versions[] = array('name' => 'ModHelper',
@ -42,7 +44,7 @@ class ModHelperPlugin extends Plugin
function onUserRightsCheck($profile, $right, &$result)
{
if ($right == Right::SILENCEUSER) {
if (in_array($right, self::$rights)) {
// Hrm.... really we should confirm that the *other* user isn't privleged. :)
if ($profile->hasRole('modhelper')) {
$result = true;