You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by sk...@apache.org on 2017/07/31 14:59:16 UTC
syncope git commit: [SYNCOPE-1170] Can't remove a Dynamic USER
assignment
Repository: syncope
Updated Branches:
refs/heads/2_0_X e95f373cd -> f350ccc16
[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/f350ccc1
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/f350ccc1
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/f350ccc1
Branch: refs/heads/2_0_X
Commit: f350ccc16c21175c19d9359496fb6a1b52a32b85
Parents: e95f373
Author: skylark17 <ma...@tirasa.net>
Authored: Mon Jul 31 16:58:12 2017 +0200
Committer: skylark17 <ma...@tirasa.net>
Committed: Mon Jul 31 16:58:12 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/f350ccc1/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/f350ccc1/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;
}
}