#require_once 'PEAR.php';
-
-
// +X2C Class 208 :SAMURAI_Perfil
/**
* Clase para el manejo de los perfies.
*/
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(),
}
while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
array_push($rta,$re['id_perfil']);
- }
+ }
$res->free();
return $rta;
}
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.");
}
}