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/828d1bc1
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/828d1bc1
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/828d1bc1

Branch: refs/heads/master
Commit: 828d1bc1d364c96ab149eb96049cc577348a3ee9
Parents: 0c2e4ba
Author: Francesco Chicchiriccò <[email protected]>
Authored: Tue Jan 16 11:18:16 2018 +0100
Committer: Francesco Chicchiriccò <[email protected]>
Committed: Tue Jan 16 12:14:53 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/828d1bc1/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 efffb8d..0203a06 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
@@ -210,7 +210,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()).get().getMapping().getItems().size());
 
         plainSchemaDAO.delete("firstname");
@@ -218,7 +218,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()).get().getMapping().getItems().size());
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/828d1bc1/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 7c2298d..d8eb1be 100644
--- a/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
+++ b/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
@@ -1105,6 +1105,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/828d1bc1/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 a1d04fa..8d0d83f 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
@@ -25,6 +25,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Optional;
 import java.util.Set;
+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/828d1bc1/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/828d1bc1/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 df0afdd..59fe873 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
@@ -520,9 +520,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') 
             ImplementationTO reconFilterBuilder = new ImplementationTO();
@@ -621,10 +621,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()));
@@ -729,7 +729,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);

Reply via email to