diff --git a/src/main/java/org/olat/basesecurity/manager/OrganisationDAO.java b/src/main/java/org/olat/basesecurity/manager/OrganisationDAO.java index bee5c45115dc253521ba428fea2f79b303d0ad21..5d6f56b2e945ecded2547d9ea503f1193261c3d4 100644 --- a/src/main/java/org/olat/basesecurity/manager/OrganisationDAO.java +++ b/src/main/java/org/olat/basesecurity/manager/OrganisationDAO.java @@ -500,7 +500,7 @@ public class OrganisationDAO { sb.append("select membership.role, count(distinct membership.key) from organisation org") .append(" inner join org.group baseGroup") .append(" inner join baseGroup.members membership") - .append(" where org.key=:organisationKey and membership.identity.key in (:identityKeys)") + .append(" where org.key=:organisationKey and membership.identity.key in (:identityKeys) and membership.role is not null") .append(" group by membership.role"); List<Long> identityKeys = identities.stream() diff --git a/src/main/java/org/olat/user/ui/admin/bulk/move/ChooseRolesController.java b/src/main/java/org/olat/user/ui/admin/bulk/move/ChooseRolesController.java index 97cf68aa9be105c1e84200c72498fab828218a25..b5248a63b346eff749cafefd2a3b0bbd2b1d978d 100644 --- a/src/main/java/org/olat/user/ui/admin/bulk/move/ChooseRolesController.java +++ b/src/main/java/org/olat/user/ui/admin/bulk/move/ChooseRolesController.java @@ -97,26 +97,26 @@ public class ChooseRolesController extends StepFormBasicController { @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { - int numOfRoles = statistics.size(); - String[] roleKeys = new String[statistics.size()]; - String[] roleValues = new String[statistics.size()]; - for(int i=0; i<numOfRoles; i++) { - OrganisationMembershipStats stats = statistics.get(i); - roleKeys[i] = stats.getRole().name(); - roleValues[i] = translate("role.".concat(stats.getRole().name())) + " ( " + stats.getNumOfMembers() + " )"; + KeyValues rolesKeyValues = new KeyValues(); + for(OrganisationMembershipStats stats:statistics) { + if(stats.getRole() != null) { + String roleKey = stats.getRole().name(); + String roleValue = translate("role.".concat(stats.getRole().name())) + " ( " + stats.getNumOfMembers() + " )"; + rolesKeyValues.add(KeyValues.entry(roleKey, roleValue)); + } } - rolesEl = uifactory.addCheckboxesVertical("roles", formLayout, roleKeys, roleValues, 1); + rolesEl = uifactory.addCheckboxesVertical("roles", formLayout, rolesKeyValues.keys(), rolesKeyValues.values(), 1); uifactory.addStaticTextElement("source.organisation", organisation.getDisplayName(), formLayout); - KeyValues keyValues = new KeyValues(); + KeyValues organisationsKeyValues = new KeyValues(); for(Organisation target:targetOrganisations) { String organisationKey = target.getKey().toString(); String parentLine = organisationWithParentLine(target); - keyValues.add(KeyValues.entry(organisationKey, parentLine)); + organisationsKeyValues.add(KeyValues.entry(organisationKey, parentLine)); } - keyValues.sort(KeyValues.VALUE_ASC); - targetOrganisationEl = uifactory.addDropdownSingleselect("target.organisation", formLayout, keyValues.keys(), keyValues.values()); + organisationsKeyValues.sort(KeyValues.VALUE_ASC); + targetOrganisationEl = uifactory.addDropdownSingleselect("target.organisation", formLayout, organisationsKeyValues.keys(), organisationsKeyValues.values()); } private String organisationWithParentLine(Organisation org) {