diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AbstractPopupTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AbstractPopupTabPanel.java index 57f8b818ee1..c3b5fe4e78e 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AbstractPopupTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/AbstractPopupTabPanel.java @@ -38,7 +38,7 @@ public abstract class AbstractPopupTabPanel extends BasePa private static final long serialVersionUID = 1L; private static final String ID_OBJECT_LIST_PANEL = "objectListPanel"; - private static final String ID_PARAMETERS_PANEL = "parametersPanel"; + protected static final String ID_PARAMETERS_PANEL = "parametersPanel"; protected static final String ID_PARAMETERS_PANEL_FRAGMENT = "parametersPanelFragment"; protected List preSelectedObjects = new ArrayList<>(); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/FocusTypeAssignmentPopupTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/FocusTypeAssignmentPopupTabPanel.java index 236603bf5c2..af8209a8537 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/FocusTypeAssignmentPopupTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/FocusTypeAssignmentPopupTabPanel.java @@ -97,7 +97,7 @@ public QName getRelationValue(){ } private DropDownChoicePanel getRelationDropDown(){ - return (DropDownChoicePanel)get(ID_RELATION_CONTAINER).get(ID_RELATION); + return (DropDownChoicePanel)get(ID_PARAMETERS_PANEL).get(ID_RELATION_CONTAINER).get(ID_RELATION); } @Override diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/MainObjectListPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/MainObjectListPanel.java index 6decae9b25e..3b1007bf9a2 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/MainObjectListPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/MainObjectListPanel.java @@ -176,7 +176,7 @@ public void onClick(AjaxRequestTarget target) { // isVisible = ((PageBase) getPage()).getSecurityEnforcer().isAuthorized(ModelAuthorizationAction.ADD.getUrl(), // null, objectToCreate, null, null, null); // } catch (Exception ex){ -// LOGGER.error("Failed to check authorization for ADD action on new object of " + mainObjectListPanel.getType().getSimpleName() +// LOGGER.error("Failed to check authorization for ADD action on new object of " + mainObjectListPanel.getQueryType().getSimpleName() // + " type, ", ex); // } // return isVisible; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/MemberPopupTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/MemberPopupTabPanel.java index 642aa06a13a..eef456e7fd8 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/MemberPopupTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/MemberPopupTabPanel.java @@ -128,6 +128,6 @@ public QName getRelationValue(){ } private DropDownChoicePanel getRelationDropDown(){ - return (DropDownChoicePanel)get(ID_RELATION_CONTAINER).get(ID_RELATION); + return (DropDownChoicePanel)get(ID_PARAMETERS_PANEL).get(ID_RELATION_CONTAINER).get(ID_RELATION); } } 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 04dbf8fdf2d..1f5dd38358a 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 @@ -16,13 +16,14 @@ package com.evolveum.midpoint.web.page.self; import com.evolveum.midpoint.gui.api.component.BasePanel; +import com.evolveum.midpoint.gui.api.model.LoadableModel; import com.evolveum.midpoint.model.api.ModelInteractionService; import com.evolveum.midpoint.model.api.RoleSelectionSpecification; import com.evolveum.midpoint.prism.PrismObject; -import com.evolveum.midpoint.prism.query.InOidFilter; import com.evolveum.midpoint.prism.query.ObjectFilter; import com.evolveum.midpoint.prism.query.ObjectQuery; import com.evolveum.midpoint.prism.query.TypeFilter; +import com.evolveum.midpoint.schema.constants.RelationTypes; import com.evolveum.midpoint.schema.result.OperationResult; import com.evolveum.midpoint.schema.util.ObjectQueryUtil; import com.evolveum.midpoint.task.api.Task; @@ -33,20 +34,20 @@ import com.evolveum.midpoint.web.component.assignment.GridViewComponent; import com.evolveum.midpoint.web.component.assignment.RoleCatalogItemButton; import com.evolveum.midpoint.web.component.data.ObjectDataProvider; -import com.evolveum.midpoint.web.component.search.Search; import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour; import com.evolveum.midpoint.web.page.admin.users.dto.UserDtoStatus; -import com.evolveum.midpoint.web.page.self.dto.AssignmentViewType; import com.evolveum.midpoint.web.session.RoleCatalogStorage; import com.evolveum.midpoint.xml.ns._public.common.common_3.AbstractRoleType; +import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType; +import com.evolveum.midpoint.xml.ns._public.common.common_3.RoleManagementConfigurationType; import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType; -import org.apache.commons.lang.StringUtils; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.behavior.AttributeAppender; import org.apache.wicket.markup.repeater.Item; -import org.apache.wicket.model.Model; +import org.apache.wicket.markup.repeater.data.IDataProvider; import javax.xml.namespace.QName; +import java.util.ArrayList; import java.util.List; /** @@ -61,8 +62,11 @@ public abstract class AbstractShoppingCartTabPanel e private static final String OPERATION_LOAD_ASSIGNABLE_ROLES = DOT_CLASS + "loadAssignableRoles"; private static final Trace LOGGER = TraceManager.getTrace(AbstractShoppingCartTabPanel.class); - public AbstractShoppingCartTabPanel(String id){ + private RoleManagementConfigurationType roleManagementConfig; + + public AbstractShoppingCartTabPanel(String id, RoleManagementConfigurationType roleManagementConfig){ super(id); + this.roleManagementConfig = roleManagementConfig; } @Override @@ -74,7 +78,13 @@ protected void onInitialize(){ private void initLayout(){ initLeftSidePanel(); - GridViewComponent catalogItemsGrid = new GridViewComponent(ID_SHOPPING_CART_ITEMS_PANEL, Model.of(getTabPanelProvider())) { + GridViewComponent catalogItemsGrid = new GridViewComponent(ID_SHOPPING_CART_ITEMS_PANEL, + new LoadableModel() { + @Override + protected IDataProvider load() { + return getTabPanelProvider(); + } + }) { private static final long serialVersionUID = 1L; // @Override @@ -90,8 +100,7 @@ protected void populateItem(Item item) { @Override protected void assignmentAddedToShoppingCartPerformed(AjaxRequestTarget target){ -// PageAssignmentShoppingCart.this.reloadCartButton(target); - + AbstractShoppingCartTabPanel.this.assignmentAddedToShoppingCartPerformed(target); } }); } @@ -120,10 +129,10 @@ private ObjectDataProvider getTabPanelProvider() { public AssignmentEditorDto createDataObjectWrapper(PrismObject obj) { AssignmentEditorDto dto = AssignmentEditorDto.createDtoFromObject(obj.asObjectable(), UserDtoStatus.ADD, getPageBase()); -// if (!getRoleCatalogStorage().isMultiUserRequest()) { -// dto.setAlreadyAssigned(isAlreadyAssigned(obj, dto)); -// dto.setDefualtAssignmentConstraints(getRoleCatalogStorage().getShoppingCartConfigurationDto().getDefaultAssignmentConstraints()); -// } + if (!getRoleCatalogStorage().isMultiUserRequest()) { + dto.setAlreadyAssigned(isAlreadyAssigned(obj, dto)); + dto.setDefualtAssignmentConstraints(roleManagementConfig == null ? null : roleManagementConfig.getDefaultAssignmentConstraints()); + } return dto; } @@ -135,6 +144,23 @@ public ObjectQuery getQuery() { return provider; } + private boolean isAlreadyAssigned(PrismObject obj, AssignmentEditorDto assignmentDto){ + UserType user = getTargetUser(); + if (user == null || user.getAssignment() == null){ + return false; + } + boolean isAssigned = false; + List assignedRelationsList = new ArrayList<>(); + for (AssignmentType assignment : user.getAssignment()){ + if (assignment.getTargetRef() != null && assignment.getTargetRef().getOid().equals(obj.getOid())){ + isAssigned = true; + assignedRelationsList.add(RelationTypes.getRelationType(assignment.getTargetRef().getRelation())); + } + } + assignmentDto.setAssignedRelationsList(assignedRelationsList); + return isAssigned; + } + protected boolean isShoppingCartItemsPanelVisible(){ return true; } @@ -145,22 +171,15 @@ protected void appendItemsPanelStyle(GridViewComponent itemsPanel){ protected ObjectQuery createContentQuery(ObjectQuery searchQuery) { ObjectQuery memberQuery = new ObjectQuery(); -// if (AssignmentViewType.ROLE_CATALOG_VIEW.equals(viewTypeModel.getObject())){ -// String oid = getRoleCatalogStorage().getSelectedOid(); -// if(StringUtils.isEmpty(oid)){ -// return null; -// } -// addOrgMembersFilter(oid, memberQuery); -// } // if (getRoleCatalogStorage().getAssignmentsUserOwner() != null) { // UserType assignmentsOwner = getRoleCatalogStorage().getAssignmentsUserOwner(); // List assignmentTargetObjectOidsList = collectTargetObjectOids(assignmentsOwner.getAssignment()); // ObjectFilter oidsFilter = InOidFilter.createInOid(assignmentTargetObjectOidsList); // memberQuery.addFilter(oidsFilter); // } -// memberQuery.addFilter(getAssignableRolesFilter()); - if (getType() != null){ - ObjectFilter typeFilter = ObjectQueryUtil.filterAnd(TypeFilter.createType(getType(), null), memberQuery.getFilter()); + memberQuery.addFilter(getAssignableRolesFilter()); + if (getQueryType() != null){ + ObjectFilter typeFilter = ObjectQueryUtil.filterAnd(TypeFilter.createType(getQueryType(), null), memberQuery.getFilter()); memberQuery.addFilter(typeFilter); } @@ -201,7 +220,7 @@ private ObjectFilter getAssignableRolesFilter() { return filter; } - protected abstract QName getType(); + protected abstract QName getQueryType(); private UserType getTargetUser(){ if (getRoleCatalogStorage().isSelfRequest()){ @@ -210,7 +229,14 @@ private UserType getTargetUser(){ return getRoleCatalogStorage().getTargetUserList().get(0); } + protected void assignmentAddedToShoppingCartPerformed(AjaxRequestTarget target){ + } + protected RoleCatalogStorage getRoleCatalogStorage(){ return getPageBase().getSessionStorage().getRoleCatalog(); } + + protected GridViewComponent getGridViewComponent(){ + return (GridViewComponent)get(ID_SHOPPING_CART_ITEMS_PANEL); + } } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentShoppingCart.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentShoppingCart.html index f4e3af41076..0246071d7d4 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentShoppingCart.html +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentShoppingCart.html @@ -29,8 +29,8 @@ diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentShoppingCart.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentShoppingCart.java index 5c33297541f..a44deee6709 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentShoppingCart.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentShoppingCart.java @@ -18,18 +18,13 @@ import com.evolveum.midpoint.gui.api.component.tabs.PanelTab; import com.evolveum.midpoint.gui.api.model.LoadableModel; import com.evolveum.midpoint.gui.api.util.WebComponentUtil; -import com.evolveum.midpoint.model.api.ModelInteractionService; -import com.evolveum.midpoint.model.api.RoleSelectionSpecification; import com.evolveum.midpoint.prism.PrismObject; import com.evolveum.midpoint.prism.query.*; import com.evolveum.midpoint.schema.constants.RelationTypes; 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.security.api.AuthorizationConstants; -import com.evolveum.midpoint.task.api.Task; import com.evolveum.midpoint.util.exception.*; -import com.evolveum.midpoint.util.logging.LoggingUtils; import com.evolveum.midpoint.util.logging.Trace; import com.evolveum.midpoint.util.logging.TraceManager; import com.evolveum.midpoint.web.application.AuthorizationAction; @@ -37,22 +32,13 @@ import com.evolveum.midpoint.web.component.AjaxButton; import com.evolveum.midpoint.web.component.TabbedPanel; import com.evolveum.midpoint.web.component.assignment.*; -import com.evolveum.midpoint.web.component.data.BaseSortableDataProvider; -import com.evolveum.midpoint.web.component.data.ObjectDataProvider; -import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem; import com.evolveum.midpoint.web.component.search.Search; import com.evolveum.midpoint.web.component.search.SearchFactory; import com.evolveum.midpoint.web.component.search.SearchPanel; -import com.evolveum.midpoint.web.component.util.SelectableBean; import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour; -import com.evolveum.midpoint.web.page.admin.orgs.OrgTreePanel; -import com.evolveum.midpoint.web.page.admin.users.dto.UserDtoStatus; -import com.evolveum.midpoint.web.page.self.dto.AssignmentViewType; import com.evolveum.midpoint.web.page.self.dto.ShoppingCartConfigurationDto; -import com.evolveum.midpoint.web.session.OrgTreeStateStorage; import com.evolveum.midpoint.web.session.RoleCatalogStorage; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; -import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.StringUtils; import org.apache.wicket.ajax.AjaxChannel; import org.apache.wicket.ajax.AjaxRequestTarget; @@ -61,10 +47,8 @@ import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.Form; -import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.model.AbstractReadOnlyModel; import org.apache.wicket.model.IModel; -import org.apache.wicket.model.Model; import javax.xml.namespace.QName; import java.util.*; @@ -198,7 +182,14 @@ private List getTabsList(){ @Override public WebMarkupContainer createPanel(String panelId) { - return new RoleCatalogTabPanel(panelId, roleCatalogOid); + return new RoleCatalogTabPanel(panelId, roleManagementConfigModel.getObject(), roleCatalogOid){ + private static final long serialVersionUID = 1L; + + @Override + protected void assignmentAddedToShoppingCartPerformed(AjaxRequestTarget target){ + target.add(getCartButton()); + } + }; } }); } @@ -209,11 +200,16 @@ public WebMarkupContainer createPanel(String panelId) { @Override public WebMarkupContainer createPanel(String panelId) { - return new AbstractShoppingCartTabPanel(panelId) { + return new AbstractShoppingCartTabPanel(panelId, roleManagementConfigModel.getObject()) { @Override - protected QName getType() { + protected QName getQueryType() { return RoleType.COMPLEX_TYPE; } + + @Override + protected void assignmentAddedToShoppingCartPerformed(AjaxRequestTarget target){ + target.add(getCartButton()); + } }; } }); @@ -224,11 +220,16 @@ protected QName getType() { @Override public WebMarkupContainer createPanel(String panelId) { - return new AbstractShoppingCartTabPanel(panelId) { + return new AbstractShoppingCartTabPanel(panelId, roleManagementConfigModel.getObject()) { @Override - protected QName getType() { + protected QName getQueryType() { return OrgType.COMPLEX_TYPE; } + + @Override + protected void assignmentAddedToShoppingCartPerformed(AjaxRequestTarget target){ + target.add(getCartButton()); + } }; } }); @@ -239,11 +240,16 @@ protected QName getType() { @Override public WebMarkupContainer createPanel(String panelId) { - return new AbstractShoppingCartTabPanel(panelId) { + return new AbstractShoppingCartTabPanel(panelId, roleManagementConfigModel.getObject()) { @Override - protected QName getType() { + protected QName getQueryType() { return ServiceType.COMPLEX_TYPE; } + + @Override + protected void assignmentAddedToShoppingCartPerformed(AjaxRequestTarget target){ + target.add(getCartButton()); + } }; } }); @@ -254,11 +260,16 @@ protected QName getType() { @Override public WebMarkupContainer createPanel(String panelId) { - return new AbstractShoppingCartTabPanel(panelId) { + return new AbstractShoppingCartTabPanel(panelId, roleManagementConfigModel.getObject()) { @Override - protected QName getType() { + protected QName getQueryType() { return AbstractRoleType.COMPLEX_TYPE; } + + @Override + protected void assignmentAddedToShoppingCartPerformed(AjaxRequestTarget target){ + target.add(getCartButton()); + } }; } }); @@ -331,16 +342,16 @@ protected void onDeleteSelectedUsersPerformed(AjaxRequestTarget target){ super.onDeleteSelectedUsersPerformed(target); getRoleCatalogStorage().setTargetUserList(new ArrayList<>()); - target.add(getContentPanel()); - target.add(getHeaderPanel()); + target.add(PageAssignmentShoppingCart.this.getTabbedPanel()); + target.add(parametersPanel.get(ID_TARGET_USER_PANEL)); } @Override protected void multipleUsersSelectionPerformed(AjaxRequestTarget target, List usersList){ getRoleCatalogStorage().setTargetUserList(usersList); - target.add(getContentPanel()); - target.add(getHeaderPanel()); - } + target.add(PageAssignmentShoppingCart.this.getTabbedPanel()); + target.add(parametersPanel.get(ID_TARGET_USER_PANEL)); + } }; targetUserPanel.setOutputMarkupId(true); @@ -370,8 +381,8 @@ protected void singleUserSelectionPerformed(AjaxRequestTarget target, UserType u // initProvider(); searchModel.reset(); - target.add(getContentPanel()); - target.add(getHeaderPanel()); + target.add(getTabbedPanel()); +// target.add(getHeaderPanel()); } @Override @@ -386,8 +397,8 @@ protected void onDeleteSelectedUsersPerformed(AjaxRequestTarget target){ // initProvider(); searchModel.reset(); - target.add(getContentPanel()); - target.add(getHeaderPanel()); + target.add(getTabbedPanel()); +// target.add(getHeaderPanel()); } }; // sourceUserPanel.add(new VisibleEnableBehaviour(){ @@ -413,7 +424,7 @@ protected void onDeleteSelectedUsersPerformed(AjaxRequestTarget target){ // initProvider(); // searchModel.reset(); // -// target.add(getContentPanel()); +// target.add(getTabbedPanel()); // target.add(getHeaderPanel()); // } // }); @@ -451,40 +462,6 @@ public void searchPerformed(ObjectQuery query, AjaxRequestTarget target) { // target.add(getCatalogItemsPanelContainer()); // } - - - private ObjectFilter getAssignableRolesFilter() { - ObjectFilter filter = null; - LOGGER.debug("Loading roles which the current user has right to assign"); - Task task = createSimpleTask(OPERATION_LOAD_ASSIGNABLE_ROLES); - OperationResult result = task.getResult(); - try { - ModelInteractionService mis = getModelInteractionService(); - RoleSelectionSpecification roleSpec = - mis.getAssignableRoleSpecification(getTargetUser().asPrismObject(), task, result); - filter = roleSpec.getFilter(); - } catch (Exception ex) { - LoggingUtils.logUnexpectedException(LOGGER, "Couldn't load available roles", ex); - result.recordFatalError("Couldn't load available roles", ex); - } finally { - result.recomputeStatus(); - } - if (!result.isSuccess() && !result.isHandledError()) { - showResult(result); - } - return filter; - } - - private ObjectQuery addOrgMembersFilter(String oid, ObjectQuery query) { - ObjectFilter filter = OrgFilter.createOrg(oid, OrgFilter.Scope.ONE_LEVEL); - - TypeFilter roleTypeFilter = TypeFilter.createType(RoleType.COMPLEX_TYPE, filter); - TypeFilter serviceTypeFilter = TypeFilter.createType(ServiceType.COMPLEX_TYPE, filter); - query.addFilter(OrFilter.createOr(roleTypeFilter, serviceTypeFilter)); - return query; - - } - private void initCartButton(WebMarkupContainer parametersPanel){ AjaxButton cartButton = new AjaxButton(ID_CART_BUTTON) { private static final long serialVersionUID = 1L; @@ -520,42 +497,8 @@ public boolean isVisible() { cartButton.add(cartItemsCount); } - public void reloadCartButton(AjaxRequestTarget target) { - target.add(getHeaderPanel().get(ID_CART_BUTTON)); - } - - private boolean isCatalogOidEmpty(){ - return StringUtils.isEmpty(getRoleCatalogStorage().getShoppingCartConfigurationDto().getRoleCatalogOid()); - } - - - private WebMarkupContainer getCatalogItemsPanelContainer(){ - return (WebMarkupContainer)getContentPanel().get(ID_CATALOG_ITEMS_GRID_PANEL); - } - - private WebMarkupContainer getHeaderPanel(){ - return (WebMarkupContainer)get(createComponentPath(ID_MAIN_FORM, ID_HEADER_PANEL)); - } - - private WebMarkupContainer getContentPanel(){ - return (WebMarkupContainer)get(createComponentPath(ID_MAIN_FORM, ID_CONTENT_PANEL)); - } - - private boolean isAlreadyAssigned(PrismObject obj, AssignmentEditorDto assignmentDto){ - UserType user = getTargetUser(); - if (user == null || user.getAssignment() == null){ - return false; - } - boolean isAssigned = false; - List assignedRelationsList = new ArrayList<>(); - for (AssignmentType assignment : user.getAssignment()){ - if (assignment.getTargetRef() != null && assignment.getTargetRef().getOid().equals(obj.getOid())){ - isAssigned = true; - assignedRelationsList.add(RelationTypes.getRelationType(assignment.getTargetRef().getRelation())); - } - } - assignmentDto.setAssignedRelationsList(assignedRelationsList); - return isAssigned; + private TabbedPanel getTabbedPanel(){ + return (TabbedPanel) get(createComponentPath(ID_MAIN_FORM, ID_VIEWS_TAB_PANEL)); } private UserType getTargetUser(){ @@ -608,4 +551,8 @@ private List collectTargetObjectOids(List assignments){ return oidsList; } + private AjaxButton getCartButton(){ + return (AjaxButton) get(ID_MAIN_FORM).get(ID_PARAMETERS_PANEL).get(ID_CART_BUTTON); + } + } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/RoleCatalogTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/RoleCatalogTabPanel.java index 29948d61f3e..3dc36cd7def 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/RoleCatalogTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/RoleCatalogTabPanel.java @@ -15,6 +15,7 @@ */ package com.evolveum.midpoint.web.page.self; +import com.evolveum.midpoint.prism.query.*; import com.evolveum.midpoint.web.component.assignment.GridViewComponent; import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem; import com.evolveum.midpoint.web.component.util.SelectableBean; @@ -22,8 +23,8 @@ import com.evolveum.midpoint.web.page.admin.orgs.OrgTreePanel; import com.evolveum.midpoint.web.page.self.dto.AssignmentViewType; import com.evolveum.midpoint.web.session.OrgTreeStateStorage; -import com.evolveum.midpoint.xml.ns._public.common.common_3.AbstractRoleType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType; +import com.evolveum.midpoint.xml.ns._public.common.common_3.*; +import org.apache.commons.lang.StringUtils; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.behavior.AttributeAppender; import org.apache.wicket.markup.html.WebMarkupContainer; @@ -44,13 +45,15 @@ public class RoleCatalogTabPanel extends AbstractShoppingCartTabPanel selected, AjaxReque if (selectedOrg == null) { return; } -// getRoleCatalogStorage().setSelectedOid(selectedOrg.getOid()); -// target.add(getCatalogItemsPanelContainer()); + getRoleCatalogStorage().setSelectedOid(selectedOrg.getOid()); + target.add(getGridViewComponent()); + + } + + @Override + protected ObjectQuery createContentQuery(ObjectQuery searchQuery) { + ObjectQuery query = super.createContentQuery(searchQuery); + String oid = getRoleCatalogStorage().getSelectedOid(); + if (StringUtils.isEmpty(oid)) { + return searchQuery; + } + ObjectFilter filter = OrgFilter.createOrg(oid, OrgFilter.Scope.ONE_LEVEL); + TypeFilter roleTypeFilter = TypeFilter.createType(RoleType.COMPLEX_TYPE, filter); + TypeFilter serviceTypeFilter = TypeFilter.createType(ServiceType.COMPLEX_TYPE, filter); + query.addFilter(OrFilter.createOr(roleTypeFilter, serviceTypeFilter)); + return query; } @Override - protected QName getType(){ - return AbstractRoleType.COMPLEX_TYPE; + protected QName getQueryType(){ + return null; } } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/dto/ShoppingCartConfigurationDto.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/dto/ShoppingCartConfigurationDto.java index 581157b3693..f5369d30be4 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/dto/ShoppingCartConfigurationDto.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/dto/ShoppingCartConfigurationDto.java @@ -34,7 +34,6 @@ public class ShoppingCartConfigurationDto implements Serializable { private AssignmentViewType defaultViewType; private List viewTypeList; private String roleCatalogOid = null; - private AssignmentConstraintsType defaultAssignmentConstraints; // private boolean isUserAssignmentsViewAllowed = false; public void initShoppingCartConfigurationDto(RoleManagementConfigurationType roleManagementConfiguration) { @@ -50,7 +49,7 @@ public void initShoppingCartConfigurationDto(RoleManagementConfigurationType rol initRoleCatalogOid(roleManagementConfiguration); computeDefaultViewType(roleManagementConfiguration); - this.defaultAssignmentConstraints = roleManagementConfiguration.getDefaultAssignmentConstraints(); +// this.defaultAssignmentConstraints = roleManagementConfiguration.getDefaultAssignmentConstraints(); } private List getRoleCatalogViewsList(RoleManagementConfigurationType roleManagementConfiguration) { @@ -160,11 +159,4 @@ public void setRoleCatalogOid(String roleCatalogOid) { this.roleCatalogOid = roleCatalogOid; } - public AssignmentConstraintsType getDefaultAssignmentConstraints() { - return defaultAssignmentConstraints; - } - - public void setDefaultAssignmentConstraints(AssignmentConstraintsType defaultAssignmentConstraints) { - this.defaultAssignmentConstraints = defaultAssignmentConstraints; - } }