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
semancik committed Oct 23, 2017
2 parents f534893 + 2488475 commit ff0ea04
Show file tree
Hide file tree
Showing 9 changed files with 33 additions and 292 deletions.
Expand Up @@ -15,12 +15,17 @@
*/
package com.evolveum.midpoint.web.component.objectdetails;

import java.util.ArrayList;
import java.util.List;

import org.apache.wicket.extensions.markup.html.tabs.ITab;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.model.Model;

import com.evolveum.midpoint.gui.api.ComponentConstants;
import com.evolveum.midpoint.gui.api.component.tabs.PanelTab;
import com.evolveum.midpoint.gui.api.model.CountableLoadableModel;
import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.util.FocusTabVisibleBehavior;
import com.evolveum.midpoint.web.component.assignment.AssignmentDto;
import com.evolveum.midpoint.web.component.assignment.AssignmentEditorDto;
import com.evolveum.midpoint.web.component.assignment.RelationTypes;
import com.evolveum.midpoint.web.component.prism.ContainerStatus;
Expand All @@ -29,18 +34,10 @@
import com.evolveum.midpoint.web.page.admin.PageAdminObjectDetails;
import com.evolveum.midpoint.web.page.admin.roles.RoleGovernanceRelationsPanel;
import com.evolveum.midpoint.web.page.admin.roles.RoleMemberPanel;
import com.evolveum.midpoint.web.page.admin.roles.RolePolicyPanel;
import com.evolveum.midpoint.web.page.admin.users.component.AbstractRoleMemberPanel;
import com.evolveum.midpoint.web.page.admin.users.dto.FocusSubwrapperDto;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.RoleType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType;
import org.apache.wicket.extensions.markup.html.tabs.ITab;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.model.Model;

import java.util.ArrayList;
import java.util.List;

/**
* @author semancik
Expand Down Expand Up @@ -80,16 +77,7 @@ public boolean isVisible() {
authorization = new FocusTabVisibleBehavior(unwrapModel(),
ComponentConstants.UI_FOCUS_TAB_POLICY_CONSTRAINTS_URL);

tabs.add(new PanelTab(parentPage.createStringResource("AbstractRoleType.policyConstraints"), authorization) {

private static final long serialVersionUID = 1L;

@Override
public WebMarkupContainer createPanel(String panelId) {
return new RolePolicyPanel(panelId, getObject());
}
});


authorization = new FocusTabVisibleBehavior(unwrapModel(),
ComponentConstants.UI_FOCUS_TAB_MEMBERS_URL);

Expand Down
Expand Up @@ -630,11 +630,15 @@ public boolean isVisible() {
return false;
}

if (def.isDeprecated() && containerValue.isEmpty()) {
return false;
}

if (def.getTypeName().equals(MetadataType.COMPLEX_TYPE)) {
return isShowMetadata();
}

// TODO: emphasized
// TODO: emphasized
switch (status) {
case NOT_CHANGED:
return canReadAndModify(def) || showEmptyCanReadAndModify(def);
Expand Down
Expand Up @@ -457,7 +457,13 @@ public boolean isVisible() {
if (def.isIgnored() || (def.isOperational()) && (!def.getTypeName().equals(MetadataType.COMPLEX_TYPE))) {
return false;
}

if (def.isDeprecated() && isEmpty()) {
return false;
}

//TODO: is this correct place? shouldn't we restrict creation for multivalue containers
//dirrectly in factory? this can plausible cause problems while computing deltas.
if (!getItem().isSingleValue() && isEmpty() && ContainerStatus.MODIFYING.equals(status)){
return false;
}
Expand Down
Expand Up @@ -432,6 +432,10 @@ private boolean skipProperty(ItemDefinition<? extends Item> def) {
names.add(OrgType.F_APPROVER_EXPRESSION);
names.add(OrgType.F_AUTOMATICALLY_APPROVED);
names.add(OrgType.F_CONDITION);
// focus
names.add(FocusType.F_LINK);
names.add(FocusType.F_LINK_REF);
names.add(FocusType.F_PERSONA_REF);

for (QName name : names) {
if (name.equals(def.getName())) {
Expand Down
Expand Up @@ -92,6 +92,11 @@ public boolean isVisible() {
if (getItemDefinition().isOperational() && !isMetadataContainer()) { // TODO ...or use itemDefinition instead?
return false;
}

if (getItemDefinition().isDeprecated() && isEmpty()) {
return false;
}

switch (status) {
case ADDED :
return canAddDefault() || canAddAndShowEmpty();
Expand Down
Expand Up @@ -67,82 +67,6 @@ public PageRole(PageParameters parameters) {
}


/**
* Removes empty policy constraints from role. It was created when loading
* model (not very good model implementation). MID-2366
*
* TODO improve
*
* @param prism
*/
private void removeEmptyPolicyConstraints(PrismObject<RoleType> prism) {
RoleType role = prism.asObjectable();
PolicyConstraintsType pc = role.getPolicyConstraints();
if (pc == null) {
return;
}

if (pc.getExclusion().isEmpty() && pc.getMinAssignees().isEmpty() && pc.getMaxAssignees().isEmpty()) {
role.setPolicyConstraints(null);
}
}

