X-Git-Url: https://git.llucax.com/mecon/samurai.git/blobdiff_plain/22d1ae1aa6bfee6df20dfa9544e14feaecc9fbf4..4a91ae5069fc847c7f27e84a8449fbbd0742e2b2:/lib/SAMURAI/Perfil.php diff --git a/lib/SAMURAI/Perfil.php b/lib/SAMURAI/Perfil.php index 776774e..87bc1ce 100644 --- a/lib/SAMURAI/Perfil.php +++ b/lib/SAMURAI/Perfil.php @@ -26,8 +26,6 @@ #require_once 'PEAR.php'; - - // +X2C Class 208 :SAMURAI_Perfil /** * Clase para el manejo de los perfies. @@ -312,18 +310,23 @@ class SAMURAI_Perfil { */ function _grabarDb() // ~X2C { - //GRABO EN PERFIL + //Obtengo el id del perfil de ser necesario + $nuevo = 0; if (!$this->getId()) { //No existe el perfil. Lo cargo por primera vez. $idPerfil = $this->_db->nextId('perfil'); $this->setId($idPerfil); - - //GRABO EN PERM_PERFIL_SIST - $res = $this->_guardarPermisos(); - if (PEAR::isError($res)) { - return $res; - } + $nuevo = 1; + } + + //GRABO EN PERM_PERFIL_SIST + $res = $this->_guardarPermisos(); + if (PEAR::isError($res)) { + return $res; + } + //GRABO EN PERFIL + if ($nuevo) { $datos = array ( 'id_perfil' => $idPerfil, 'desc_perfil' => $this->getDescripcion(), @@ -457,7 +460,7 @@ class SAMURAI_Perfil { } while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) { array_push($rta,$re['id_perfil']); - } + } $res->free(); return $rta; } @@ -582,11 +585,13 @@ class SAMURAI_Perfil { while ($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) { $perm[$re['id_perfil']][] = $re['id_permiso'].'##'.$re['observaciones']; } - foreach ($perm as $p) { + foreach ($perm as $key => $p) { $rta1 = array_diff($p, $this->getPermisos()); $rta2 = array_diff($this->getPermisos(), $p); if (!$rta1 && !$rta2) { - return new PEAR_Error("Ya existe un perfil con esos mismos permisos"); + echo 1; + $perf = new SAMURAI_Perfil($this->_db, $key); + return new PEAR_Error("El perfil \"".$perf->getDescripcion()."\" contiene los mismos permisos."); } }