Skip to content

Commit

Permalink
Merge branch 'master' of github.com:Evolveum/midpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
1azyman committed Feb 22, 2019
2 parents ede8085 + c230ea5 commit f9f870b
Show file tree
Hide file tree
Showing 7 changed files with 94 additions and 54 deletions.
Expand Up @@ -92,6 +92,9 @@ protected IModel<Boolean> getCheckBoxEnableModel(IModel<SelectableBean<O>> rowMo
@Override
protected ObjectQuery addFilterToContentQuery(ObjectQuery query) {
ObjectQuery queryWithFilters = AbstractPopupTabPanel.this.addFilterToContentQuery(query);
if (queryWithFilters == null){
queryWithFilters = getPrismContext().queryFactory().createQuery();
}
List<ObjectReferenceType> archetypeRefList = getArchetypeRefList();
if (!CollectionUtils.isEmpty(archetypeRefList)){
List<ObjectFilter> archetypeRefFilterList = new ArrayList<>();
Expand All @@ -105,14 +108,16 @@ protected ObjectQuery addFilterToContentQuery(ObjectQuery query) {
archetypeRefFilterList.add(filter);
}
if (!CollectionUtils.isEmpty(archetypeRefFilterList)){
if (queryWithFilters == null){
queryWithFilters = getPrismContext().queryFactory().createQuery();
}
OrFilter archetypeRefOrFilter =
AbstractPopupTabPanel.this.getPageBase().getPrismContext().queryFactory().createOr(archetypeRefFilterList);
queryWithFilters.addFilter(archetypeRefOrFilter);
}
}

ObjectFilter subTypeFilter = getSubtypeFilter();
if (subTypeFilter != null){
queryWithFilters.addFilter(subTypeFilter);
}
return queryWithFilters;
}

Expand Down Expand Up @@ -160,6 +165,10 @@ protected List<ObjectReferenceType> getArchetypeRefList(){
return null;
}

protected ObjectFilter getSubtypeFilter(){
return null;
}

protected boolean isObjectListPanelVisible(){
return true;
}
Expand Down
Expand Up @@ -19,6 +19,7 @@
import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.query.ObjectFilter;
import com.evolveum.midpoint.schema.constants.ObjectTypes;
import com.evolveum.midpoint.web.component.AjaxButton;
import com.evolveum.midpoint.web.component.TabbedPanel;
Expand Down Expand Up @@ -201,6 +202,11 @@ protected QName getPredefinedRelation() {
protected List<ObjectReferenceType> getArchetypeRefList(){
return AssignmentPopup.this.getArchetypeRefList();
}

@Override
protected ObjectFilter getSubtypeFilter(){
return AssignmentPopup.this.getSubtypeFilter();
}
};
}

Expand Down Expand Up @@ -246,6 +252,11 @@ protected QName getPredefinedRelation() {
protected List<ObjectReferenceType> getArchetypeRefList(){
return AssignmentPopup.this.getArchetypeRefList();
}

@Override
protected ObjectFilter getSubtypeFilter(){
return AssignmentPopup.this.getSubtypeFilter();
}
};
}

Expand Down Expand Up @@ -345,6 +356,10 @@ protected List<ObjectReferenceType> getArchetypeRefList(){
return null;
}

protected ObjectFilter getSubtypeFilter(){
return null;
}

