forked from GNUsocial/gnu-social
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:
parent
3e46a9b164
commit
04ad0838be
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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:
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -68,5 +68,7 @@ class Right
|
||||
const CREATEGROUP = 'creategroup';
|
||||
const WEBLOGIN = 'weblogin';
|
||||
const API = 'api';
|
||||
const REVIEWSPAM = 'reviewspam';
|
||||
const TRAINSPAM = 'trainspam';
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user