Skip to content

Commit

Permalink
Merge pull request kitodo#5812 from slub/fix_ldaplogin
Browse files Browse the repository at this point in the history
Fix quering for user search in one query
  • Loading branch information
solth authored Oct 27, 2023
2 parents 0493084 + a59b36d commit f555902
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -164,8 +164,7 @@ public List<User> loadData(int first, int pageSize, String sortField, SortOrder
* if no unique user can be found
*/
public User getByLdapLoginOrLogin(String login) {
List<User> users = getByLoginQuery(login, "from User where ldapLogin = :login");
users.addAll(getByLoginQuery(login, "from User where login = :login"));
List<User> users = getByLoginQuery(login, "from User where ldapLogin = :login or login = :login");
return uniqueResult(users, login);
}

Expand All @@ -175,6 +174,8 @@ public User getByLdapLoginOrLogin(String login) {
* @param login
* The login.
* @return The user.
* @throws UsernameNotFoundException
* if no unique user can be found
*/
public User getByLogin(String login) {
List<User> users = getByLoginQuery(login, "from User where login = :login");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -247,4 +247,16 @@ public void shouldGetAuthenticatedUser() throws DAOException {
assertEquals("Returned authenticated user was wrong", "kowal", authenticatedUser.getLogin());
SecurityTestUtils.cleanSecurityContext();
}

@Test
public void returnCorrectUserIndependentOfLoginOrLdapLoginByLogin() {
User user = userService.getByLdapLoginOrLogin("verylast");
assertEquals("Returned user was wrong", "User, Very last", user.getFullName());
}

@Test
public void returnCorrectUserIndependentOfLoginOrLdapLoginByLdapLogin() {
User user = userService.getByLdapLoginOrLogin("doraLDP");
assertEquals("Returned user was wrong", "Dora, Anna", user.getFullName());
}
}

0 comments on commit f555902

Please sign in to comment.