29 lines
940 B
Java
29 lines
940 B
Java
package ru.soune.no_copy.service;
|
|||
|
|
|
||
|
|
import lombok.AllArgsConstructor;
|
||
|
|
import org.springframework.security.crypto.password.PasswordEncoder;
|
||
|
|
import org.springframework.stereotype.Service;
|
||
|
|
import ru.soune.no_copy.dto.ChangePasswordRequest;
|
||
|
|
import ru.soune.no_copy.entity.User;
|
||
|
|
import ru.soune.no_copy.exception.NotValidationPasswordException;
|
||
|
|
import ru.soune.no_copy.repository.UserRepository;
|
||
|
|
|
||
|
|
@Service
|
||
|
|
@AllArgsConstructor
|
||
|
|
public class UserService {
|
||
|
|
|
||
|
|
private final UserRepository userRepository;
|
||
|
|
|
||
|
|
private final PasswordEncoder passwordEncoder;
|
||
|
|
|
||
|
|
public User changePassword(User user, ChangePasswordRequest request) {
|
||
|
|
if (!passwordEncoder.matches(request.getCurrentPassword(), user.getPassword())) {
|
||
|
|
throw new NotValidationPasswordException("Current password is incorrect");
|
||
|
|
}
|
||
|
|
|
||
|
|
user.setPassword(passwordEncoder.encode(request.getNewPassword()));
|
||
|
|
|
||
|
|
return userRepository.save(user);
|
||
|
|
}
|
||
|
|
}
|