@Override
protected void prepareObjectDeltaForModify(ObjectDelta<RoleType> focusDelta) throws SchemaException {
super.prepareObjectDeltaForModify(focusDelta);

ObjectDelta<RoleType> delta = getObjectWrapper().getObjectOld().diff(getObjectWrapper().getObject());

ContainerDelta<PolicyConstraintsType> policyConstraintsDelta = delta
.findContainerDelta(new ItemPath(RoleType.F_POLICY_CONSTRAINTS));
if (policyConstraintsDelta != null) {
focusDelta.addModification(policyConstraintsDelta);
return;
}

ContainerDelta maxAssignes = delta.findContainerDelta(
new ItemPath(RoleType.F_POLICY_CONSTRAINTS, PolicyConstraintsType.F_MAX_ASSIGNEES));
if (maxAssignes != null) {
focusDelta.addModification(maxAssignes);
}

ContainerDelta minAssignes = delta.findContainerDelta(
new ItemPath(RoleType.F_POLICY_CONSTRAINTS, PolicyConstraintsType.F_MIN_ASSIGNEES));
if (minAssignes != null) {
focusDelta.addModification(minAssignes);
}

}

@Override
protected void prepareObjectForAdd(PrismObject<RoleType> focus) throws SchemaException {
// TODO policyConstraints
super.prepareObjectForAdd(focus);

getObjectWrapper().getObjectOld().findOrCreateContainer(RoleType.F_POLICY_CONSTRAINTS);
ObjectDelta<RoleType> delta = getObjectWrapper().getObjectOld().diff(getObjectWrapper().getObject());

ContainerDelta<PolicyConstraintsType> policyConstraintsDelta = delta
.findContainerDelta(new ItemPath(RoleType.F_POLICY_CONSTRAINTS));
if (policyConstraintsDelta != null) {
policyConstraintsDelta.applyTo(focus);
return;
}

ContainerDelta maxAssignes = delta.findContainerDelta(
new ItemPath(RoleType.F_POLICY_CONSTRAINTS, PolicyConstraintsType.F_MAX_ASSIGNEES));
if (maxAssignes != null) {
maxAssignes.applyTo(focus);
}

ContainerDelta minAssignes = delta.findContainerDelta(
new ItemPath(RoleType.F_POLICY_CONSTRAINTS, PolicyConstraintsType.F_MIN_ASSIGNEES));
if (minAssignes != null) {
minAssignes.applyTo(focus);
}

}

@Override
protected RoleType createNewObject() {
return new RoleType();
Expand Down

This file was deleted.

This file was deleted.

0 comments on commit ff0ea04

Please sign in to comment.