Package africa.absa.inception.security
Interface UserRepository
-
- All Superinterfaces:
org.springframework.data.repository.CrudRepository<User,UUID>,org.springframework.data.jpa.repository.JpaRepository<User,UUID>,org.springframework.data.repository.PagingAndSortingRepository<User,UUID>,org.springframework.data.repository.query.QueryByExampleExecutor<User>,org.springframework.data.repository.Repository<User,UUID>
public interface UserRepository extends org.springframework.data.jpa.repository.JpaRepository<User,UUID>, org.springframework.data.repository.query.QueryByExampleExecutor<User>
The UserRepository interface declares the repository for the User domain type.- Author:
- Marcus Portmann
-
-
Method Summary
-
Methods inherited from interface org.springframework.data.repository.CrudRepository
count, delete, deleteAll, deleteAll, deleteAllById, existsById, findById, save
-
Methods inherited from interface org.springframework.data.jpa.repository.JpaRepository
deleteAllByIdInBatch, deleteAllInBatch, deleteAllInBatch, deleteInBatch, findAll, findAll, findAll, findAll, findAllById, flush, getById, getOne, saveAll, saveAllAndFlush, saveAndFlush
-
-
-
-
Method Detail
-
changePassword
@Modifying @Query("update User u set u.password = :password, u.passwordAttempts = :passwordAttempts, u.passwordExpiry = :passwordExpiry where u.id = :userId") void changePassword(@Param("userId") UUID userId, @Param("password") String password, @Param("passwordAttempts") int passwordAttempts, @Param("passwordExpiry") Optional<LocalDateTime> passwordExpiry)
-
countByUserDirectoryId
long countByUserDirectoryId(UUID userDirectoryId)
-
countFiltered
@Query("select count(u.id) from User u where ((lower(u.username) like lower(:filter)) or (lower(u.name) like lower(:filter))) and u.userDirectoryId = :userDirectoryId") long countFiltered(@Param("userDirectoryId") UUID userDirectoryId, @Param("filter") String filter)
-
deleteById
@Modifying @Query("delete from User u where u.id = :userId") void deleteById(@Param("userId") UUID userId)
-
existsByUserDirectoryIdAndUsernameIgnoreCase
boolean existsByUserDirectoryIdAndUsernameIgnoreCase(UUID userDirectoryId, String username)
-
findByUserDirectoryId
org.springframework.data.domain.Page<User> findByUserDirectoryId(UUID userDirectoryId, org.springframework.data.domain.Pageable pageable)
-
findByUserDirectoryIdAndUsernameIgnoreCase
Optional<User> findByUserDirectoryIdAndUsernameIgnoreCase(UUID userDirectoryId, String username)
-
findFiltered
@Query("select u from User u where ((lower(u.username) like lower(:filter)) or (lower(u.name) like lower(:filter))) and u.userDirectoryId = :userDirectoryId") org.springframework.data.domain.Page<User> findFiltered(@Param("userDirectoryId") UUID userDirectoryId, @Param("filter") String filter, org.springframework.data.domain.Pageable pageable)
-
getFunctionCodesByUserId
@Query("select f.code from User u join u.groups as g join g.roles as r join r.functions as f where u.id = :userId") List<String> getFunctionCodesByUserId(@Param("userId") UUID userId)
-
getGroupNamesByUserId
@Query("select g.name from User u join u.groups as g where u.id = :userId") List<String> getGroupNamesByUserId(@Param("userId") UUID userId)
-
getGroupsByUserId
@Query("select g from User u join u.groups as g where u.id = :userId") List<Group> getGroupsByUserId(@Param("userId") UUID userId)
-
getIdByUserDirectoryIdAndUsernameIgnoreCase
@Query("select u.id from User u where u.userDirectoryId = :userDirectoryId and lower(u.username) like lower(:username)") Optional<UUID> getIdByUserDirectoryIdAndUsernameIgnoreCase(@Param("userDirectoryId") UUID userDirectoryId, @Param("username") String username)
-
getNameByUserDirectoryIdAndUsernameIgnoreCase
@Query("select u.name from User u where ((lower(u.username) = lower(:username)) and u.userDirectoryId = :userDirectoryId)") Optional<String> getNameByUserDirectoryIdAndUsernameIgnoreCase(UUID userDirectoryId, String username)
-
getPasswordHistory
@Query(value="select password from security.users_password_history where user_id = :userId and changed > :after", nativeQuery=true) List<String> getPasswordHistory(@Param("userId") UUID userId, @Param("after") LocalDateTime after)
-
getRoleCodesByUserId
@Query("select r.code from User u join u.groups as g join g.roles as r where u.id = :userId") List<String> getRoleCodesByUserId(@Param("userId") UUID userId)
-
getUserDirectoryIdByUsernameIgnoreCase
@Query("select u.userDirectoryId from User u where lower(u.username) = lower(:username)") Optional<UUID> getUserDirectoryIdByUsernameIgnoreCase(@Param("username") String username)
-
incrementPasswordAttempts
@Modifying @Query("update User u set u.passwordAttempts = u.passwordAttempts + 1 where u.id = :userId") void incrementPasswordAttempts(@Param("userId") UUID userId)
-
isUserInGroup
@Query("select case when (count(u.id) > 0) then true else false end from User u join u.groups as g where u.id = :userId and g.id = :groupId") boolean isUserInGroup(@Param("userId") UUID userId, @Param("groupId") UUID groupId)
-
resetPassword
@Modifying @Query("update User u set u.password = :password, u.passwordAttempts = 0, u.passwordExpiry = :passwordExpiry where u.id = :userId") void resetPassword(@Param("userId") UUID userId, @Param("password") String password, @Param("passwordExpiry") LocalDateTime passwordExpiry)
-
resetPasswordHistory
@Modifying @Query(value="delete from security.users_password_history where user_id = :userId", nativeQuery=true) void resetPasswordHistory(@Param("userId") UUID userId)
-
-