X-Git-Url: https://git.llucax.com/mecon/samurai.git/blobdiff_plain/0b3baffebc472d0116c7259abb3d64abf64674ae..4a91ae5069fc847c7f27e84a8449fbbd0742e2b2:/lib/SAMURAI/Perfil.php?ds=inline diff --git a/lib/SAMURAI/Perfil.php b/lib/SAMURAI/Perfil.php index a74a16f..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. @@ -313,10 +311,12 @@ class SAMURAI_Perfil { function _grabarDb() // ~X2C { //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); + $nuevo = 1; } //GRABO EN PERM_PERFIL_SIST @@ -326,7 +326,7 @@ class SAMURAI_Perfil { } //GRABO EN PERFIL - if (!$this->getId()) { + if ($nuevo) { $datos = array ( 'id_perfil' => $idPerfil, 'desc_perfil' => $this->getDescripcion(), @@ -460,7 +460,7 @@ class SAMURAI_Perfil { } while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) { array_push($rta,$re['id_perfil']); - } + } $res->free(); return $rta; } @@ -585,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."); } }