summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Prodromou <evan@status.net>2009-11-15 15:59:10 +0100
committerEvan Prodromou <evan@status.net>2009-11-15 15:59:10 +0100
commitc9475c76a8b4c2bf32d1d3293b03b646e7e7a91e (patch)
treed5e5bc7e9859824b25788d947eddff1531cb329b
parente3b53565bb5744116811cd88dbe67ae8df7547fd (diff)
define rights around how to silence, sandbox, and delete a user
-rw-r--r--classes/User.php14
-rw-r--r--classes/User_role.php2
-rw-r--r--lib/right.php3
3 files changed, 19 insertions, 0 deletions
diff --git a/classes/User.php b/classes/User.php
index 9f1ee53f4..0e8404377 100644
--- a/classes/User.php
+++ b/classes/User.php
@@ -720,10 +720,14 @@ class User extends Memcached_DataObject
switch ($right)
{
case Right::DELETEOTHERSNOTICE:
+ case Right::SANDBOXUSER:
+ case Right::SILENCEUSER:
+ case Right::DELETEUSER:
$result = $this->hasRole(User_role::MODERATOR);
break;
case Right::CONFIGURESITE:
$result = $this->hasRole(User_role::ADMINISTRATOR);
+ break;
default:
$result = false;
break;
@@ -774,4 +778,14 @@ class User extends Memcached_DataObject
$block->delete();
// XXX delete group block? Reset blocker?
}
+
+ function isSandboxed()
+ {
+ return $this->hasRole(User_role::SANDBOXED);
+ }
+
+ function isSilenced()
+ {
+ return $this->hasRole(User_role::SILENCED);
+ }
}
diff --git a/classes/User_role.php b/classes/User_role.php
index fc3806897..b415642fc 100644
--- a/classes/User_role.php
+++ b/classes/User_role.php
@@ -48,4 +48,6 @@ class User_role extends Memcached_DataObject
const MODERATOR = 'moderator';
const ADMINISTRATOR = 'administrator';
+ const SANDBOXED = 'sandboxed';
+ const SILENCED = 'silenced';
}
diff --git a/lib/right.php b/lib/right.php
index 4fc981af0..88abdf780 100644
--- a/lib/right.php
+++ b/lib/right.php
@@ -47,5 +47,8 @@ class Right
{
const DELETEOTHERSNOTICE = 'deleteothersnotice';
const CONFIGURESITE = 'configuresite';
+ const DELETEUSER = 'deleteuser';
+ const SILENCEUSER = 'silenceuser';
+ const SANDBOXUSER = 'sandboxuser';
}