From dc375915912014140634fa4791cd1a60ee8777c4 Mon Sep 17 00:00:00 2001 From: Katarina Valalikova Date: Fri, 5 Jun 2020 12:30:23 +0200 Subject: [PATCH 1/5] remove model sorting for DropDownChoicePanel --- .../component/input/DropDownChoicePanel.java | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/DropDownChoicePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/DropDownChoicePanel.java index 972458b5ed0..3afc9f23eba 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/DropDownChoicePanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/DropDownChoicePanel.java @@ -29,8 +29,6 @@ public class DropDownChoicePanel extends InputPanel { private static final long serialVersionUID = 1L; private static final String ID_INPUT = "input"; - private boolean sortChoices = true; - public DropDownChoicePanel(String id, IModel model, IModel> choices) { this(id, model, choices, false); } @@ -66,16 +64,6 @@ protected String getNullValidDisplayValue() { return DropDownChoicePanel.this.getNullValidDisplayValue(); } - @Override - public IModel> getChoicesModel() { - IModel> choices = super.getChoicesModel(); - if (sortChoices) { - return Model.ofList(WebComponentUtil.sortDropDownChoices(choices, renderer)); - } else { - return choices; - } - } - @Override public String getModelValue() { T object = this.getModelObject(); @@ -108,12 +96,4 @@ public IModel getModel() { protected String getNullValidDisplayValue() { return getString("DropDownChoicePanel.notDefined"); } - - public boolean isSortChoices() { - return sortChoices; - } - - public void setSortChoices(boolean sortChoices) { - this.sortChoices = sortChoices; - } } From b1f89a04225ea593ddce5b10efa6f622c3ae1eb7 Mon Sep 17 00:00:00 2001 From: Katarina Valalikova Date: Fri, 5 Jun 2020 12:29:50 +0200 Subject: [PATCH 2/5] removing setSortChoices settings from PageTraceView (cherry picked from commit 9a788649c2016a6b6661c0addfa745d9adfdacaa) --- .../web/page/admin/configuration/PageTraceView.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageTraceView.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageTraceView.java index 8b50d28bddd..4341dcd26ec 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageTraceView.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageTraceView.java @@ -116,7 +116,6 @@ private void initLayout() { GenericTraceVisualizationType.class, ID_CLOCKWORK_EXECUTION, createClockworkLevels(), new PropertyModel<>(model, TraceViewDto.F_CLOCKWORK_EXECUTION), this, false); - clockworkExecutionChoice.setSortChoices(false); clockworkExecutionChoice.setOutputMarkupId(true); mainForm.add(clockworkExecutionChoice); @@ -124,7 +123,6 @@ GenericTraceVisualizationType.class, ID_CLOCKWORK_EXECUTION, createClockworkLeve GenericTraceVisualizationType.class, ID_CLOCKWORK_CLICK, createClockworkLevels(), new PropertyModel<>(model, TraceViewDto.F_CLOCKWORK_CLICK), this, false); - clockworkClickChoice.setSortChoices(false); clockworkClickChoice.setOutputMarkupId(true); mainForm.add(clockworkClickChoice); @@ -132,7 +130,6 @@ GenericTraceVisualizationType.class, ID_CLOCKWORK_CLICK, createClockworkLevels() GenericTraceVisualizationType.class, ID_MAPPING_EVALUATION, createMappingLevels(), new PropertyModel<>(model, TraceViewDto.F_MAPPING_EVALUATION), this, false); - mappingEvaluationChoice.setSortChoices(false); mappingEvaluationChoice.setOutputMarkupId(true); mainForm.add(mappingEvaluationChoice); @@ -140,7 +137,6 @@ GenericTraceVisualizationType.class, ID_MAPPING_EVALUATION, createMappingLevels( GenericTraceVisualizationType.class, ID_FOCUS_LOAD, createStandardLevels(), new PropertyModel<>(model, TraceViewDto.F_FOCUS_LOAD), this, false); - focusLoadChoice.setSortChoices(false); focusLoadChoice.setOutputMarkupId(true); mainForm.add(focusLoadChoice); @@ -148,7 +144,6 @@ GenericTraceVisualizationType.class, ID_FOCUS_LOAD, createStandardLevels(), GenericTraceVisualizationType.class, ID_PROJECTION_LOAD, createStandardLevels(), new PropertyModel<>(model, TraceViewDto.F_PROJECTION_LOAD), this, false); - projectionLoadChoice.setSortChoices(false); projectionLoadChoice.setOutputMarkupId(true); mainForm.add(projectionLoadChoice); @@ -156,7 +151,6 @@ GenericTraceVisualizationType.class, ID_PROJECTION_LOAD, createStandardLevels(), GenericTraceVisualizationType.class, ID_FOCUS_CHANGE, createStandardLevels(), new PropertyModel<>(model, TraceViewDto.F_FOCUS_CHANGE), this, false); - focusChangeChoice.setSortChoices(false); focusChangeChoice.setOutputMarkupId(true); mainForm.add(focusChangeChoice); @@ -164,7 +158,6 @@ GenericTraceVisualizationType.class, ID_FOCUS_CHANGE, createStandardLevels(), GenericTraceVisualizationType.class, ID_PROJECTION_CHANGE, createStandardLevels(), new PropertyModel<>(model, TraceViewDto.F_PROJECTION_CHANGE), this, false); - projectionChangeChoice.setSortChoices(false); projectionChangeChoice.setOutputMarkupId(true); mainForm.add(projectionChangeChoice); @@ -172,7 +165,6 @@ GenericTraceVisualizationType.class, ID_PROJECTION_CHANGE, createStandardLevels( GenericTraceVisualizationType.class, ID_OTHERS, createOthersLevels(), new PropertyModel<>(model, TraceViewDto.F_OTHERS), this, false); - otherChoice.setSortChoices(false); otherChoice.setOutputMarkupId(true); mainForm.add(otherChoice); From 71bd125c68717849dbc681b1c38ce1993b135b8e Mon Sep 17 00:00:00 2001 From: Hiroyuki Wada Date: Fri, 5 Jun 2020 12:26:52 +0900 Subject: [PATCH 3/5] MID-6310 Handling direct access to CaseWorkItem page --- .../page/admin/cases/PageCaseWorkItem.java | 61 ++++++++++--------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/cases/PageCaseWorkItem.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/cases/PageCaseWorkItem.java index cf92b6d1742..12bbce0cfeb 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/cases/PageCaseWorkItem.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/cases/PageCaseWorkItem.java @@ -9,7 +9,6 @@ import com.evolveum.midpoint.gui.api.model.LoadableModel; import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils; import com.evolveum.midpoint.prism.PrismObject; -import com.evolveum.midpoint.schema.GetOperationOptionsBuilder; import com.evolveum.midpoint.schema.result.OperationResult; import com.evolveum.midpoint.schema.util.WorkItemId; import com.evolveum.midpoint.security.api.AuthorizationConstants; @@ -32,14 +31,11 @@ import org.apache.wicket.Component; import org.apache.wicket.RestartResponseException; import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.feedback.FeedbackMessage; import org.apache.wicket.request.mapper.parameter.PageParameters; import java.util.ArrayList; import java.util.List; -import static com.evolveum.midpoint.xml.ns._public.common.common_3.TaskType.F_OBJECT_REF; - /** * @author mederly */ @@ -100,7 +96,7 @@ public class PageCaseWorkItem extends PageAdminCaseWorkItems { private PageParameters pageParameters; public PageCaseWorkItem() { - this(null); + this((CaseWorkItemType)null); } public PageCaseWorkItem(CaseWorkItemType workItem) { @@ -121,31 +117,35 @@ protected CaseWorkItemType load() { } } }; + } + + public PageCaseWorkItem(PageParameters parameters) { + this.pageParameters = parameters; + + String caseWorkItemId = parameters.get(OnePageParameterEncoder.PARAMETER).toString(); + if (StringUtils.isEmpty(caseWorkItemId)) { + throw new IllegalStateException("Work item ID not specified."); + } + try { + workItemId = WorkItemId.create(caseWorkItemId); + } catch (IllegalStateException e) { + getSession().error(getString("PageCaseWorkItem.couldNotGetCase.runtime")); + throw redirectBackViaRestartResponseException(); + } -// String caseId = parameters.get(OnePageParameterEncoder.PARAMETER).toString(); -// if (StringUtils.isEmpty(caseId)) { -// throw new IllegalStateException("Case ID not specified."); -// } -// workItemId = WorkItemId.create(caseId); -// if (workItemId == null || StringUtils.isEmpty(workItemId.getCaseOid())) { -// throw new IllegalStateException("Case oid not specified."); -// } -// -// caseModel = new LoadableModel(false) { -// @Override -// protected CaseType load() { -// return loadCaseIfNecessary(); -// } -// }; -// -// caseWorkItemModel = new LoadableModel(false) { -// @Override -// protected CaseWorkItemType load() { -// return loadCaseWorkItemIfNecessary(); -// } -// }; - -// initLayout(); + caseModel = new LoadableModel(false) { + @Override + protected CaseType load() { + return loadCaseIfNecessary(); + } + }; + + caseWorkItemModel = new LoadableModel(false) { + @Override + protected CaseWorkItemType load() { + return loadCaseWorkItemIfNecessary(); + } + }; } @Override @@ -207,7 +207,8 @@ private CaseWorkItemType loadCaseWorkItemIfNecessary() { } catch (NumberFormatException ex) { LoggingUtils.logUnexpectedException(LOGGER, "Couldn't parse case work item id.", ex); } - return null; + getSession().error(getString("PageCaseWorkItem.couldNotGetCaseWorkItem")); + throw redirectBackViaRestartResponseException(); } private void initLayout(){ From 241d0bfedbb406652b04d71e3b92227a160850db Mon Sep 17 00:00:00 2001 From: Hiroyuki Wada Date: Thu, 4 Jun 2020 12:02:02 +0900 Subject: [PATCH 4/5] MID-6306 Fix assignable roles filter when the requester doesn't have assignment permission for the target user(s) --- .../midpoint/web/page/self/AbstractShoppingCartTabPanel.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/AbstractShoppingCartTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/AbstractShoppingCartTabPanel.java index e20c1c0ed07..dc5e03a62bc 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/AbstractShoppingCartTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/AbstractShoppingCartTabPanel.java @@ -11,13 +11,11 @@ import com.evolveum.midpoint.gui.api.util.WebComponentUtil; import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils; import com.evolveum.midpoint.prism.PrismObject; -import com.evolveum.midpoint.prism.query.NoneFilter; import com.evolveum.midpoint.prism.query.ObjectFilter; import com.evolveum.midpoint.prism.query.ObjectQuery; import com.evolveum.midpoint.schema.constants.ObjectTypes; import com.evolveum.midpoint.schema.constants.SchemaConstants; import com.evolveum.midpoint.schema.result.OperationResult; -import com.evolveum.midpoint.schema.util.ObjectQueryUtil; import com.evolveum.midpoint.task.api.Task; import com.evolveum.midpoint.util.logging.Trace; import com.evolveum.midpoint.util.logging.TraceManager; @@ -444,7 +442,7 @@ protected ObjectQuery createContentQuery() { .type(getQueryClass()) .build(); ObjectFilter assignableRolesFilter = getAssignableRolesFilter(); - if (assignableRolesFilter != null && !(assignableRolesFilter instanceof NoneFilter)){ + if (assignableRolesFilter != null) { memberQuery.addFilter(assignableRolesFilter); } // if (getQueryType() != null && !AbstractRoleType.COMPLEX_TYPE.equals(getQueryType())){ From 3c36704338c5826b6a4cc3625b6aa265b87a272b Mon Sep 17 00:00:00 2001 From: Hiroyuki Wada Date: Wed, 3 Jun 2020 19:06:58 +0900 Subject: [PATCH 5/5] MID-6306 Fix assignable roles filter when multiple users are selected --- .../midpoint/web/page/self/AbstractShoppingCartTabPanel.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/AbstractShoppingCartTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/AbstractShoppingCartTabPanel.java index dc5e03a62bc..390b55613bc 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/AbstractShoppingCartTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/AbstractShoppingCartTabPanel.java @@ -463,9 +463,7 @@ private SearchPanel getSearchPanel(){ } private ObjectFilter getAssignableRolesFilter() { - if (getRoleCatalogStorage().isMultiUserRequest()){ - return null; - } + // When multiple users are selected, filter the roles by targeting one of them Task task = getPageBase().createSimpleTask(OPERATION_LOAD_ASSIGNABLE_ROLES); OperationResult result = task.getResult(); UserType targetUser = targetUserModel.getObject();