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

Reply via email to