X-Git-Url: https://git.llucax.com/mecon/meconlib.git/blobdiff_plain/d244a130edade844993478bace7a45fd556e85c8..bf4ceaa6453bf08f5223d2ccfcef1eaa5e8cc07e:/samurai_lib/php/Samurai/Perm.php?ds=inline diff --git a/samurai_lib/php/Samurai/Perm.php b/samurai_lib/php/Samurai/Perm.php index c122317..5580f6e 100644 --- a/samurai_lib/php/Samurai/Perm.php +++ b/samurai_lib/php/Samurai/Perm.php @@ -37,7 +37,6 @@ require_once 'DB.php'; * @author $Author$ */ -// Comienzo Clase {{{ class SA_Perm extends PEAR { /** @@ -105,9 +104,9 @@ class SA_Perm extends PEAR { function tiene() { $args = func_get_args(); //Obtengo los permisos que me pasaron como argumento - $result = true; //Asumo que no va a fallar - if (!count($args)) { - $result = false; //Siempre se debe pasar al menos un permiso a buscar + $result = true; //Asumo que no va a fallar + if (!count($args)) { + $result = false; //Siempre se debe pasar al menos un permiso a buscar } else { if (count(array_diff($args, $this->permisos))){ @@ -117,7 +116,7 @@ class SA_Perm extends PEAR { return $result; } - /** + /** * Verifica los permisos de un usuario * * Compara los permisos que tiene un usuario en relacion a los @@ -135,7 +134,7 @@ class SA_Perm extends PEAR { { $args = func_get_args(); //Obtengo los permisos que me pasaron como argumento $result = true; //Asumo que no va a fallar - if (!count($args)) { //Siempre se debe pasar al menos un permiso a buscar + if (!count($args)) { //Siempre se debe pasar al menos un permiso a buscar $result = false; } else { @@ -146,7 +145,35 @@ class SA_Perm extends PEAR { return $result; } - /** + /** + * Verifica los permisos de un usuario + * + * Compara los permisos que tiene un usuario en relacion a los + * pasados como parametro. Devuelve un array con aquellos permisos que + * el usuario tiene. Funciona similar a tieneO solo que devuelve un array. + * Es de parametros variables, y siempre necesita al menos UN parametro + * + * @param array $permisos Permisos que se buscan + * + * @return array Permisos que tiene el usuario pasados por parametro, o 'ERROR' en caso contrario + * + * @access public + */ + function tieneODevol () + { + $args = func_get_args(); //Obtengo los permisos que me pasaron como argumento + $result = array(); + + if (!count($args)) { + $result['0'] = 'ERROR'; //Siempre se debe pasar al menos un permiso a buscar + } + else { + $result = array_intersect($args, $this->permisos); + } + return $result; + } + + /** * Verifica los permisos de un usuario * * Compara un permiso pasado por parametro con los que tiene el usuario @@ -201,13 +228,12 @@ class SA_Perm extends PEAR { $datos = include 'Perm/db_Conf.php'; $dsn = $datos['db_type']."://".$datos['db_user'].":".$datos['db_pass']."@".$datos['db_host']."/".$datos['db_name']; $db = DB::connect($dsn, true); //Quiero que la conexion sea persistente - if (DB::isError($db)) { + if (DB::isError($db)) { //En caso de error en la conexion que la muestre die($db->getMessage()); } return $db; } } -// }}} Fin Clase ?>