Files
fdn2/private/lib/dao/models/AdminModel.php
T
Riccardo Di Dato d7e5c5ac35 Inclusi css essenziali
Inclusi js essenziali
BugFix LoginManager
Creata classe MenuGenerator per ottenere le voci menu in base ai ruoli
Incluso sistema di inclusione header in GUIHandler
2016-01-13 20:15:49 +01:00

80 lines
2.8 KiB
PHP

<?php
/*
Author: Riccardo Di Dato
Creation Date: 13/gen/2016
*/
class AdminModel extends Model{
/*
SuperAdmin (FLAG_HIDDEN Profilo per esecuzione manuale di task, attivazione/disattivazione task, aggiunge flag NON_HIDDEN agli utenti, ripristina backup)
Admin (Amministratore di sistema, può aggiungere FLAG_BASE agli altri amministratori)
Editore (FLAG_BASE Inserimento notizie)
Editore_supervisor (Validazione notizie)
Banner (Inserimento banner)
Banner_supervisor (Visualizza statistiche banner)
Commenti_supervisor (Valida i commenti e modifica quelli in stato di pending)
Statistiche_supervisor (Visualizza statistiche relative agli accessi sull'applicazione)
Newsletter (Crea newsletter)
Sondaggi (Crea sondaggi)
*/
const TYPE_FLAG_NONE = 0;
const TYPE_FLAG_HIDDEN = 1;
const TYPE_FLAG_BASE = 2;
const ADMIN_TYPE_SUPERADMIN = 1;
const ADMIN_TYPE_NORMALADMIN = 2;
const ADMIN_TYPE_EDITORE = 4;
const ADMIN_TYPE_EDITORE_SUPERVISOR = 8;
const ADMIN_TYPE_BANNER = 16;
const ADMIN_TYPE_BANNER_SUPERVISOR = 32;
const ADMIN_TYPE_COMMENTI_SUPERVISOR = 64;
const ADMIN_TYPE_STATISTICHE_SUPERVISOR = 128;
const ADMIN_TYPE_NEWSLETTER = 256;
const ADMIN_TYPE_SONDAGGI = 512;
public static $ADMIN_TYPES = array(
self::ADMIN_TYPE_SUPERADMIN => array("label"=>"Superadmin","typeFlags"=>self::TYPE_FLAG_HIDDEN),
self::ADMIN_TYPE_NORMALADMIN => array("label"=>"Role Admin","typeFlags"=>self::TYPE_FLAG_NONE),
self::ADMIN_TYPE_EDITORE => array("label"=>"Editore","typeFlags"=>self::TYPE_FLAG_BASE),
self::ADMIN_TYPE_EDITORE_SUPERVISOR => array("label"=>"Editore Supervisor","typeFlags"=>self::TYPE_FLAG_NONE),
self::ADMIN_TYPE_BANNER => array("label"=>"Banner","typeFlags"=>self::TYPE_FLAG_NONE),
self::ADMIN_TYPE_BANNER_SUPERVISOR => array("label"=>"Banner Supervisor","typeFlags"=>self::TYPE_FLAG_NONE),
self::ADMIN_TYPE_COMMENTI_SUPERVISOR => array("label"=>"Commenti Supervisor","typeFlags"=>self::TYPE_FLAG_NONE),
self::ADMIN_TYPE_STATISTICHE_SUPERVISOR => array("label"=>"Statistiche Supervisor","typeFlags"=>self::TYPE_FLAG_NONE),
self::ADMIN_TYPE_NEWSLETTER => array("label"=>"Newsletter","typeFlags"=>self::TYPE_FLAG_NONE),
self::ADMIN_TYPE_SONDAGGI => array("label"=>"Sondaggi","typeFlags"=>self::TYPE_FLAG_NONE)
);
public function __construct($saveableObject = null){
parent::__construct($saveableObject);
if (!$this->hasProperty("roles")){
$this->roles = 0;
}
}
public static function getCollectionName(){
return "administrators";
}
public function hasRole($role){
return ($role & $this->roles) == $role;
}
public function addRole($role){
$this->roles = $this->roles | $role;
}
public function removeRole($role){
$this->roles = $this->roles & ~$role;
}
public function setRole($role){
$this->roles = $role;
}
}
?>