diff --git a/ccm-core/src/main/java/org/libreccm/security/GroupImExporter.java b/ccm-core/src/main/java/org/libreccm/security/GroupImExporter.java index 939c016bf..7bc7a55df 100644 --- a/ccm-core/src/main/java/org/libreccm/security/GroupImExporter.java +++ b/ccm-core/src/main/java/org/libreccm/security/GroupImExporter.java @@ -27,6 +27,7 @@ import java.util.Set; import javax.enterprise.context.RequestScoped; import javax.inject.Inject; +import javax.persistence.EntityManager; import javax.transaction.Transactional; /** @@ -35,8 +36,11 @@ import javax.transaction.Transactional; */ @RequestScoped @Processes(Group.class) -public class GroupImExporter extends AbstractEntityImExporter{ - +public class GroupImExporter extends AbstractEntityImExporter { + + @Inject + private EntityManager entityManager; + @Inject private GroupRepository groupRepository; @@ -44,15 +48,16 @@ public class GroupImExporter extends AbstractEntityImExporter{ protected Class getEntityClass() { return Group.class; } - + @Override @Transactional(Transactional.TxType.REQUIRED) protected void saveImportedEntity(final Group entity) { entity.setPartyId(0); - groupRepository.save(entity); +// groupRepository.save(entity); + entityManager.persist(entity); } - + @Override protected Set> getRequiredEntities() { diff --git a/ccm-core/src/main/java/org/libreccm/security/PermissionManager.java b/ccm-core/src/main/java/org/libreccm/security/PermissionManager.java index 8828b2833..1b7e3b7dc 100644 --- a/ccm-core/src/main/java/org/libreccm/security/PermissionManager.java +++ b/ccm-core/src/main/java/org/libreccm/security/PermissionManager.java @@ -367,6 +367,7 @@ public class PermissionManager implements Serializable { permission.setObject(object); permission.setInherited(true); permission.setInheritedFrom(inheritedFrom); + permission.setUuid(UUID.randomUUID().toString()); entityManager.persist(permission); @@ -405,6 +406,7 @@ public class PermissionManager implements Serializable { permission.setGrantee(grantee); permission.setGrantedPrivilege(privilege); permission.setObject(null); + permission.setUuid(UUID.randomUUID().toString()); entityManager.persist(permission); } diff --git a/ccm-core/src/main/java/org/libreccm/security/UserImExporter.java b/ccm-core/src/main/java/org/libreccm/security/UserImExporter.java index b78dc82a7..112292ae4 100644 --- a/ccm-core/src/main/java/org/libreccm/security/UserImExporter.java +++ b/ccm-core/src/main/java/org/libreccm/security/UserImExporter.java @@ -27,6 +27,7 @@ import java.util.Set; import javax.enterprise.context.RequestScoped; import javax.inject.Inject; +import javax.persistence.EntityManager; import javax.transaction.Transactional; /** @@ -37,6 +38,9 @@ import javax.transaction.Transactional; @Processes(User.class) public class UserImExporter extends AbstractEntityImExporter { + @Inject + private EntityManager entityManager; + @Inject private UserRepository userRepository; @@ -51,7 +55,8 @@ public class UserImExporter extends AbstractEntityImExporter { // Reset partyId. entity.setPartyId(0); - userRepository.save(entity); +// userRepository.save(entity); + entityManager.persist(entity); } @Override diff --git a/ccm-core/src/test/java/org/libreccm/imexport/GroupImportTest.java b/ccm-core/src/test/java/org/libreccm/imexport/GroupImportTest.java index c761f46d4..dd7b020f5 100644 --- a/ccm-core/src/test/java/org/libreccm/imexport/GroupImportTest.java +++ b/ccm-core/src/test/java/org/libreccm/imexport/GroupImportTest.java @@ -81,9 +81,9 @@ public class GroupImportTest { + "/org.libreccm.imexport.GroupImportTest" + "/ccm-export.json"; private static final String IMPORT_GROUPS_TOC_SOURCE = "/imports" - + "/org.libreccm.imexport.GroupImportTest" - + "/org.libreccm.security.Group" - + "/org.libreccm.security.Group.json"; + + "/org.libreccm.imexport.GroupImportTest" + + "/org.libreccm.security.Group" + + "/org.libreccm.security.Group.json"; private static final String IMPORT_DATA_SOURCE = "/imports" + "/org.libreccm.imexport.GroupImportTest" + "/org.libreccm.security.Group" @@ -93,7 +93,7 @@ public class GroupImportTest { private static final String CCM_TESTS_DIR = TMP_DIR + "/ccm-tests"; private static final String IMPORTS_DIR = CCM_TESTS_DIR + "/imports"; private static final String GROUP_IMPORT_TEST_DIR = IMPORTS_DIR - + "/org.libreccm.imexport.GroupImportTest"; + + "/org.libreccm.imexport.GroupImportTest"; private static final String IMPORT_DATA_DIR = GROUP_IMPORT_TEST_DIR + "/org.libreccm.security.Group"; @@ -281,9 +281,11 @@ public class GroupImportTest { @Test @UsingDataSet("datasets/org/libreccm/imexport/GroupImportTest/data.yml") - @ShouldMatchDataSet(value = "datasets/org/libreccm/imexport/GroupImportTest" - + "/after-import-single-group.yml", - excludeColumns = {"party_id"} + @ShouldMatchDataSet( + excludeColumns = {"party_id"}, + orderBy = {"groups.group_id", "parties.party_id"}, + value = "datasets/org/libreccm/imexport/GroupImportTest" + + "/after-import-single-group.yml" ) @InSequence(200) public void importSingleGroup() { diff --git a/ccm-core/src/test/java/org/libreccm/imexport/UserImportTest.java b/ccm-core/src/test/java/org/libreccm/imexport/UserImportTest.java index b127f7b65..463a16c4a 100644 --- a/ccm-core/src/test/java/org/libreccm/imexport/UserImportTest.java +++ b/ccm-core/src/test/java/org/libreccm/imexport/UserImportTest.java @@ -102,7 +102,7 @@ public class UserImportTest { @Inject private ImportExport importExport; - + @Inject private Shiro shiro; @@ -280,15 +280,18 @@ public class UserImportTest { @Test @UsingDataSet("datasets/org/libreccm/imexport/UserImportTest/data.yml") - @ShouldMatchDataSet(value = "datasets/org/libreccm/imexport/UserImportTest" - + "/after-import-single-user.yml", - excludeColumns = {"party_id"} + @ShouldMatchDataSet( + excludeColumns = {"party_id"}, + orderBy = {"users.user_id", "parties.party_id"}, + value = "datasets/org/libreccm/imexport/UserImportTest" + + "/after-import-single-user.yml" ) @InSequence(200) public void importSingleUser() { - shiro.getSystemUser().execute(() -> - importExport.importEntities("org.libreccm.imexport.UserImportTest") + shiro.getSystemUser().execute(() + -> importExport.importEntities( + "org.libreccm.imexport.UserImportTest") ); } diff --git a/ccm-core/src/test/java/org/libreccm/security/PermissionManagerTest.java b/ccm-core/src/test/java/org/libreccm/security/PermissionManagerTest.java index b1dc55766..6d4d7d088 100644 --- a/ccm-core/src/test/java/org/libreccm/security/PermissionManagerTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/PermissionManagerTest.java @@ -179,9 +179,11 @@ public class PermissionManagerTest { @UsingDataSet( "datasets/org/libreccm/security/PermissionManagerTest/data.yml") @ShouldMatchDataSet( + excludeColumns = {"permission_id", "uuid"}, + orderBy = {"permissions.permission_id"}, value = "datasets/org/libreccm/security/PermissionManagerTest/" - + "after-grant.yml", - excludeColumns = {"permission_id"}) + + "after-grant.yml" + ) @InSequence(200) public void grantPermission() { final Role role2 = roleRepository.findByName("role2").get(); @@ -226,9 +228,11 @@ public class PermissionManagerTest { @UsingDataSet("datasets/org/libreccm/security/PermissionManagerTest/" + "data-recursivly.yml") @ShouldMatchDataSet( + excludeColumns = {"permission_id", "uuid"}, + orderBy = {"permissions.permission_id"}, value = "datasets/org/libreccm/security/PermissionManagerTest/" - + "after-grant-recursivly.yml", - excludeColumns = {"permission_id"}) + + "after-grant-recursivly.yml" + ) @InSequence(211) public void grantPermissionRecursively() { final Role role1 = roleRepository.findByName("role1").get(); @@ -688,7 +692,7 @@ public class PermissionManagerTest { @ShouldMatchDataSet( value = "datasets/org/libreccm/security/PermissionManagerTest/" + "after-copy.yml", - excludeColumns = {"permission_id"}) + excludeColumns = {"permission_id", "uuid"}) @InSequence(400) public void copyPermissions() throws Throwable { final CcmObject object2 = ccmObjectRepository.findById(20002L).get();