Repository: syncope Updated Branches: refs/heads/2_0_X 57511d6e7 -> a0b8995bf refs/heads/master 0c2e4ba0c -> 828d1bc1d
Completing the work for SYNCOPE-1249 with pull support Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/a0b8995b Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/a0b8995b Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/a0b8995b Branch: refs/heads/2_0_X Commit: a0b8995bfcd6eabfb81dc6735d5d97d0369f3e4a Parents: 57511d6 Author: Francesco Chicchiriccò <[email protected]> Authored: Tue Jan 16 11:18:16 2018 +0100 Committer: Francesco Chicchiriccò <[email protected]> Committed: Tue Jan 16 11:18:16 2018 +0100 ---------------------------------------------------------------------- .../core/persistence/jpa/outer/PlainSchemaTest.java | 4 ++-- .../src/test/resources/domains/MasterContent.xml | 3 +++ .../core/provisioning/java/MappingManagerImpl.java | 7 +++++++ fit/build-tools/src/main/resources/testdb.sql | 1 + .../java/org/apache/syncope/fit/core/PullTaskITCase.java | 10 +++++----- 5 files changed, 18 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/a0b8995b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/PlainSchemaTest.java ---------------------------------------------------------------------- diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/PlainSchemaTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/PlainSchemaTest.java index 5d8f021..957adf5 100644 --- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/PlainSchemaTest.java +++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/PlainSchemaTest.java @@ -217,7 +217,7 @@ public class PlainSchemaTest extends AbstractTest { @Test public void deleteFirstname() { - assertEquals(5, resourceDAO.find("resource-db-pull"). + assertEquals(6, resourceDAO.find("resource-db-pull"). getProvision(anyTypeDAO.findUser()).getMapping().getItems().size()); plainSchemaDAO.delete("firstname"); @@ -225,7 +225,7 @@ public class PlainSchemaTest extends AbstractTest { plainSchemaDAO.flush(); - assertEquals(4, resourceDAO.find("resource-db-pull"). + assertEquals(5, resourceDAO.find("resource-db-pull"). getProvision(anyTypeDAO.findUser()).getMapping().getItems().size()); } } http://git-wip-us.apache.org/repos/asf/syncope/blob/a0b8995b/core/persistence-jpa/src/test/resources/domains/MasterContent.xml ---------------------------------------------------------------------- diff --git a/core/persistence-jpa/src/test/resources/domains/MasterContent.xml b/core/persistence-jpa/src/test/resources/domains/MasterContent.xml index 3463de3..1c1c8e4 100644 --- a/core/persistence-jpa/src/test/resources/domains/MasterContent.xml +++ b/core/persistence-jpa/src/test/resources/domains/MasterContent.xml @@ -1097,6 +1097,9 @@ under the License. <MappingItem id="e7215305-93c9-460b-b862-46f7b60de72d" connObjectKey="0" mapping_id="cda910bd-fc28-4f63-890e-66edc62d428b" extAttrName="EMAIL" intAttrName="userId" mandatoryCondition="false" password="0" purpose="PULL"/> + <MappingItem id="fb59d169-cf59-43f6-a517-adfd9aacc609" connObjectKey="0" mapping_id="cda910bd-fc28-4f63-890e-66edc62d428b" + extAttrName="MUSTCHANGEPASSWORD" intAttrName="mustChangePassword" + mandatoryCondition="false" password="0" purpose="PULL"/> <Provision id="6d7cb60a-c4ad-4a70-94ae-e5b88eb24930" resource_id="resource-db-virattr" anyType_id="USER" objectClass="__ACCOUNT__"/> <Mapping id="45280585-308f-4571-9788-c7a4734b3614" provision_id="6d7cb60a-c4ad-4a70-94ae-e5b88eb24930"/> http://git-wip-us.apache.org/repos/asf/syncope/blob/a0b8995b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java ---------------------------------------------------------------------- diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java index 8ad259a..a6f423d 100644 --- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java +++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java @@ -26,6 +26,7 @@ import java.util.List; import java.util.Set; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.ListUtils; +import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.reflect.FieldUtils; import org.apache.commons.lang3.time.DateFormatUtils; @@ -657,6 +658,12 @@ public class MappingManagerImpl implements MappingManager { } break; + case "mustChangePassword": + if (anyTO instanceof UserTO && !values.isEmpty() && values.get(0) != null) { + ((UserTO) anyTO).setMustChangePassword(BooleanUtils.toBoolean(values.get(0).toString())); + } + break; + case "userOwner": case "groupOwner": if (anyTO instanceof GroupTO && attr != null) { http://git-wip-us.apache.org/repos/asf/syncope/blob/a0b8995b/fit/build-tools/src/main/resources/testdb.sql ---------------------------------------------------------------------- diff --git a/fit/build-tools/src/main/resources/testdb.sql b/fit/build-tools/src/main/resources/testdb.sql index 0eb42e8..5ad5341 100644 --- a/fit/build-tools/src/main/resources/testdb.sql +++ b/fit/build-tools/src/main/resources/testdb.sql @@ -39,6 +39,7 @@ CREATE TABLE testpull ( id CHAR(36) PRIMARY KEY, username VARCHAR(80), surname VARCHAR(80), +mustChangePassword BOOLEAN, email VARCHAR(80), lastModification TIMESTAMP); http://git-wip-us.apache.org/repos/asf/syncope/blob/a0b8995b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java ---------------------------------------------------------------------- diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java index 7872506..3e1fa27 100644 --- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java +++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java @@ -508,9 +508,9 @@ public class PullTaskITCase extends AbstractTaskITCase { try { // 1. create 2 users on testpull jdbcTemplate.execute("INSERT INTO testpull VALUES (" - + "'" + user1OnTestPull + "', 'user1', 'Doe', '[email protected]', NULL)"); + + "'" + user1OnTestPull + "', 'user1', 'Doe', false, '[email protected]', NULL)"); jdbcTemplate.execute("INSERT INTO testpull VALUES (" - + "'" + user2OnTestPull + "', 'user2', 'Rossi', '[email protected]', NULL)"); + + "'" + user2OnTestPull + "', 'user2', 'Rossi', false, '[email protected]', NULL)"); // 2. create new pull task for test-db, with reconciliation filter (surname 'Rossi') task = taskService.read("7c2242f4-14af-4ab5-af31-cdae23783655", true); @@ -601,10 +601,10 @@ public class PullTaskITCase extends AbstractTaskITCase { jdbcTemplate.execute("DELETE FROM testpull"); jdbcTemplate.execute("INSERT INTO testpull VALUES " + "(1040, 'syncTokenWithErrors1', 'Surname1', " - + "'[email protected]', '2014-05-23 13:53:24.293')"); + + "false, '[email protected]', '2014-05-23 13:53:24.293')"); jdbcTemplate.execute("INSERT INTO testpull VALUES " + "(1041, 'syncTokenWithErrors2', 'Surname2', " - + "'[email protected]', '2015-05-23 13:53:24.293')"); + + "false, '[email protected]', '2015-05-23 13:53:24.293')"); ExecTO exec = execProvisioningTask(taskService, pullTask.getKey(), 50, false); assertEquals(PropagationTaskExecStatus.SUCCESS, PropagationTaskExecStatus.valueOf(exec.getStatus())); @@ -709,7 +709,7 @@ public class PullTaskITCase extends AbstractTaskITCase { // 1. populate the external table jdbcTemplate.execute("INSERT INTO testpull VALUES" - + "('" + id + "', 'issuesyncope230', 'Surname', '[email protected]', NULL)"); + + "('" + id + "', 'issuesyncope230', 'Surname', false, '[email protected]', NULL)"); // 2. execute PullTask for resource-db-pull (table TESTPULL on external H2) execProvisioningTask(taskService, "7c2242f4-14af-4ab5-af31-cdae23783655", 50, false);
