Ejemplo n.º 1
0
 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");
         }
     }
 }
Ejemplo n.º 2
0
 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);
         }
     }
 }