diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/MultipleAssignmentSelector.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/MultipleAssignmentSelector.java index 2620cc42f6b..c4c6679ad4f 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/MultipleAssignmentSelector.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/MultipleAssignmentSelector.java @@ -111,19 +111,18 @@ public class MultipleAssignmentSelector targetFocusClass; private String labelValue =""; private IModel filterModel = null; - private ObjectFilter authorizedRolesFilter = null; private ObjectQuery searchQuery = null; private PrismObject focus; private H filterObject = null; - public MultipleAssignmentSelector(String id, IModel> selectorModel, BaseSortableDataProvider provider, - Class targetFocusClass, Class type, PrismObject focus) { + public MultipleAssignmentSelector(String id, IModel> selectorModel, + Class targetFocusClass, Class type, PrismObject focus, IModel filterModel) { super(id, selectorModel); - this.provider = provider == null ? getListDataProvider(null) : provider; - this.type = type; this.focus=focus; + this.filterModel = filterModel; +// this.provider = provider == null ? getListDataProvider(null) : provider; + this.type = type; this.targetFocusClass = targetFocusClass; - filterModel = getFilterModel(); searchModel = new LoadableModel(false) { @Override @@ -132,6 +131,11 @@ public Search load() { return search; } }; + if (focus == null){ + provider = getListDataProvider(null); + } else { + provider = getAvailableAssignmentsDataProvider(); + } initLayout(); } @@ -365,9 +369,6 @@ private Component getFilterButton(){ public BaseSortableDataProvider getListDataProvider(final FocusType focus) { BaseSortableDataProvider provider; -// if (filterObject == null){ -// provider = getAvailableAssignmentsDataProvider(); -// } else { provider = new ListDataProvider(this, new IModel>() { @Override public List getObject() { @@ -383,12 +384,11 @@ public void detach() { } }); -// } return provider; } private List getAvailableAssignmentsDataList(FocusType focus){ - ObjectQuery query = provider.getQuery() == null ? new ObjectQuery() : provider.getQuery(); + ObjectQuery query = provider.getQuery() == null ? (searchQuery == null ? new ObjectQuery() : searchQuery) : provider.getQuery(); List assignmentsList = getListProviderDataList(); if (assignmentsList == null) { @@ -438,47 +438,6 @@ private List applyQueryToListProvider(ObjectQuery query, Li return displayAssignmentsList; } - private IModel getFilterModel(){ - return new IModel() { - @Override - public ObjectFilter getObject() { - if (authorizedRolesFilter == null){ - initRolesFilter(); - } - return authorizedRolesFilter; - } - - @Override - public void setObject(ObjectFilter objectFilter) { - - } - - @Override - public void detach() { - - } - }; - } - - private void initRolesFilter (){ - LOGGER.debug("Loading roles which the current user has right to assign"); - OperationResult result = new OperationResult(OPERATION_LOAD_AVAILABLE_ROLES); - try { - PageBase pb = getPageBase(); - ModelInteractionService mis = pb.getModelInteractionService(); - RoleSelectionSpecification roleSpec = mis.getAssignableRoleSpecification(focus, result); - authorizedRolesFilter = roleSpec.getFilter(); - } catch (Exception ex) { - LoggingUtils.logException(LOGGER, "Couldn't load available roles", ex); - result.recordFatalError("Couldn't load available roles", ex); - } finally { - result.recomputeStatus(); - } - if (!result.isSuccess() && !result.isHandledError()) { - getPageBase().showResult(result); - } - } - private List getAssignmentEditorDtoList(List assignmentTypeList){ List assignmentEditorDtoList = new ArrayList<>(); for (AssignmentType assignmentType : assignmentTypeList){ diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/MultipleAssignmentSelectorPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/MultipleAssignmentSelectorPanel.java index ad05e7a8d0c..97c05c7f2b9 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/MultipleAssignmentSelectorPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/MultipleAssignmentSelectorPanel.java @@ -83,11 +83,9 @@ public class MultipleAssignmentSelectorPanel type; - private BaseSortableDataProvider dataProvider; private List tenantEditorObject = new ArrayList<>(); private List orgEditorObject = new ArrayList<>(); private PrismObject focus; - private ObjectQuery dataProviderQuery; private ObjectFilter authorizedRolesFilter = null; private IModel filterModel = null; private static final Trace LOGGER = TraceManager.getTrace(MultipleAssignmentSelectorPanel.class); @@ -108,12 +106,10 @@ public MultipleAssignmentSelectorPanel(String id, LoadableModel targetFocusClass) { IModel> availableAssignmentModel = createAvailableAssignmentModel(); - dataProvider = getAvailableAssignmentsDataProvider(); final MultipleAssignmentSelector availableAssignmentsPanel = new MultipleAssignmentSelector(ID_AVAILABLE_ASSIGNMENTS, - availableAssignmentModel, dataProvider, targetFocusClass, type, focus); + availableAssignmentModel, targetFocusClass, type, focus, filterModel); final MultipleAssignmentSelector currentAssignmentsPanel = new MultipleAssignmentSelector(ID_CURRENT_ASSIGNMENTS, - assignmentsModel, - null, targetFocusClass, type, focus){ + assignmentsModel, targetFocusClass, type, null, null){ @Override protected List getListProviderDataList(){ return assignmentsModel.getObject(); @@ -124,13 +120,6 @@ protected List getListProviderDataList(){ AjaxButton add = new AjaxButton(ID_BUTTON_ADD) { @Override protected void onSubmit(AjaxRequestTarget target, org.apache.wicket.markup.html.form.Form form) { - List list = assignmentsModel.getObject(); - for (AssignmentEditorDto dto : list){ - String n = dto.getName(); - if (n != null){ - String f = ""; - } - } addToAssignmentsModel(target, availableAssignmentsPanel, currentAssignmentsPanel); } }; @@ -241,34 +230,6 @@ private void deleteFromAssignmentsModel(AjaxRequestTarget target, MultipleAssign target.add(from); } - public ObjectDataProvider getAvailableAssignmentsDataProvider() { - ObjectDataProvider provider = new ObjectDataProvider(this, type) { - - @Override - public AssignmentEditorDto createDataObjectWrapper(PrismObject obj) { - return AssignmentEditorDto.createDtoFromObject(obj.asObjectable(), UserDtoStatus.MODIFY, getPageBase()); - } - - @Override - public void setQuery(ObjectQuery query) { - super.setQuery(query); - dataProviderQuery = query; - } - - @Override - public ObjectQuery getQuery() { - if (dataProviderQuery == null){ - dataProviderQuery = new ObjectQuery(); - } - if (filterModel != null && filterModel.getObject() != null){ - dataProviderQuery.addFilter(filterModel.getObject()); - } - return dataProviderQuery; - } - }; - return provider; - } - private IModel getFilterModel(){ return new IModel() { @Override @@ -442,16 +403,6 @@ protected void onSelectPerformed(AjaxRequestTarget target, OrgType org) { target.add(getOrgUnitEditorContainer()); } }; -// OrgTreeAssignablePanel orgPanel = new OrgTreeAssignablePanel( -// getPageBase().getMainPopupBodyId(), false, getPageBase()) { -// -// @Override -// protected void onItemSelect(SelectableBean selected, AjaxRequestTarget target) { -// closeModalWindow(target); -// tenantEditorObject.clear(); -// tenantEditorObject.add(selected.getValue()); -// target.add(getTenantEditorContainer()); } -// }; getPageBase().showMainPopup(orgPanel, new Model("Select organization"), target); } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchFactory.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchFactory.java index 25e9633dd24..d5ab8ff401c 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchFactory.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchFactory.java @@ -52,7 +52,6 @@ public class SearchFactory { new ItemPath(UserType.F_COST_CENTER))); SEARCHABLE_OBJECTS.put(RoleType.class, Arrays.asList( new ItemPath(RoleType.F_NAME), - new ItemPath(RoleType.F_DISPLAY_NAME), new ItemPath(RoleType.F_ROLE_TYPE))); SEARCHABLE_OBJECTS.put(ConnectorHostType.class, Arrays.asList( new ItemPath(ConnectorHostType.F_HOSTNAME)