X-Git-Url: https://git.llucax.com/mecon/samurai.git/blobdiff_plain/2a767add127bcb217dcc2ce2ca242f703b5022a0..38d0d26cbb40a662e0676e14d848ab76a976aeeb:/lib/SAMURAI/Perfil.php?ds=sidebyside diff --git a/lib/SAMURAI/Perfil.php b/lib/SAMURAI/Perfil.php index 87bc1ce..acbce4e 100644 --- a/lib/SAMURAI/Perfil.php +++ b/lib/SAMURAI/Perfil.php @@ -415,6 +415,12 @@ class SAMURAI_Perfil { if (PEAR::isError($res)) { return $res; } + + //VERIFICO QUE NO HAYA UN PERFIL CON LOS MISMOS PERMISOS YA ASIGNADO AL SISTEMA + $res = $this->_verifPermisos(); + if (PEAR::isError($res)) { + return $res; + } //Modifico la tabla perm_perfil_sist $res = $this->_borrarPermisos(); if (PEAR::isError($res)) { @@ -450,6 +456,7 @@ class SAMURAI_Perfil { //Reemplazo el filtro por ##?## $consulta = ereg_replace ('##FILTRO##', $filtro, $tmp2); } + $consulta.= $sql['obtener_id_perfiles4']; $dbh = $db->prepare($consulta); if ($id_sistema) { $tmp[] = $id_sistema; @@ -575,24 +582,11 @@ class SAMURAI_Perfil { */ function _guardarPermisos() // ~X2C { - //VERIFICO QUE NO HAYA UN PERFIL CON LOS MISMOS PERMISOS YA ASIGNADO AL SISTEMA $sql = parse_ini_file(dirname(__FILE__) . '/Perfil/consultas.ini', true); - $tmp = $sql['verif_perm_perfil_sist']; - $dbh = $this->_db->prepare($tmp); - $tmp = array ($_SESSION['samurai']['id_sistema']); - $res = $this->_db->execute($dbh,$tmp); - $perm = array(); - while ($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) { - $perm[$re['id_perfil']][] = $re['id_permiso'].'##'.$re['observaciones']; - } - foreach ($perm as $key => $p) { - $rta1 = array_diff($p, $this->getPermisos()); - $rta2 = array_diff($this->getPermisos(), $p); - if (!$rta1 && !$rta2) { - echo 1; - $perf = new SAMURAI_Perfil($this->_db, $key); - return new PEAR_Error("El perfil \"".$perf->getDescripcion()."\" contiene los mismos permisos."); - } + //VERIFICO QUE NO HAYA UN PERFIL CON LOS MISMOS PERMISOS YA ASIGNADO AL SISTEMA + $res = $this->_verifPermisos(); + if (PEAR::isError($res)) { + return $res; } //GRABO EN PERM_PERFIL_SIST @@ -626,6 +620,39 @@ class SAMURAI_Perfil { } // -X2C + // +X2C Operation 376 + /** + * Verifica si se puede insertar + * + * @return mixed + * @access protected + */ + function _verifPermisos() // ~X2C + { + //VERIFICO QUE NO HAYA UN PERFIL CON LOS MISMOS PERMISOS YA ASIGNADO AL SISTEMA + $sql = parse_ini_file(dirname(__FILE__) . '/Perfil/consultas.ini', true); + $tmp = $sql['verif_perm_perfil_sist']; + $dbh = $this->_db->prepare($tmp); + $tmp = array ($_SESSION['samurai']['id_sistema']); + $res = $this->_db->execute($dbh,$tmp); + $perm = array(); + while ($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) { + $perm[$re['id_perfil']][] = $re['id_permiso'].'##'.$re['observaciones']; + } + foreach ($perm as $key => $p) { + $rta1 = array_diff($p, $this->getPermisos()); + $rta2 = array_diff($this->getPermisos(), $p); + if (!$rta1 && !$rta2) { + $perf = new SAMURAI_Perfil($this->_db, $key); + if ($perf->getDescripcion() != $this->getDescripcion()) { + return new PEAR_Error("El perfil \"".$perf->getDescripcion()."\" contiene los mismos permisos."); + } + } + } + return true; + } + // -X2C + } // -X2C Class :SAMURAI_Perfil -?> +?> \ No newline at end of file