80 lines
2.8 KiB
PHP
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;
|
|
}
|
|
|
|
}
|
|
|
|
?>
|