private boolean isTabVisible(ObjectTypes objectType){
List<ObjectTypes> availableObjectTypesList = getAvailableObjectTypesList();
return availableObjectTypesList == null || availableObjectTypesList.size() == 0 || availableObjectTypesList.contains(objectType);
Expand Down
Expand Up @@ -422,6 +422,11 @@ protected List<ObjectReferenceType> getArchetypeRefList(){
return assignmentTargetRelation != null ? assignmentTargetRelation.getArchetypeRefs() : null;
}

@Override
protected ObjectFilter getSubtypeFilter(){
return AssignmentPanel.this.getSubtypeFilter();
}

@Override
protected boolean isEntitlementAssignment(){
return AssignmentPanel.this.isEntitlementAssignment();
Expand Down Expand Up @@ -936,4 +941,8 @@ protected boolean isAssignmentsLimitReached(int selectedAssignmentsCount, boolea
return actionPerformed ? (changedItems + selectedAssignmentsCount) > assignmentsRequestsLimit :
(changedItems + selectedAssignmentsCount) >= assignmentsRequestsLimit;
}

protected ObjectFilter getSubtypeFilter(){
return null;
}
}
Expand Up @@ -16,10 +16,17 @@
package com.evolveum.midpoint.web.component.assignment;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;

import com.evolveum.midpoint.prism.PrismConstants;
import com.evolveum.midpoint.prism.query.ObjectFilter;
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.prism.query.RefFilter;
import com.evolveum.midpoint.schema.util.FocusTypeUtil;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.RelationKindType;
import org.apache.wicket.model.IModel;

import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;
Expand Down Expand Up @@ -71,4 +78,22 @@ protected List<ContainerValueWrapper<AssignmentType>> customPostSearch(List<Cont
return resultList;
}

protected ObjectFilter getSubtypeFilter(){
ObjectFilter filter = getPageBase().getPrismContext().queryFor(OrgType.class)
.block()
.item(OrgType.F_SUBTYPE)
.contains("access")
.or()
.item(OrgType.F_ORG_TYPE)
.contains("access")
.endBlock()
.buildFilter();
return filter;
}

@Override
protected QName getAssignmentType() {
return OrgType.COMPLEX_TYPE;
}

}
Expand Up @@ -23,6 +23,7 @@
<div wicket:id="orgTypeAssignments" />
<div wicket:id="serviceTypeAssignments" />
<div wicket:id="resourceTypeAssignments" />
<div wicket:id="dataProtectionAssignments" />
<div wicket:id="policyRuleTypeAssignments" />
<div wicket:id="entitlementAssignments" />
<div wicket:id="focusMappingAssignments" />
Expand Down
Expand Up @@ -18,6 +18,7 @@
import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.gui.api.model.LoadableModel;
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.ObjectFilter;
import com.evolveum.midpoint.prism.query.ObjectQuery;
Expand Down Expand Up @@ -65,6 +66,7 @@ public class SwitchAssignmentTypePanel extends BasePanel<ContainerWrapper<Assign
private static final String ID_FOCUS_MAPPING_ASSIGNMENTS = "focusMappingAssignments";
private static final String ID_CONSENT_ASSIGNMENTS = "consentAssignments";
private static final String ID_ASSIGNMENTS = "assignmentsPanel";
private static final String ID_DATA_PROTECTION_ASSIGNMENTS = "dataProtectionAssignments";

private String activeButtonId = ID_ALL_ASSIGNMENTS;

Expand Down Expand Up @@ -268,6 +270,36 @@ protected void cancelAssignmentDetailsPerformed(AjaxRequestTarget target) {
getModelObject().getObjectWrapper().getObject().asObjectable() instanceof AbstractRoleType));
buttonsContainer.add(policyRuleTypeAssignmentsButton);

AjaxButton dataProtectionButton = new AjaxButton(ID_DATA_PROTECTION_ASSIGNMENTS, createStringResource("pageAdminFocus.dataProtection")) {
private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target) {
GenericAbstractRoleAssignmentPanel dataProtectionPanel =
new GenericAbstractRoleAssignmentPanel(ID_ASSIGNMENTS, SwitchAssignmentTypePanel.this.getModel()) {
private static final long serialVersionUID = 1L;

@Override
protected void assignmentDetailsPerformed(AjaxRequestTarget target) {
target.add(SwitchAssignmentTypePanel.this);
}

@Override
protected void cancelAssignmentDetailsPerformed(AjaxRequestTarget target) {
target.add(SwitchAssignmentTypePanel.this);
}
};
dataProtectionPanel.setOutputMarkupId(true);
switchAssignmentTypePerformed(target, dataProtectionPanel, ID_DATA_PROTECTION_ASSIGNMENTS);

}
};
dataProtectionButton.add(AttributeAppender.append("class", getButtonStyleModel(ID_DATA_PROTECTION_ASSIGNMENTS)));
dataProtectionButton.setOutputMarkupId(true);
dataProtectionButton.add(new VisibleBehaviour(() ->
WebModelServiceUtils.isEnableExperimentalFeature(SwitchAssignmentTypePanel.this.getPageBase())));
buttonsContainer.add(dataProtectionButton);

