Files
2022-08-29 23:20:16 +02: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;
}
}
?>