public function saveAction() { $this->layout('layout/empty'); if ('POST' == $_SERVER['REQUEST_METHOD']) { $gru_id = $_POST["gru_id"]; $nombre = $_POST["nombre"]; $descripcion = $_POST["descripcion"]; $habilitado = $_POST["habilitado"]; $id_permisos = array(); foreach ($_POST as $key => $value) { $substring = substr($key, 0, 10); if ("id_gru_pe_" == $substring) { $id_permisos[$value] = $value; } } $id_usuarios = array(); foreach ($_POST as $key => $value) { $substring = substr($key, 0, 11); if ("id_gru_usu_" == $substring) { $id_usuarios[$value] = $value; } } //TODO: Crear las constantes para los Eventos de los permisos # eve_id: 2 = Crear Grupo; 3 = Modificar Grupo if ((int) $gru_id > 0) { $message = "Grupo modificado correctamente"; $eve_id = 3; } else { $message = "Grupo creado correctamente"; $eve_id = 2; } $grupoDao = new GrupoDao($this->getServiceLocator()); $grupoPermisoDAO = new GrupoPermisoDao($this->getServiceLocator()); $grupoUsuarioDAO = new GrupoUsuarioDao($this->getServiceLocator()); try { if (!Validator::required($nombre)) { throw new Exception(); } #Requerido if (!Validator::inSize($nombre, 3, 32)) { throw new Exception(); } #Min: 3 - #Max: 32 if (!Validator::onlySentence($nombre)) { throw new Exception(); } #Oración if (!Validator::inSizeNullable($descripcion, 3, 500)) { throw new Exception(); } #Min: 3 - #Max: 500 if (!Validator::onlySentence($descripcion)) { throw new Exception(); } #Oración if (!Validator::onlyBoolean($habilitado)) { throw new Exception(); } #Oración $objGrupo = new Grupo(); $objGrupo->setId($gru_id); $objGrupo->setNombre($nombre); $objGrupo->setDescripcion($descripcion); $objGrupo->setHabilitado($habilitado); $objGrupo->setActivo(1); //TODO: Da error cuando quiero guardar y no le hago una modificación a descripción if ($grupoDao->save($objGrupo)) { #Success $code = RestResponse::OK; $data["objectID"] = $objGrupo->getId(); } else { #Fail $code = RestResponse::SERVER_ERROR; $message = "Error a guardar Grupo"; ExpLogSeguridad::save($this->getServiceLocator(), $eve_id, $code, $message, $objGrupo->getJSON(), null); throw new Exception($message); //TODO: El parámetro de Usuario debe ser completado con el usuario que inicia sesión } $grupoPermisoDAO->deleteByGrupo($objGrupo->getId()); foreach ($id_permisos as $id_permiso) { $objGrupoPermiso = new GrupoPermiso(); $objGrupoPermiso->getPermiso()->setId($id_permiso); $objGrupoPermiso->getGrupo()->setId($objGrupo->getId()); if (!$grupoPermisoDAO->save($objGrupoPermiso)) { $code = RestResponse::SERVER_ERROR; $message = "Error a guardar Grupo"; ExpLogSeguridad::save($this->getServiceLocator(), $eve_id, $code, $message, $objGrupo->getJSON(), null); throw new Exception($message); } } ExpLogSeguridad::save($this->getServiceLocator(), $eve_id, $code, $message, $objGrupo->getJSON(), null); //TODO: El parámetro de Usuario debe ser completado con el usuario que inicia sesión RestResponse::createResponse($code, $data, $message); } catch (Exception $e) { $code = RestResponse::SERVER_ERROR; $message = "No se pudieron guardar los cambios en el Grupo. " . $e->getMessage(); ExpLogSeguridad::save($this->getServiceLocator(), $eve_id, $code, $message, null, null); RestResponse::createResponse($code, null, $message); } } }
public static function init($row, $id = null) { $objGrupoPermiso = new GrupoPermiso(); try { if (is_null($id)) { $objGrupoPermiso->setId($row->gru_pe_id); } else { $objGrupoPermiso->setId($row->{$id}); throw new \Exception(); } $objGrupoPermiso->getPermiso()->setId($row->pe_id); $objGrupoPermiso->getPermiso()->setActivo($row->pe_activo); $objGrupoPermiso->getPermiso()->setHabilitado($row->pe_habilitado); $objGrupoPermiso->getPermiso()->setPaSisId($row->pe_pa_sis_id); $objGrupoPermiso->getPermiso()->setNombre($row->pe_nombre); $objGrupoPermiso->getGrupo()->setId($row->gru_id); $objGrupoPermiso->getGrupo()->setActivo($row->gru_activo); $objGrupoPermiso->getGrupo()->setHabilitado($row->gru_habilitado); $objGrupoPermiso->getGrupo()->setNombre($row->gru_nombre); $objGrupoPermiso->getGrupo()->setDescripcion($row->gru_descripcion); $objGrupoPermiso->getGrupo()->setFechaAlta($row->gru_fecha_alta); $objGrupoPermiso->getGrupo()->setFechaMod($row->gru_fecha_mod); $objGrupoPermiso->getGrupo()->setFechaBaja($row->gru_fecha_baja); $objGrupoPermiso->isFromDb(true); } catch (\Exception $e) { return $objGrupoPermiso; } return $objGrupoPermiso; }