From 1ecc9798cbde319c7c4168c14f613670accb9982 Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Thu, 31 Jul 2003 21:48:08 +0000 Subject: [PATCH] =?utf8?q?-=20Se=20agrega=20un=20m=C3=A9todo=20est=C3=A1ti?= =?utf8?q?co=20a=20Usuario=20para=20asociar=20un=20usuario=20con=20un=20?= =?utf8?q?=20=20perfil=20para=20un=20sistema=20determinado.=20-=20Se=20bor?= =?utf8?q?ran=20archivos=20viejos.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- doc/uml/Samurai.xmi | 44 +++--- lib/SAMURAI/Perm.php | 4 +- lib/SAMURAI/Usuario.php | 12 +- lib/Samurai/Perm.php | 256 ---------------------------------- lib/Samurai/Perm/db_Conf.php | 17 --- lib/Samurai/Perm/sql_Conf.php | 16 --- lib/samurai_lib.php | 160 --------------------- lib/samurai_lib_db_conf.inc | 9 -- lib/samurai_lib_sql.inc | 12 -- 9 files changed, 35 insertions(+), 495 deletions(-) delete mode 100644 lib/Samurai/Perm.php delete mode 100644 lib/Samurai/Perm/db_Conf.php delete mode 100644 lib/Samurai/Perm/sql_Conf.php delete mode 100644 lib/samurai_lib.php delete mode 100644 lib/samurai_lib_db_conf.inc delete mode 100644 lib/samurai_lib_sql.inc diff --git a/doc/uml/Samurai.xmi b/doc/uml/Samurai.xmi index 5240596..676ad83 100644 --- a/doc/uml/Samurai.xmi +++ b/doc/uml/Samurai.xmi @@ -9,7 +9,7 @@ - + @@ -37,6 +37,13 @@ + + + + + + + - - - - - - @@ -251,11 +252,17 @@ Si no se pasa ning + + + + + + - + - + @@ -315,26 +322,26 @@ x2c:set" name="sistema" static="0" scope="202" /> - + - + - + - + - + - + @@ -357,7 +364,7 @@ x2c:set" name="sistema" static="0" scope="202" /> - + @@ -368,7 +375,7 @@ x2c:set" name="sistema" static="0" scope="202" /> - + @@ -456,13 +463,14 @@ x2c:set" name="sistema" static="0" scope="202" /> - + + diff --git a/lib/SAMURAI/Perm.php b/lib/SAMURAI/Perm.php index de949de..ba8ccf9 100644 --- a/lib/SAMURAI/Perm.php +++ b/lib/SAMURAI/Perm.php @@ -92,7 +92,9 @@ class SAMURAI_Perm { // +X2C Operation 381 /** - * Verifica si tiene un permiso. Se puede pasar par?etros variables, por ejemplo: $perm->tiene(1, 4, 9, 12); Si tiene algn permiso devuelve true. Si no se pasa ningn p?ametro ($perm->tiene()), devuelve true si tiene un permiso (al menos uno) en el sistema actual. + * Verifica si tiene un permiso. +Se puede pasar par?etros variables con un identificador de permiso o un array, por ejemplo: $perm->tiene(1, 4, array(2, 5, 67), 12); Si tiene algn permiso devuelve true. +Si no se pasa ningn p?ametro ($perm->tiene()), devuelve true si tiene un permiso (al menos uno) en el sistema actual. * * @return bool * @access public diff --git a/lib/SAMURAI/Usuario.php b/lib/SAMURAI/Usuario.php index 859f62c..96b7847 100644 --- a/lib/SAMURAI/Usuario.php +++ b/lib/SAMURAI/Usuario.php @@ -433,15 +433,15 @@ class SAMURAI_Usuario { } // -X2C - // +X2C Operation 377 + // +X2C Operation 386 /** * Metodo estatico que permite asociar un usuario con un perfil en un sistema determinado. * * @param DB &$db Conexion a la base de datos - * @param string $login Login del usuario - * @param int $id_perfil Identificador del perfil a asociar - * @param int $id_sistema Identificador del sistema en el cual se quiere realizar la asociacion - * @param string $responsable Login del usuario que esta realizando los cambios + * @param string $login Login del usuario que se quiere asociar + * @param int $id_perfil Identificador del perfil que se quiere asociar + * @param int $id_sistema identificador del sistema en el que se esta haciendo la asociacion + * @param int $responsable Login del usuario que esta haciendo los cambios * * @return mixed * @access public @@ -476,4 +476,4 @@ class SAMURAI_Usuario { // -X2C } // -X2C Class :SAMURAI_Usuario -?> +?> \ No newline at end of file diff --git a/lib/Samurai/Perm.php b/lib/Samurai/Perm.php deleted file mode 100644 index 9800552..0000000 --- a/lib/Samurai/Perm.php +++ /dev/null @@ -1,256 +0,0 @@ - | -// +--------------------------------------------------------------------+ -// -// $Id$ -// -// $URL$ -// $Rev$ -// $Date$ -// $Author$ -// - -require_once 'PEAR.php'; -require_once 'DB.php'; - -/** - * Manejo de permisos. - * - * Libreria para le manejo de los permisos. Basada en la lase HE_Perm de - * Leandro Lucarella - * Las funciones de acceso publico se llaman igual que en HE_Perm - * Archivos Requeridos - * Perm/sql_Conf.php -> Consultas SQL utilizadas por el objeto - * Perm/db_Conf.php -> Datos de la conexion con la base de datos - * - * @package Samurai - * @version $Rev$ - * @author $Author$ - */ - -class SA_Perm extends PEAR { - - /** - * Login del usuario - * - * @var string - */ - var $login; - - /** - * Permisos del usuario en el sistema. - * - * @var array - */ - var $permisos; - - - /** - * Conexion a la Base de Datos . - * - * @var object DB - */ - var $DB; - - /** - * Identificacion del sistema - * - * @var int - */ - var $sistema; - - /** - * Constructor. - * - * El login del usuario lo toma del udat - * - * @param int $sistema Identificacion del sistema (id_sistema) - * @param string $login Identificacion del usuario (udat{user} - * - * @access public - */ - function SA_Perm($sistema, $login) - { - $this->PEAR(); - $this->sistema = $sistema; - $this->login = $login; - $this->DB = $this->_conectarDB(); - $this->permisos = $this->_obtenerPermisos(); - } - - /** - * Verifica los permisos de un usuario - * - * Compara los permisos que tiene un usuario en relacion a los - * pasados como parametro. Devuelve true si cumple con todos los - * permisos, en caso contrario devuelve false. Es de parametros - * variables, y siempre necesita al menos UN parametro - * - * @param array $permisos Permisos que se buscan - * - * @return bool - * - * @access public - */ - 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 - } - else { - if (count(array_diff($args, $this->permisos))){ - $result = false; - } - } - return $result; - } - - /** - * Verifica los permisos de un usuario - * - * Compara los permisos que tiene un usuario en relacion a los - * pasados como parametro. Devuelve true si cumple con alguno de los - * permisos, en caso contrario devuelve false. Es de parametros - * variables, y siempre necesita al menos UN parametro - * - * @param array $permisos Permisos que se buscan - * - * @return bool - * - * @access public - */ - function tieneO() - { - $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 - $result = false; - } - else { - if (count(array_diff($args, $this->permisos)) >= count($args)) { - $result = false; - } - } - 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 - * en la base. Devuelve true si tiene el permiso, false en otro caso - * - * @param int permiso buscado - * - * @return bool - * - * @access public - */ - function tieneUn($permiso) - { - $result = true; //Asumo que no va a fallar - if (!in_array($permiso, $this->permisos)) { //Si no esta en el array, no tiene el permiso - $result = false; - } - return $result; - } - - /** - * Devuelve los permisos de un usuario - * - * Devuelve un array con los permisos que posee el usuario en el sistema - * que se paso como parametro al constructor. Devuelve un array. - * - * @return array - * - * @access public - */ - function listaPermisos() - { - return $this->permisos; - } - - - -//HASTA ACA FUNCIONES PUBLICAS -//DESDE ACA FUNCIONES PRIVADAS - - /** - * Obtiene los permisos de un usuario de la base - * - * @return array permisos del usuario - * - * @access private - */ - function _obtenerPermisos() - { - $consultas = include 'Perm/sql_Conf.php'; - $sql = $consultas['obtener_p_p_completo']; - $sql_array = array ('0' => $this->sistema, '1' => $this->login); - $result = $this->DB->getCol($sql,0, $sql_array); - if (DB::isError($this->permisos)) { //En caso de error en la consulta, que lo muestre - die ($this->permisos->getMessage()); - } - return $result; - } - - /** - * Conecta el objeto a la base de datos - * - * @return db conexion con la base - * - * @access private - */ - function _conectarDB() - { - $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)) { //En caso de error en la conexion que la muestre - die($db->getMessage()); - } - return $db; - } - -} - -?> diff --git a/lib/Samurai/Perm/db_Conf.php b/lib/Samurai/Perm/db_Conf.php deleted file mode 100644 index 10cbf6f..0000000 --- a/lib/Samurai/Perm/db_Conf.php +++ /dev/null @@ -1,17 +0,0 @@ - 'mysql' , - 'db_user' => 'intranet' , - 'db_pass' => 'intranet' , - 'db_host' => 'localhost', - 'db_name' => 'samurai' - ) -?> diff --git a/lib/Samurai/Perm/sql_Conf.php b/lib/Samurai/Perm/sql_Conf.php deleted file mode 100644 index dac5675..0000000 --- a/lib/Samurai/Perm/sql_Conf.php +++ /dev/null @@ -1,16 +0,0 @@ - 'SELECT DISTINCT pps.id_permiso AS id_permiso - FROM perfil_sist_usuario AS psu , perm_perfil_sist AS pps - WHERE psu.id_sistema = ? AND login = ? AND psu.id_perfil = pps.id_perfil' - ); -?> diff --git a/lib/samurai_lib.php b/lib/samurai_lib.php deleted file mode 100644 index cde41ed..0000000 --- a/lib/samurai_lib.php +++ /dev/null @@ -1,160 +0,0 @@ - | -// +--------------------------------------------------------------------+ -// -// $Id$ -// -// $URL$ -// $Rev$ -// $Date$ -// $Author$ -// - -require_once 'PEAR.php'; -require_once 'DB.php'; - -/** - * Manejo de permisos. - * - * Libreria para le manejo de los permisos. Basada en la lase HE_Perm de - * Leandro Lucarella - * - * @package SA_Perm - * @version $Rev$ - * @author $Author$ - */ -class SA_Perm extends PEAR { - - /** - * Identificacion del usuario. - * - * @var int(11) nrodoc - */ - var $nrodoc; - - /** - * Login del usuario - * - * @var string login - */ - var $login; - - /** - * Consultas SQL. - * - * @var array SQL - */ - var $SQL; - - - /** - * Conexion a la Base de Datos . - * - * @var $DB - */ - var $DB; - - /** - * Identificacion del sistema - * - * @var $sistema - */ - var $sistema - - /** - * Constructor. - * - * @param int $nrodoc Numero de documento del usuario. - * @param string $login Login del usuario de la forma @ - * @param int $sistema Identificacion del sistema (id_sistema) - * - * @return bool true si esta nrodoc, false en caso contrario - * - * @access public - */ - function SA_Perm($nrodoc = null, $login = null, $sistema = null) - { - $creacion = false; //Asumo que va a fallar - if (isset($nrodoc) && isset($sistema) && isset($login)) { - $this->nrodoc = $nrodoc; - $this->sistema = $sistema; - $this->login = $login; - $this->SQL = include 'samurai_lib_sql.inc'; - $this->DB = $this->_SA_conectarDB(); - $creacion = true; - } - return $creacion; - } - - /** - * Verifica los permisos de un usuario - * - * Compara los permisos que tiene un usuario en relacion a los - * pasados como parametro. Devuelve true si cumple con todos los - * permisos, en caso contrario devuelve false - * - * @param array permisos - * - * @return bool - * - * @access public - */ - function SA_verifPerm () - { - $args = func_get_args(); - $result = true; //Asumo que no va a fallar - - if (!count($args)) { - $result = false; - } - else { - //Obtengo los perfiles de un usuario {{{ - $sql = $this->SQL['obtener_perfil_usuario']; - $re = $this->DB->prepare($sql); - $re = $this->DB->execute($this->login, $this->sistema); - // }}} - - // Por cada perfil, busco sus permisos y los comparo con los pasados - // por el argumento {{{ - while ($res = $re->fetchRow(DB_FETCHMODE_ASSOC)) { - $sql = $this->SQL['obtener_permisos_perfil']; - $re = $this->DB->prepare($sql); - $re = $this->DB->execute($res['id_perfil'], $this->sistema); - //TODO: Verificar que este tomando bien los datos de la base - } - /// }}} - } - return $result; - } - - /** - * Conecta el objeto a la base de datos, segun lo especificado - * en samurai_lib_dc_conf.inc. - * - * @return db conexion hecha - * - * @access private - */ - function _SA_conectarDB () - { - $datos = include 'samurai_lib_db_conf.inc'; - $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)) { - die($db->getMessage()); - } - return $db; - } - - //Fin Clase -} -?> diff --git a/lib/samurai_lib_db_conf.inc b/lib/samurai_lib_db_conf.inc deleted file mode 100644 index 010be67..0000000 --- a/lib/samurai_lib_db_conf.inc +++ /dev/null @@ -1,9 +0,0 @@ - 'mysql' , - 'db_user' => 'intranet' , - 'db_pass' => 'intranet' , - 'db_host' => 'localhost', - 'db_name' => 'samurai' - ) -?> diff --git a/lib/samurai_lib_sql.inc b/lib/samurai_lib_sql.inc deleted file mode 100644 index 3057dea..0000000 --- a/lib/samurai_lib_sql.inc +++ /dev/null @@ -1,12 +0,0 @@ - 'SELECT psu.login AS login, psu.id_perfil AS id_perfil, psu.id_sistema AS id_sistema - FROM perfil_sist_usuario AS psu - WHERE login = ? AND id_sistema = ? - ORDER BY id_perfil DESC', - 'obtener_permisos_perfil' => 'SELECT e.desc_permiso AS desc_permiso - FROM perm_perfil_sist AS pps, permiso AS e - WHERE pps.id_perfil = ? AND pps.id_sistema = ? AND pps.id_permiso = e.id_permiso - ORDER BY e.id_permiso DESC' - ); -?> -- 2.43.0