Incam_Intranet/Objects/Rol.php

65 lines
1.3 KiB
PHP
Raw Permalink Normal View History

<?php
/*
* Clase Rol
*
* Contiene toda la informaci<EFBFBD>n relativa al rol.
*
* 2008-11-03 (diego): Se crea la clase con los m<EFBFBD>todos necesarios para gestionar roles.
*
*/
include_once("BD.php");
class Rol{
/* Lista de roles que est<EFBFBD>n por encima del representado por el objeto
* y que heredan todos sus permisos. */
private $padres = array();
private $id;
private $nombre;
function Rol($oid){
$consulta = "SELECT id, padres FROM rol WHERE oid = '$oid'";
$bd = new BD();
$campos = $bd->getCampos($consulta);
if(count($campos["id"] > 0)){
$this->oid = $oid;
$this->id = $campos["id"][0];
$this->padres = $campos["padres"][0];
}else{
$error = "Error de conexi<78>n.";
throw new Exception($error);
}
}
function getValor($campo){
switch ($campo) {
case "nombre":
return $this->nombre;
break;
case "oid":
return $this->oid;
break;
case "padres":
return $this->padres;
break;
default:
return "";
break;
}
}
/**
* Comprueba si es hijo de un rol especificado.
* @param rol - Rol padre.
* @return true en caso afirmativo y false en caso contrario.
*/
function esHijoDe($rol){
$arrayByUser=explode(".", $this->padres);
return in_array($rol, $arrayByUser);
}
}
?>