Repository: syncope Updated Branches: refs/heads/master 7ad5d19b9 -> b88a7565f
[SYNCOPE-1170] Can't remove a Dynamic USER assignment Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/b88a7565 Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/b88a7565 Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/b88a7565 Branch: refs/heads/master Commit: b88a7565f964d476f4626efc722b49d551c2eaaf Parents: 7ad5d19 Author: skylark17 <matteo.alessandr...@tirasa.net> Authored: Mon Jul 31 16:58:12 2017 +0200 Committer: skylark17 <matteo.alessandr...@tirasa.net> Committed: Mon Jul 31 17:02:03 2017 +0200 ---------------------------------------------------------------------- .../console/wizards/any/GroupWizardBuilder.java | 17 ++++++++++++++++- .../syncope/common/lib/patch/GroupPatch.java | 3 +-- 2 files changed, 17 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/b88a7565/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java index e5cb435..94b3d37 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java @@ -20,6 +20,8 @@ package org.apache.syncope.client.console.wizards.any; import java.io.Serializable; import java.util.List; +import org.apache.commons.lang3.StringUtils; +import org.apache.cxf.common.util.CollectionUtils; import org.apache.syncope.client.console.layout.GroupForm; import org.apache.syncope.client.console.layout.GroupFormLayoutInfo; import org.apache.syncope.client.console.rest.GroupRestClient; @@ -71,8 +73,21 @@ public class GroupWizardBuilder extends AnyWizardBuilder<GroupTO> implements Gro actual = groupRestClient.create(inner); } else { GroupPatch patch = AnyOperations.diff(inner, getOriginalItem().getInnerObject(), false); + GroupTO originaObj = getOriginalItem().getInnerObject(); + + // SYNCOPE-1170 + boolean othersNotEqualsOrBlanks = + !inner.getADynMembershipConds().equals(originaObj.getADynMembershipConds()) + || (StringUtils.isNotBlank(originaObj.getUDynMembershipCond()) && StringUtils.isBlank(inner. + getUDynMembershipCond())) + || (StringUtils.isBlank(originaObj.getUDynMembershipCond()) && StringUtils.isNotBlank(inner. + getUDynMembershipCond())) + || StringUtils.isAllBlank(originaObj.getUDynMembershipCond(), inner.getUDynMembershipCond()) + || !inner.getUDynMembershipCond().equals(originaObj.getUDynMembershipCond()) + || !CollectionUtils.diff(inner.getTypeExtensions(), originaObj.getTypeExtensions()).isEmpty(); + // update just if it is changed - if (patch.isEmpty()) { + if (patch.isEmpty() && !othersNotEqualsOrBlanks) { actual = new ProvisioningResult<>(); actual.setEntity(inner); } else { http://git-wip-us.apache.org/repos/asf/syncope/blob/b88a7565/common/lib/src/main/java/org/apache/syncope/common/lib/patch/GroupPatch.java ---------------------------------------------------------------------- diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/GroupPatch.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/GroupPatch.java index 29353ff..0cf5f31 100644 --- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/GroupPatch.java +++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/GroupPatch.java @@ -112,8 +112,7 @@ public class GroupPatch extends AnyPatch { @Override public boolean isEmpty() { return super.isEmpty() - && name == null && userOwner == null && groupOwner == null - && udynMembershipCond == null && adynMembershipConds.isEmpty() && typeExtensions.isEmpty(); + && name == null && userOwner == null && groupOwner == null; } }