2011-04-04 15:16:10 +00:00
|
|
|
|
<?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);
|
2011-04-06 12:06:00 +00:00
|
|
|
|
|
|
|
|
|
|
if(count($campos["id"] > 0)){
|
2011-04-04 15:16:10 +00:00
|
|
|
|
$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);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
?>
|