/
ilyaBu
/
WebSpringJava
Обзор
Документация
Войти
/
ilyaBu
/
WebSpringJava
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main/java/ru/gb/spring/diplomawebjavaspringgb/service/impl/UserServiceImpl.java
83 строки
3 KB
IliaBu
Update code
14 июл 2024, 15:26
14 июл 2024, 15:26
3414678
Код
Авторство
О чём код?
package ru.gb.spring.diplomawebjavaspringgb.service.impl; import ru.gb.spring.diplomawebjavaspringgb.model.Role; import ru.gb.spring.diplomawebjavaspringgb.model.User; import ru.gb.spring.diplomawebjavaspringgb.repository.RoleRepository; import ru.gb.spring.diplomawebjavaspringgb.repository.UserRepository; import ru.gb.spring.diplomawebjavaspringgb.service.UserService; import lombok.AllArgsConstructor; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import java.util.List; import java.util.Optional; /** * Сервис пользователей. */ @AllArgsConstructor @Service public class UserServiceImpl implements UserService { private final UserRepository userRepository; private final RoleRepository roleRepository; private final PasswordEncoder passwordEncoder; @Override public String getCurrentUser() { return SecurityContextHolder.getContext().getAuthentication().getName(); } @Override public String getCurrentUserNoSymbol() { User user = userRepository.findByEmail(SecurityContextHolder.getContext().getAuthentication().getName()); if (user != null) { String str = user.getFirstName() + "_" + user.getLastName(); return (SecurityContextHolder.getContext().getAuthentication().getName() + "_" + str).replaceAll("[\\d+]|[\\W+]", "_"); } return SecurityContextHolder.getContext().getAuthentication().getName().replaceAll("[\\d+]|[\\W+]", "_"); } @Override public List<User> findAllUsers() { return userRepository.findAll(); } @Override public List<Role> findAllRoles() { return roleRepository.findAll(); } @Override public void saveUser(User user) { user.setPassword(passwordEncoder.encode(user.getPassword())); Role role = roleRepository.findByName("ROLE_USER"); user.addRole(role); userRepository.save(user); } @Override public void saveAdminUser(User user) { user.setPassword(passwordEncoder.encode(user.getPassword())); userRepository.save(user); } @Override public User findByEmail(String email) { return userRepository.findByEmail(email); } @Override public void deleteUser(Integer id) { if (userRepository.existsById(id)) userRepository.deleteById(id); } @Override public Optional<User> findByIdUser(Integer id) { return userRepository.findById(id); } }