2 // vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
3 // +--------------------------------------------------------------------+
4 // | SAMURAI - Samurai_Lib |
5 // +--------------------------------------------------------------------+
6 // | Sistema de Administracion y Matenimiento de Usuarios Relativo A |
8 // | Ministerio de EconomÃa |
9 // +--------------------------------------------------------------------+
10 // | Creado: lun mar 10 ART 2003 |
11 // | Autor: Martin Marrese <mmarre@mecon.gov.ar> |
12 // +--------------------------------------------------------------------+
22 require_once 'PEAR.php';
23 require_once 'DB.php';
28 * Libreria para le manejo de los permisos. Basada en la lase HE_Perm de
29 * Leandro Lucarella <llucar@mecon.gov.ar>
35 class SA_Perm extends PEAR {
38 * Identificacion del usuario.
60 * Conexion a la Base de Datos .
67 * Identificacion del sistema
76 * @param int $nrodoc Numero de documento del usuario.
77 * @param string $login Login del usuario de la forma <usuario>@<organismo>
78 * @param int $sistema Identificacion del sistema (id_sistema)
80 * @return bool true si esta nrodoc, false en caso contrario
84 function SA_Perm($nrodoc = null, $login = null, $sistema = null)
86 $creacion = false; //Asumo que va a fallar
87 if (isset($nrodoc) && isset($sistema) && isset($login)) {
88 $this->nrodoc = $nrodoc;
89 $this->sistema = $sistema;
90 $this->login = $login;
91 $this->SQL = include 'samurai_lib_sql.inc';
92 $this->DB = $this->_SA_conectarDB();
99 * Verifica los permisos de un usuario
101 * Compara los permisos que tiene un usuario en relacion a los
102 * pasados como parametro. Devuelve true si cumple con todos los
103 * permisos, en caso contrario devuelve false
105 * @param array permisos
111 function SA_verifPerm ()
113 $args = func_get_args();
114 $result = true; //Asumo que no va a fallar
120 //Obtengo los perfiles de un usuario {{{
121 $sql = $this->SQL['obtener_perfil_usuario'];
122 $re = $this->DB->prepare($sql);
123 $re = $this->DB->execute($this->login, $this->sistema);
126 // Por cada perfil, busco sus permisos y los comparo con los pasados
127 // por el argumento {{{
128 while ($res = $re->fetchRow(DB_FETCHMODE_ASSOC)) {
129 $sql = $this->SQL['obtener_permisos_perfil'];
130 $re = $this->DB->prepare($sql);
131 $re = $this->DB->execute($res['id_perfil'], $this->sistema);
132 //TODO: Verificar que este tomando bien los datos de la base
140 * Conecta el objeto a la base de datos, segun lo especificado
141 * en samurai_lib_dc_conf.inc.
143 * @return db conexion hecha
147 function _SA_conectarDB ()
149 $datos = include 'samurai_lib_db_conf.inc';
150 $dsn = $datos['db_type']."://".$datos['db_user'].":".$datos['db_pass']."@".$datos['db_host']."/".$datos['db_name'];
151 $db = DB::connect($dsn, true); //Quiero que la conexion sea persistente
152 if (DB::isError($db)) {
153 die($db->getMessage());