Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package cl.gl.sgv.controller;
- import cl.gl.sgv.database.model.Usuario;
- import cl.gl.sgv.database.repository.UsuarioRepository;
- import cl.gl.sgv.payload.Payload;
- import cl.gl.sgv.request.changePasswordRequest;
- import cl.gl.sgv.route.Request;
- import cl.gl.sgv.route.Route;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.dao.DataAccessException;
- import org.springframework.http.ResponseEntity;
- import org.springframework.security.crypto.bcrypt.BCrypt;
- import org.springframework.web.bind.annotation.*;
- import javax.persistence.EntityManager;
- import javax.persistence.PersistenceContext;
- import javax.transaction.Transactional;
- @RestController
- public class UserController {
- @PersistenceContext
- private EntityManager em;
- @Autowired
- AuthenticationController auth;
- @Autowired
- private UsuarioRepository usuarioRepository;
- @Route(pattern = "/api/changePassword", request = @Request(method = RequestMethod.POST, name = "Cambiar Contraseña Usuario"))
- @Transactional
- @CrossOrigin(origins = "http://localhost:8000", allowCredentials = "true")
- @PostMapping("/api/changePassword")
- public ResponseEntity<Payload<?>> changeUserPassword(@RequestBody changePasswordRequest request) {
- // id Usuario
- int userId = request.getUserId();
- // contraseña antigua
- String oldPassword = request.getOldPassWord();
- // contraseña nueva
- String newPassword = request.getNewPassword();
- Usuario usuario = em.find(Usuario.class, userId);
- String currentPassword = usuario.getPassword();
- if (BCrypt.checkpw(oldPassword, currentPassword)) {
- try {
- usuario.setPassword(BCrypt.hashpw(newPassword, BCrypt.gensalt()));
- usuarioRepository.save(usuario);
- } catch (DataAccessException ex) {
- return ResponseEntity.badRequest().body(Payload.of("La contraseña Ingresada no es correcta"))
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement