You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2013/04/19 11:34:32 UTC

svn commit: r1469758 - in /syncope/branches/1_1_X: console/src/main/java/org/apache/syncope/console/pages/ console/src/main/java/org/apache/syncope/console/pages/panels/ core/src/main/java/org/apache/syncope/core/rest/data/ core/src/test/java/org/apach...

Author: ilgrosso
Date: Fri Apr 19 09:34:32 2013
New Revision: 1469758

URL: http://svn.apache.org/r1469758
Log:
[SYNCOPE-361] Handling mapping reset

Modified:
    syncope/branches/1_1_X/console/src/main/java/org/apache/syncope/console/pages/ResourceModalPage.java
    syncope/branches/1_1_X/console/src/main/java/org/apache/syncope/console/pages/panels/ResourceMappingPanel.java
    syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/rest/data/ResourceDataBinder.java
    syncope/branches/1_1_X/core/src/test/java/org/apache/syncope/core/persistence/relationships/ResourceTest.java
    syncope/branches/1_1_X/core/src/test/java/org/apache/syncope/core/rest/ResourceTestITCase.java

Modified: syncope/branches/1_1_X/console/src/main/java/org/apache/syncope/console/pages/ResourceModalPage.java
URL: http://svn.apache.org/viewvc/syncope/branches/1_1_X/console/src/main/java/org/apache/syncope/console/pages/ResourceModalPage.java?rev=1469758&r1=1469757&r2=1469758&view=diff
==============================================================================
--- syncope/branches/1_1_X/console/src/main/java/org/apache/syncope/console/pages/ResourceModalPage.java (original)
+++ syncope/branches/1_1_X/console/src/main/java/org/apache/syncope/console/pages/ResourceModalPage.java Fri Apr 19 09:34:32 2013
@@ -102,7 +102,7 @@ public class ResourceModalPage extends B
 
                 boolean accountIdError = false;
 
-                if (resourceTO.getUmapping().getItems().isEmpty()) {
+                if (resourceTO.getUmapping() == null || resourceTO.getUmapping().getItems().isEmpty()) {
                     resourceTO.setUmapping(null);
                 } else {
                     int uAccountIdCount = 0;
@@ -114,7 +114,7 @@ public class ResourceModalPage extends B
                     accountIdError = uAccountIdCount != 1;
                 }
 
-                if (resourceTO.getRmapping().getItems().isEmpty()) {
+                if (resourceTO.getRmapping() == null || resourceTO.getRmapping().getItems().isEmpty()) {
                     resourceTO.setRmapping(null);
                 } else {
                     int rAccountIdCount = 0;

Modified: syncope/branches/1_1_X/console/src/main/java/org/apache/syncope/console/pages/panels/ResourceMappingPanel.java
URL: http://svn.apache.org/viewvc/syncope/branches/1_1_X/console/src/main/java/org/apache/syncope/console/pages/panels/ResourceMappingPanel.java?rev=1469758&r1=1469757&r2=1469758&view=diff
==============================================================================
--- syncope/branches/1_1_X/console/src/main/java/org/apache/syncope/console/pages/panels/ResourceMappingPanel.java (original)
+++ syncope/branches/1_1_X/console/src/main/java/org/apache/syncope/console/pages/panels/ResourceMappingPanel.java Fri Apr 19 09:34:32 2013
@@ -273,7 +273,6 @@ public class ResourceMappingPanel extend
             }
         });
 
-
         mappings = new ListView<MappingItemTO>("mappings", getMapping().getItems()) {
 
             private static final long serialVersionUID = 4949588177564901031L;

Modified: syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/rest/data/ResourceDataBinder.java
URL: http://svn.apache.org/viewvc/syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/rest/data/ResourceDataBinder.java?rev=1469758&r1=1469757&r2=1469758&view=diff
==============================================================================
--- syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/rest/data/ResourceDataBinder.java (original)
+++ syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/rest/data/ResourceDataBinder.java Fri Apr 19 09:34:32 2013
@@ -105,13 +105,17 @@ public class ResourceDataBinder {
 
         resource.setPropagationMode(resourceTO.getPropagationMode());
 
-        if (resourceTO.getUmapping() != null) {
+        if (resourceTO.getUmapping() == null || resourceTO.getUmapping().getItems().isEmpty()) {
+            resource.setUmapping(null);
+        } else {
             UMapping mapping = new UMapping();
             mapping.setResource(resource);
             resource.setUmapping(mapping);
             populateMapping(resourceTO.getUmapping(), mapping, new UMappingItem());
         }
-        if (resourceTO.getRmapping() != null) {
+        if (resourceTO.getRmapping() == null || resourceTO.getRmapping().getItems().isEmpty()) {
+            resource.setRmapping(null);
+        } else {
             RMapping mapping = new RMapping();
             mapping.setResource(resource);
             resource.setRmapping(mapping);

Modified: syncope/branches/1_1_X/core/src/test/java/org/apache/syncope/core/persistence/relationships/ResourceTest.java
URL: http://svn.apache.org/viewvc/syncope/branches/1_1_X/core/src/test/java/org/apache/syncope/core/persistence/relationships/ResourceTest.java?rev=1469758&r1=1469757&r2=1469758&view=diff
==============================================================================
--- syncope/branches/1_1_X/core/src/test/java/org/apache/syncope/core/persistence/relationships/ResourceTest.java (original)
+++ syncope/branches/1_1_X/core/src/test/java/org/apache/syncope/core/persistence/relationships/ResourceTest.java Fri Apr 19 09:34:32 2013
@@ -24,9 +24,11 @@ import static org.junit.Assert.assertNot
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
+import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+import javax.persistence.EntityManager;
 
 import org.apache.syncope.common.types.IntMappingType;
 import org.apache.syncope.common.types.MappingPurpose;
@@ -34,6 +36,7 @@ import org.apache.syncope.core.persisten
 import org.apache.syncope.core.persistence.beans.ExternalResource;
 import org.apache.syncope.core.persistence.beans.PasswordPolicy;
 import org.apache.syncope.core.persistence.beans.PropagationTask;
+import org.apache.syncope.core.persistence.beans.role.RMappingItem;
 import org.apache.syncope.core.persistence.beans.user.SyncopeUser;
 import org.apache.syncope.core.persistence.beans.user.UMapping;
 import org.apache.syncope.core.persistence.beans.user.UMappingItem;
@@ -51,6 +54,9 @@ import org.springframework.transaction.a
 public class ResourceTest extends AbstractDAOTest {
 
     @Autowired
+    private EntityManager entityManager;
+
+    @Autowired
     private ResourceDAO resourceDAO;
 
     @Autowired
@@ -241,6 +247,31 @@ public class ResourceTest extends Abstra
     }
 
     @Test
+    public void emptyMapping() {
+        ExternalResource ldap = resourceDAO.find("resource-ldap");
+        assertNotNull(ldap);
+        assertNotNull(ldap.getUmapping());
+        assertNotNull(ldap.getRmapping());
+
+        List<RMappingItem> items = ldap.getRmapping().<RMappingItem>getItems();
+        assertNotNull(items);
+        assertFalse(items.isEmpty());
+        List<Long> itemIds = new ArrayList<Long>(items.size());
+        for (RMappingItem item : items) {
+            itemIds.add(item.getId());
+        }
+
+        ldap.setRmapping(null);
+
+        resourceDAO.save(ldap);
+        resourceDAO.flush();
+
+        for (Long itemId : itemIds) {
+            assertNull(entityManager.find(RMappingItem.class, itemId));
+        }
+    }
+
+    @Test
     public void issue243() {
         ExternalResource csv = resourceDAO.find("resource-csv");
         assertNotNull(csv);

Modified: syncope/branches/1_1_X/core/src/test/java/org/apache/syncope/core/rest/ResourceTestITCase.java
URL: http://svn.apache.org/viewvc/syncope/branches/1_1_X/core/src/test/java/org/apache/syncope/core/rest/ResourceTestITCase.java?rev=1469758&r1=1469757&r2=1469758&view=diff
==============================================================================
--- syncope/branches/1_1_X/core/src/test/java/org/apache/syncope/core/rest/ResourceTestITCase.java (original)
+++ syncope/branches/1_1_X/core/src/test/java/org/apache/syncope/core/rest/ResourceTestITCase.java Fri Apr 19 09:34:32 2013
@@ -18,6 +18,7 @@
  */
 package org.apache.syncope.core.rest;
 
+import static org.apache.syncope.core.rest.AbstractTest.getUUIDString;
 import static org.junit.Assert.*;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -440,6 +441,23 @@ public class ResourceTestITCase extends 
         }
     }
 
+    @Test
+    public void issueSYNCOPE360() {
+        final String name = "SYNCOPE360-" + getUUIDString();
+        resourceService.create(buildResourceTO(name));
+
+        ResourceTO resource = resourceService.read(name);
+        assertNotNull(resource);
+        assertNotNull(resource.getUmapping());
+
+        resource.setUmapping(new MappingTO());
+        resourceService.update(name, resource);
+
+        resource = resourceService.read(name);
+        assertNotNull(resource);
+        assertNull(resource.getUmapping());
+    }
+
     private ResourceTO buildResourceTO(String resourceName) {
         ResourceTO resourceTO = new ResourceTO();