git-svn-id: https://192.168.0.254/svn/Proyectos.Incam_Intranet/trunk/src@19 e2b1556b-49f8-d141-9351-52d6861a72d9
65 lines
1.3 KiB
PHP
65 lines
1.3 KiB
PHP
<?php
|
|
/*
|
|
* Clase Rol
|
|
*
|
|
* Contiene toda la información relativa al rol.
|
|
*
|
|
* 2008-11-03 (diego): Se crea la clase con los métodos necesarios para gestionar roles.
|
|
*
|
|
*/
|
|
include_once("BD.php");
|
|
class Rol{
|
|
|
|
/* Lista de roles que está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ó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);
|
|
}
|
|
|
|
}
|
|
?>
|