public function saveAction() { $this->layout('layout/empty'); if ('POST' == $_SERVER['REQUEST_METHOD']) { $usu_id = $_POST["usu_id"]; $ldap = $_POST["ldap"]; $habilitado = $_POST["habilitado"]; //TODO: ¿Hace falta utilizar los métodos Zend\Http\Request? $usuarioDao = new UsuarioDao($this->getServiceLocator()); try { if (!Validator::required($ldap)) { throw new Exception(); } #Requerido if (!Validator::inSize($ldap, 3, 64)) { throw new Exception(); } #Min: 3 - #Max: 32 // if(!Validator::onlySentence($nombre)) {throw new Exception();} #Oración //TODO: Validación para tipo especial nombre de usuario if (!Validator::onlyBoolean($habilitado)) { throw new Exception(); } #Oración $objUsuario = new Usuario(); $objUsuario->setId($usu_id); $objUsuario->setLDAP($ldap); $objUsuario->setHabilitado($habilitado); $objUsuario->setActivo(1); if (!$usuarioDao->save($objUsuario)) { throw new Exception("Error al guardar el usuario"); } //TODO: guardar log ok $data["objectID"] = $objUsuario->getId(); RestResponse::createResponse(RestResponse::OK, $data, "Usuario guardado correctamente"); } catch (Exception $e) { RestResponse::createResponse(RestResponse::SERVER_ERROR, null, "No se pudo guardar el usuario"); } } }
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); } } }