441e52718e
While deletion is in progress, the account is locked with the 'deleted' role, which disables all actions with rights control. Todo: * Pretty up the notice on the profile page about the pending delete. Show status? * Possibly more thorough account disabling, such as disallowing all use for login and access. * Improve error recovery; worst case is that an account gets left locked in 'deleted' state but the queue jobs have gotten dropped out. This would leave the username in use and any undeleted notices in place.
75 lines
2.5 KiB
PHP
75 lines
2.5 KiB
PHP
<?php
|
|
/*
|
|
* StatusNet - the distributed open-source microblogging tool
|
|
* Copyright (C) 2009, StatusNet, Inc.
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Affero General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Affero General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
if (!defined('STATUSNET')) {
|
|
exit(1);
|
|
}
|
|
|
|
/**
|
|
* Table Definition for profile_role
|
|
*/
|
|
|
|
require_once INSTALLDIR.'/classes/Memcached_DataObject.php';
|
|
|
|
class Profile_role extends Memcached_DataObject
|
|
{
|
|
###START_AUTOCODE
|
|
/* the code below is auto generated do not remove the above tag */
|
|
|
|
public $__table = 'profile_role'; // table name
|
|
public $profile_id; // int(4) primary_key not_null
|
|
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)
|
|
{
|
|
return Memcached_DataObject::pkeyGet('Profile_role', $kv);
|
|
}
|
|
|
|
const OWNER = 'owner';
|
|
const MODERATOR = 'moderator';
|
|
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);
|
|
}
|
|
}
|