Class UserService

java.lang.Object
springboot.bg.harisauto.user.service.UserService
All Implemented Interfaces:
org.springframework.security.core.userdetails.UserDetailsService

@Service public class UserService extends Object implements org.springframework.security.core.userdetails.UserDetailsService
UserService.java - Service class for managing user-related operations.
Author:
Kristian Popov
  • Constructor Details

    • UserService

      @Autowired public UserService(UserRepository userRepository, org.springframework.security.crypto.password.PasswordEncoder passwordEncoder, org.springframework.context.ApplicationEventPublisher eventPublisher)
      Constructor.
  • Method Details

    • register

      @Transactional public void register(RegisterRequest request)
      Registers a new user (Public registration).
      Parameters:
      request - The registration request.
    • registerNewUser

      @Transactional public void registerNewUser(RegisterNewUserRequest request)
      Register new user from admin page.
      Parameters:
      request - The registration request.
    • getById

      public User getById(UUID id)
      Gets a user by its id.
      Parameters:
      id - The user id.
      Returns:
      The user.
    • getAllUsers

      public List<User> getAllUsers()
      Gets all users.
      Returns:
      The list of users.
    • updateUserDetails

      public void updateUserDetails(User user, ChangeProfileInfoRequest request)
      Updates user details (Self-update profile).
      Parameters:
      user - The user.
      request - The request containing the new details.
    • changeUserPassword

      public void changeUserPassword(User user, ChangeUserPasswordRequest request)
      Changes the user's password.
      Parameters:
      user - The user.
      request - The request containing the current and new passwords.
    • updateUser

      public void updateUser(UpdateUserRequest request)
      Updates user details.
      Parameters:
      request - The request containing the new details.
    • deleteUserById

      public void deleteUserById(UUID userId)
      Deletes a user by its id.
      Parameters:
      userId - The user id.
    • loadUserByUsername

      public org.springframework.security.core.userdetails.UserDetails loadUserByUsername(String email) throws org.springframework.security.core.userdetails.UsernameNotFoundException
      Loads user details by email.
      Specified by:
      loadUserByUsername in interface org.springframework.security.core.userdetails.UserDetailsService
      Parameters:
      email - The user email.
      Returns:
      The user details.
      Throws:
      org.springframework.security.core.userdetails.UsernameNotFoundException - If the user is not found.
    • changeAdminEmail

      @Transactional public void changeAdminEmail(User user, AdminChangeEmailRequest request)
      Changes the admin's email.
      Parameters:
      user - The admin user.
      request - The request containing the new email.
    • changeAdminPassword

      @Transactional public void changeAdminPassword(User user, AdminChangePasswordRequest request)
      Changes the admin's password.
      Parameters:
      user - The admin user.
      request - The request containing the current and new passwords.