X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FProfile_role.php;h=2f6dff0e1b658d73509760f80c67661c9b4cbeb5;hb=3f7a305b2aa4305dc9696bb6fd5775b847dfea87;hp=bf2c453ed0bf719f9cc00d5ff679c5cac1f6d708;hpb=7ebd13fa69d2a5dac8bc59799281d3d6e017eeae;p=quix0rs-gnu-social.git diff --git a/classes/Profile_role.php b/classes/Profile_role.php index bf2c453ed0..2f6dff0e1b 100644 --- a/classes/Profile_role.php +++ b/classes/Profile_role.php @@ -27,7 +27,7 @@ if (!defined('STATUSNET')) { require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; -class Profile_role extends Memcached_DataObject +class Profile_role extends Managed_DataObject { ###START_AUTOCODE /* the code below is auto generated do not remove the above tag */ @@ -37,15 +37,23 @@ class Profile_role extends Memcached_DataObject public $role; // varchar(32) primary_key not_null public $created; // datetime not_null default_0000-00-00%2000%3A00%3A00 - /* Static get */ - function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('Profile_role',$k,$v); } - /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE - function pkeyGet($kv) + public static function schemaDef() { - return Memcached_DataObject::pkeyGet('Profile_role', $kv); + return array( + 'fields' => array( + 'profile_id' => array('type' => 'int', 'not null' => true, 'description' => 'account having the role'), + 'role' => array('type' => 'varchar', 'length' => 32, 'not null' => true, 'description' => 'string representing the role'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date the role was granted'), + ), + 'primary key' => array('profile_id', 'role'), + 'foreign keys' => array( + 'profile_role_profile_id_fkey' => array('profile', array('profile_id' => 'id')), + ), + 'indexes' => array('profile_role_role_created_profile_id_idx' => array('role', 'created', 'profile_id')), + ); } const OWNER = 'owner'; @@ -53,4 +61,22 @@ class Profile_role extends Memcached_DataObject const ADMINISTRATOR = 'administrator'; const SANDBOXED = 'sandboxed'; const SILENCED = 'silenced'; + const DELETED = 'deleted'; // Pending final deletion of notices... + + public static function isValid($role) + { + // @fixme could probably pull this from class constants + $known = array(self::OWNER, + self::MODERATOR, + self::ADMINISTRATOR, + self::SANDBOXED, + self::SILENCED); + return in_array($role, $known); + } + + public static function isSettable($role) + { + $allowedRoles = array('administrator', 'moderator'); + return self::isValid($role) && in_array($role, $allowedRoles); + } }