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;
     }
 
 }