From c6a513ca3a318c2fc5c3aca6864c38ad7a74836e Mon Sep 17 00:00:00 2001
From: AMIT KUMAR <amit.kumar@tarento.com>
Date: Mon, 27 Dec 2021 18:06:12 +0530
Subject: [PATCH] Issue #SB-27874 feat:updating audit data with user
 declaration (#1021)

* Issue #SB-27874 feat:updating audit data with user declaration
---
 .../UserSelfDeclarationManagementActor.java   |  4 ++++
 .../java/org/sunbird/util/user/UserUtil.java  |  4 ++--
 ...serSelfDeclarationManagementActorTest.java | 24 ++++++++++++++++++-
 3 files changed, 29 insertions(+), 3 deletions(-)

diff --git a/service/src/main/java/org/sunbird/actor/user/UserSelfDeclarationManagementActor.java b/service/src/main/java/org/sunbird/actor/user/UserSelfDeclarationManagementActor.java
index 1093d07cf..62feb70a8 100644
--- a/service/src/main/java/org/sunbird/actor/user/UserSelfDeclarationManagementActor.java
+++ b/service/src/main/java/org/sunbird/actor/user/UserSelfDeclarationManagementActor.java
@@ -82,6 +82,10 @@ public class UserSelfDeclarationManagementActor extends BaseActor {
 
       List<UserDeclareEntity> userDeclareEntityList = new ArrayList<>();
       for (Map<String, Object> declareFieldMap : declarations) {
+        String custodianOrgId = DataCacheHandler.getConfigSettings().get(JsonKey.CUSTODIAN_ORG_ID);
+        if (((String) declareFieldMap.get(JsonKey.ORG_ID)).equalsIgnoreCase(custodianOrgId)) {
+          ProjectCommonException.throwClientErrorException(ResponseCode.invalidOrgId);
+        }
         UserDeclareEntity userDeclareEntity =
             UserUtil.createUserDeclaredObject(declareFieldMap, callerId);
         Map userInfo = userDeclareEntity.getUserInfo();
diff --git a/service/src/main/java/org/sunbird/util/user/UserUtil.java b/service/src/main/java/org/sunbird/util/user/UserUtil.java
index 7fe801d8e..f177f4736 100644
--- a/service/src/main/java/org/sunbird/util/user/UserUtil.java
+++ b/service/src/main/java/org/sunbird/util/user/UserUtil.java
@@ -775,9 +775,9 @@ public class UserUtil {
     }
     userDeclareEntity.setOperation((String) declareFieldMap.get(JsonKey.OPERATION));
     if (JsonKey.ADD.equals(userDeclareEntity.getOperation())) {
-      userDeclareEntity.setCreatedBy((String) declareFieldMap.get(JsonKey.CREATED_BY));
+      userDeclareEntity.setCreatedBy(callerId);
     } else {
-      userDeclareEntity.setUpdatedBy((String) declareFieldMap.get(JsonKey.UPDATED_BY));
+      userDeclareEntity.setUpdatedBy(callerId);
       userDeclareEntity.setStatus((String) declareFieldMap.get(JsonKey.STATUS));
     }
     if (StringUtils.isBlank((String) declareFieldMap.get(JsonKey.STATUS))) {
diff --git a/service/src/test/java/org/sunbird/actor/user/UserSelfDeclarationManagementActorTest.java b/service/src/test/java/org/sunbird/actor/user/UserSelfDeclarationManagementActorTest.java
index aa61fd3af..936aa27e6 100644
--- a/service/src/test/java/org/sunbird/actor/user/UserSelfDeclarationManagementActorTest.java
+++ b/service/src/test/java/org/sunbird/actor/user/UserSelfDeclarationManagementActorTest.java
@@ -11,6 +11,8 @@ import akka.actor.ActorSystem;
 import akka.actor.Props;
 import akka.dispatch.Futures;
 import akka.testkit.javadsl.TestKit;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.LinkedList;
@@ -56,7 +58,6 @@ import scala.concurrent.Promise;
   EsClientFactory.class,
   ElasticSearchRestHighImpl.class,
   UserUtil.class,
-  DataCacheHandler.class
 })
 @PowerMockIgnore({
   "javax.management.*",
@@ -245,6 +246,27 @@ public class UserSelfDeclarationManagementActorTest {
     Assert.assertEquals(JsonKey.SUCCESS, response.getResult().get(JsonKey.RESPONSE));
   }
 
+  @Test
+  public void testUpdateUserSelfDeclaredDetails() {
+
+    TestKit probe = new TestKit(system);
+    ActorRef subject = system.actorOf(props);
+
+    Request request = new Request();
+    request.setOperation(ActorOperations.UPDATE_USER_DECLARATIONS.getValue());
+    List<Map<String, Object>> list = new ArrayList<>();
+    UserDeclareEntity userDeclareEntity = editOrgChangeUserDeclaredEntity();
+    userDeclareEntity.setOrgId("anyOrgId");
+    ObjectMapper mapper = new ObjectMapper();
+
+    list.add(mapper.convertValue(userDeclareEntity, new TypeReference<Map<String, Object>>() {}));
+    Map<String, Object> requestMap = new HashMap<>();
+    requestMap.put(JsonKey.DECLARATIONS, list);
+    request.setRequest(requestMap);
+    subject.tell(request, probe.getRef());
+    probe.expectMsgClass(duration("100 second"), ProjectCommonException.class);
+  }
+
   private UserDeclareEntity addUserDeclaredEntity() {
     UserDeclareEntity userDeclareEntity = new UserDeclareEntity();
     userDeclareEntity.setOrgId("01234848481");
-- 
GitLab