From 6bde3312441e9eeab10d2a29dd34e87f5f315c02 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Fri, 29 Apr 2016 19:29:40 +0200 Subject: [PATCH] OO-2011: (re)implements activate method in user management --- .../olat/admin/UserAdminMainController.java | 16 ++++++---- .../ExtendedIdentitiesTableDataModel.java | 4 +++ .../user/UsermanagerUserSearchController.java | 32 +++++++++++++------ .../bulkChange/UserBulkChangeManager.java | 6 ++-- 4 files changed, 40 insertions(+), 18 deletions(-) diff --git a/src/main/java/org/olat/admin/UserAdminMainController.java b/src/main/java/org/olat/admin/UserAdminMainController.java index d6b1ad922d3..9fb4d046de1 100644 --- a/src/main/java/org/olat/admin/UserAdminMainController.java +++ b/src/main/java/org/olat/admin/UserAdminMainController.java @@ -105,6 +105,7 @@ public class UserAdminMainController extends MainLayoutBasicController implement private LayoutMain3ColsController columnLayoutCtr; private Controller contentCtr; private UserAdminController userAdminCtr; + private UsermanagerUserSearchController userSearchCtrl; private VelocityContainer rolesVC, queriesVC; private String activatePaneInDetailView = null; @@ -284,16 +285,19 @@ public class UserAdminMainController extends MainLayoutBasicController implement return createAndLockDirectUserDeleteController(ureq, bwControl); } - //these nodes re-create (not stateful) content Controller (contentCtrl) - removeAsListenerAndDispose(contentCtr); + if (uobject.equals("usearch") || uobject.equals("useradmin")) { - activatePaneInDetailView = null; - contentCtr = new UsermanagerUserSearchController(ureq, bwControl); + if(contentCtr != userSearchCtrl) { + activatePaneInDetailView = null; + contentCtr = userSearchCtrl = new UsermanagerUserSearchController(ureq, bwControl); + listenTo(contentCtr); + } addToHistory(ureq, bwControl); - listenTo(contentCtr); return contentCtr.getInitialComponent(); } - else if (uobject.equals("ucreate")) { + //these nodes re-create (not stateful) content Controller (contentCtrl) + removeAsListenerAndDispose(contentCtr); + if (uobject.equals("ucreate")) { activatePaneInDetailView = null; boolean canCreateOLATPassword = false; if (ureq.getUserSession().getRoles().isOLATAdmin()) { diff --git a/src/main/java/org/olat/admin/user/ExtendedIdentitiesTableDataModel.java b/src/main/java/org/olat/admin/user/ExtendedIdentitiesTableDataModel.java index 0730ece9c25..dec74058be6 100644 --- a/src/main/java/org/olat/admin/user/ExtendedIdentitiesTableDataModel.java +++ b/src/main/java/org/olat/admin/user/ExtendedIdentitiesTableDataModel.java @@ -150,6 +150,10 @@ public class ExtendedIdentitiesTableDataModel extends DefaultTableDataModel<Iden public int getColumnCount() { return colCount + 1; } + + public boolean contains(Identity identity) { + return objects.contains(identity); + } /** * @param selection diff --git a/src/main/java/org/olat/admin/user/UsermanagerUserSearchController.java b/src/main/java/org/olat/admin/user/UsermanagerUserSearchController.java index 5efe6cc6dab..b93c15e2c50 100644 --- a/src/main/java/org/olat/admin/user/UsermanagerUserSearchController.java +++ b/src/main/java/org/olat/admin/user/UsermanagerUserSearchController.java @@ -126,7 +126,7 @@ public class UsermanagerUserSearchController extends BasicController implements private UsermanagerUserSearchForm searchform; private TableController tableCtr; private List<Identity> identitiesList, selectedIdentities; - private ArrayList<String> notUpdatedIdentities = new ArrayList<String>(); + private List<String> notUpdatedIdentities = new ArrayList<String>(); private ExtendedIdentitiesTableDataModel tdm; private Identity foundIdentity = null; private ContactFormController contactCtr; @@ -303,15 +303,29 @@ public class UsermanagerUserSearchController extends BasicController implements if(entries == null || entries.isEmpty()) return; - Long identityKey = entries.get(0).getOLATResourceable().getResourceableId(); - if(identityKey != null && identitiesList != null) { - for(Identity identity:identitiesList) { - if(identityKey.equals(identity.getKey())) { - foundIdentity = identity; - fireEvent(ureq, new SingleIdentityChosenEvent(foundIdentity)); - entries.remove(0); - break; + for(int i=0; i<entries.size(); i++) { + String resourceType = entries.get(i).getOLATResourceable().getResourceableTypeName(); + if("Identity".equalsIgnoreCase(resourceType)) { + Long identityKey = entries.get(i).getOLATResourceable().getResourceableId(); + Identity found = null; + if(tdm != null) { + for(Identity identity:tdm.getObjects()) { + if(identityKey.equals(identity.getKey())) { + found = identity; + } + } + } + + if(found == null) { + found = securityManager.loadIdentityByKey(identityKey); + if(found == null) return; + + List<Identity> foundIdentites = new ArrayList<>(); + foundIdentites.add(found); + initUserListCtr(ureq, foundIdentites, 0); } + foundIdentity = found; + fireEvent(ureq, new SingleIdentityChosenEvent(found)); } } } diff --git a/src/main/java/org/olat/admin/user/bulkChange/UserBulkChangeManager.java b/src/main/java/org/olat/admin/user/bulkChange/UserBulkChangeManager.java index 9a4cef2739d..1997655f7f7 100644 --- a/src/main/java/org/olat/admin/user/bulkChange/UserBulkChangeManager.java +++ b/src/main/java/org/olat/admin/user/bulkChange/UserBulkChangeManager.java @@ -21,9 +21,9 @@ package org.olat.admin.user.bulkChange; import java.io.StringWriter; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; import java.util.Locale; +import java.util.Map; import java.util.Properties; import org.apache.velocity.VelocityContext; @@ -101,8 +101,8 @@ public class UserBulkChangeManager extends BasicManager { return INSTANCE; } - public void changeSelectedIdentities(List<Identity> selIdentities, HashMap<String, String> attributeChangeMap, - HashMap<String, String> roleChangeMap, ArrayList<String> notUpdatedIdentities, boolean isAdministrativeUser, List<Long> ownGroups, List<Long> partGroups, + public void changeSelectedIdentities(List<Identity> selIdentities, Map<String, String> attributeChangeMap, + Map<String, String> roleChangeMap, List<String> notUpdatedIdentities, boolean isAdministrativeUser, List<Long> ownGroups, List<Long> partGroups, Translator trans, Identity addingIdentity) { Translator transWithFallback = UserManager.getInstance().getPropertyHandlerTranslator(trans); -- GitLab