define rights around how to silence, sandbox, and delete a user

This commit is contained in:
Evan Prodromou 2009-11-15 15:59:10 +01:00
parent e3b53565bb
commit c9475c76a8
3 changed files with 19 additions and 0 deletions

View File

@ -720,10 +720,14 @@ class User extends Memcached_DataObject
switch ($right) switch ($right)
{ {
case Right::DELETEOTHERSNOTICE: case Right::DELETEOTHERSNOTICE:
case Right::SANDBOXUSER:
case Right::SILENCEUSER:
case Right::DELETEUSER:
$result = $this->hasRole(User_role::MODERATOR); $result = $this->hasRole(User_role::MODERATOR);
break; break;
case Right::CONFIGURESITE: case Right::CONFIGURESITE:
$result = $this->hasRole(User_role::ADMINISTRATOR); $result = $this->hasRole(User_role::ADMINISTRATOR);
break;
default: default:
$result = false; $result = false;
break; break;
@ -774,4 +778,14 @@ class User extends Memcached_DataObject
$block->delete(); $block->delete();
// XXX delete group block? Reset blocker? // XXX delete group block? Reset blocker?
} }
function isSandboxed()
{
return $this->hasRole(User_role::SANDBOXED);
}
function isSilenced()
{
return $this->hasRole(User_role::SILENCED);
}
} }

View File

@ -48,4 +48,6 @@ class User_role extends Memcached_DataObject
const MODERATOR = 'moderator'; const MODERATOR = 'moderator';
const ADMINISTRATOR = 'administrator'; const ADMINISTRATOR = 'administrator';
const SANDBOXED = 'sandboxed';
const SILENCED = 'silenced';
} }

View File

@ -47,5 +47,8 @@ class Right
{ {
const DELETEOTHERSNOTICE = 'deleteothersnotice'; const DELETEOTHERSNOTICE = 'deleteothersnotice';
const CONFIGURESITE = 'configuresite'; const CONFIGURESITE = 'configuresite';
const DELETEUSER = 'deleteuser';
const SILENCEUSER = 'silenceuser';
const SANDBOXUSER = 'sandboxuser';
} }