diff --git a/Kitodo/src/main/java/org/kitodo/production/services/data/UserService.java b/Kitodo/src/main/java/org/kitodo/production/services/data/UserService.java index a64211ee634..77d4bdc092c 100644 --- a/Kitodo/src/main/java/org/kitodo/production/services/data/UserService.java +++ b/Kitodo/src/main/java/org/kitodo/production/services/data/UserService.java @@ -164,8 +164,7 @@ public List loadData(int first, int pageSize, String sortField, SortOrder * if no unique user can be found */ public User getByLdapLoginOrLogin(String login) { - List users = getByLoginQuery(login, "from User where ldapLogin = :login"); - users.addAll(getByLoginQuery(login, "from User where login = :login")); + List users = getByLoginQuery(login, "from User where ldapLogin = :login or login = :login"); return uniqueResult(users, login); } @@ -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 users = getByLoginQuery(login, "from User where login = :login"); diff --git a/Kitodo/src/test/java/org/kitodo/production/services/data/UserServiceIT.java b/Kitodo/src/test/java/org/kitodo/production/services/data/UserServiceIT.java index 4e0390e5969..63cf487cf89 100644 --- a/Kitodo/src/test/java/org/kitodo/production/services/data/UserServiceIT.java +++ b/Kitodo/src/test/java/org/kitodo/production/services/data/UserServiceIT.java @@ -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()); + } }