diff --git a/src/main/java/org/olat/basesecurity/manager/IdentityDAO.java b/src/main/java/org/olat/basesecurity/manager/IdentityDAO.java index 5362b58c4c4582c3e42550250c1e32f8ea62d7ce..35720d6fec68bb7c922948f3edffb7e727982228 100644 --- a/src/main/java/org/olat/basesecurity/manager/IdentityDAO.java +++ b/src/main/java/org/olat/basesecurity/manager/IdentityDAO.java @@ -82,6 +82,7 @@ public class IdentityDAO { .append(" where lower(ident.name) in (:names)") .append(" or lower(auth.authusername) in (:names)") .append(" or lower(concat(user.firstName,' ', user.lastName)) in (:names)") + .append(" or lower(user.nickName) in (:names)") .append(" or lower(user.email) in (:names)") .append(" or lower(user.institutionalEmail) in (:names)") .append(" or lower(user.institutionalUserIdentifier) in (:names)"); @@ -107,7 +108,7 @@ public class IdentityDAO { return new ArrayList<>(namedIdentities.values()); } - private void appendName(FindNamedIdentity namedIdentity, Authentication authentication, Collection<String> names) { + private void appendName(FindNamedIdentity namedIdentity, Authentication authentication, Set<String> names) { if(authentication != null) { String authUsername = authentication.getAuthusername().toLowerCase(); if(names.contains(authUsername)) { @@ -149,6 +150,11 @@ public class IdentityDAO { && names.contains(user.getProperty(UserConstants.INSTITUTIONALUSERIDENTIFIER, null).toLowerCase())) { namedIdentity.addName(user.getProperty(UserConstants.INSTITUTIONALUSERIDENTIFIER, null)); } + + if(StringHelper.containsNonWhitespace(user.getProperty(UserConstants.NICKNAME, null)) + && names.contains(user.getProperty(UserConstants.NICKNAME, null).toLowerCase())) { + namedIdentity.addName(user.getProperty(UserConstants.NICKNAME, null)); + } } public void setIdentityLastLogin(IdentityRef identity, Date lastLogin) { diff --git a/src/main/java/org/olat/course/member/wizard/ImportMemberByUsernamesController.java b/src/main/java/org/olat/course/member/wizard/ImportMemberByUsernamesController.java index 964d07c3151762816222ea7d8e219d2f731c06da..eac1236f9167d8b6ea052b5b093460d8bb8683dd 100644 --- a/src/main/java/org/olat/course/member/wizard/ImportMemberByUsernamesController.java +++ b/src/main/java/org/olat/course/member/wizard/ImportMemberByUsernamesController.java @@ -135,6 +135,8 @@ public class ImportMemberByUsernamesController extends StepFormBasicController { tableEl.setCustomizeColumns(false); tableEl.setMultiSelect(true); tableEl.setSelectAllEnable(true); + tableEl.setCustomizeColumns(true); + tableEl.setAndLoadPersistedPreferences(ureq, "user-import-table-v1"); } @Override diff --git a/src/main/java/org/olat/ldap/manager/LDAPLoginManagerImpl.java b/src/main/java/org/olat/ldap/manager/LDAPLoginManagerImpl.java index 17c577bc836848c9534367c2fbf55ac4aa050729..03c9851ac7a14e22c8388334baca5ca6dd72f1b5 100644 --- a/src/main/java/org/olat/ldap/manager/LDAPLoginManagerImpl.java +++ b/src/main/java/org/olat/ldap/manager/LDAPLoginManagerImpl.java @@ -1414,12 +1414,12 @@ public class LDAPLoginManagerImpl implements LDAPLoginManager, AuthenticationPro currentMemberKeys.add(currentMember.getKey()); } - List<LDAPUser> coaches = new ArrayList<>(ldapGroup.getCoaches()); - List<LDAPUser> participants = new ArrayList<>(ldapGroup.getParticipants()); + Set<LDAPUser> coaches = new HashSet<>(ldapGroup.getCoaches()); + Set<LDAPUser> participants = new HashSet<>(ldapGroup.getParticipants()); // transfer member cn's to the participants list for(String member:ldapGroup.getMembers()) { try { - LDAPUser ldapUser = getLDAPUser(ctx, member, dnToIdentityKeyMap, errors); dnToIdentityKeyMap.get(member); + LDAPUser ldapUser = getLDAPUser(ctx, member, dnToIdentityKeyMap, errors); if(ldapUser != null && !participants.contains(ldapUser)) { participants.add(ldapUser); }