AjaxButton entitlementAssignmentsButton = new AjaxButton(ID_ENTITLEMENT_ASSIGNMENTS, createStringResource("AbstractRoleMainPanel.inducedEntitlements")) {
private static final long serialVersionUID = 1L;

Expand Down
Expand Up @@ -209,18 +209,6 @@ protected WebMarkupContainer createFocusAssignmentsTabPanel(String panelId, Page
assignmentsTabPanel = new FocusAssignmentsTabPanel<>(panelId, getMainForm(), getObjectModel(), parentPage);
return assignmentsTabPanel;
}

// protected WebMarkupContainer createFocusDataProtectionTabPanel(String panelId, PageAdminObjectDetails<F> parentPage) {
// assignmentsTabPanel = new FocusAssignmentsTabPanel<F>(panelId, getMainForm(), getObjectModel(), parentPage) {
//
// @Override
// protected SwitchAssignmentTypePanel createPanel(String panelId, ContainerWrapperFromObjectWrapperModel<AssignmentType, F> model) {
// return new GenericAbstractRoleAssignmentPanel(panelId, model);
// }
//
// };
// return assignmentsTabPanel;
// }

protected WebMarkupContainer createObjectHistoryTabPanel(String panelId, PageAdminObjectDetails<F> parentPage) {
return new ObjectHistoryTabPanel<F>(panelId, getMainForm(), getObjectModel(), parentPage){
Expand Down Expand Up @@ -294,45 +282,6 @@ public String getCount() {
return Integer.toString(countAssignments());
}
});

authorization = new FocusTabVisibleBehavior<>(unwrapModel(), ComponentConstants.UI_FOCUS_TAB_ASSIGNMENTS_URL, false, isFocusHistoryPage(), parentPage);

if (WebModelServiceUtils.isEnableExperimentalFeature(parentPage)) {
// tabs.add(new CountablePanelTab(parentPage.createStringResource("pageAdminFocus.dataProtection"), authorization) {
//
// private static final long serialVersionUID = 1L;
//
// @Override
// public WebMarkupContainer createPanel(String panelId) {
// return createFocusDataProtectionTabPanel(panelId, parentPage);
// }
//
// @Override
// public String getCount() {
// PrismObject<F> focus = getObjectModel().getObject().getObject();
// List<AssignmentType> assignments = focus.asObjectable().getAssignment();
// int count = 0;
// for (AssignmentType assignment : assignments) {
// if (assignment.getTargetRef() == null) {
// continue;
// }
// if (QNameUtil.match(assignment.getTargetRef().getType(), OrgType.COMPLEX_TYPE)) {
// Task task = parentPage.createSimpleTask("load data protection obejcts");
// PrismObject<OrgType> org = WebModelServiceUtils.loadObject(assignment.getTargetRef(), parentPage,
// task, task.getResult());
//
// if (org != null) {
// if (FocusTypeUtil.determineSubTypes(org).contains("access")) {
// count++;
// }
// }
// }
// }
//
// return String.valueOf(count);
// }
// });
}

if (WebComponentUtil.isAuthorized(ModelAuthorizationAction.AUDIT_READ.getUrl()) && getObjectWrapper().getStatus() != ContainerStatus.ADDING){
authorization = new FocusTabVisibleBehavior<>(unwrapModel(), ComponentConstants.UI_FOCUS_TAB_OBJECT_HISTORY_URL, false, isFocusHistoryPage(), parentPage);
Expand Down

0 comments on commit f9f870b

Please sign in to comment.