This is an automated email from the ASF dual-hosted git repository.

madhan pushed a commit to branch RANGER-3923
in repository https://gitbox.apache.org/repos/asf/ranger.git

commit 5597dedd7c2a3144ac4f9981b69fb5b1341d1749
Author: Subhrat Chaudhary <such...@yahoo.com>
AuthorDate: Mon Oct 2 12:11:11 2023 -0700

    RANGER-4426: added approver in GDS request entities
    
    Signed-off-by: Madhan Neethiraj <mad...@apache.org>
---
 .../main/java/org/apache/ranger/plugin/model/RangerGds.java  | 12 ++++++++++++
 .../db/mysql/optimized/current/ranger_core_db_mysql.sql      |  4 ++++
 .../postgres/optimized/current/ranger_core_db_postgres.sql   |  4 ++++
 .../org/apache/ranger/entity/XXGdsDataShareInDataset.java    | 12 ++++++++++--
 .../java/org/apache/ranger/entity/XXGdsDatasetInProject.java | 12 ++++++++++--
 .../ranger/service/RangerGdsDataShareInDatasetService.java   |  9 +++++++++
 .../ranger/service/RangerGdsDatasetInProjectService.java     |  9 +++++++++
 7 files changed, 58 insertions(+), 4 deletions(-)

diff --git 
a/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerGds.java 
b/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerGds.java
index a1c883356..fd27f54a9 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerGds.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerGds.java
@@ -329,6 +329,7 @@ public class RangerGds {
         private GdsShareStatus         status;
         private RangerValiditySchedule validitySchedule;
         private Set<String>            profiles;
+        private String                 approver;
 
 
         public RangerDataShareInDataset() { }
@@ -353,6 +354,10 @@ public class RangerGds {
 
         public void setProfiles(Set<String> profiles) { this.profiles = 
profiles; }
 
+        public String getApprover() { return approver; }
+
+        public void setApprover(String approver) { this.approver = approver; }
+
         @Override
         public StringBuilder toString(StringBuilder sb) {
             sb.append("RangerDataShareInDataset={");
@@ -364,6 +369,7 @@ public class RangerGds {
               .append("status={").append(status).append("} ")
               .append("validitySchedule={").append(validitySchedule).append("} 
")
               .append("profiles={").append(profiles).append("} ")
+              .append("approver={").append(approver).append("} ")
               .append("}");
 
             return sb;
@@ -383,6 +389,7 @@ public class RangerGds {
         private GdsShareStatus         status;
         private RangerValiditySchedule validitySchedule;
         private Set<String>            profiles;
+        private String                 approver;
 
 
         public RangerDatasetInProject() { }
@@ -407,6 +414,10 @@ public class RangerGds {
 
         public void setProfiles(Set<String> profiles) { this.profiles = 
profiles; }
 
+        public String getApprover() { return approver; }
+
+        public void setApprover(String approver) { this.approver = approver; }
+
         @Override
         public StringBuilder toString(StringBuilder sb) {
             sb.append("RangerDatasetInProject={");
@@ -418,6 +429,7 @@ public class RangerGds {
               .append("status={").append(status).append("} ")
               .append("validitySchedule={").append(validitySchedule).append("} 
")
               .append("profiles={").append(profiles).append("} ")
+              .append("approver={").append(approver).append("} ")
               .append("}");
 
             return sb;
diff --git a/security-admin/db/mysql/optimized/current/ranger_core_db_mysql.sql 
b/security-admin/db/mysql/optimized/current/ranger_core_db_mysql.sql
index 424f38d9e..e71facf8e 100755
--- a/security-admin/db/mysql/optimized/current/ranger_core_db_mysql.sql
+++ b/security-admin/db/mysql/optimized/current/ranger_core_db_mysql.sql
@@ -1828,12 +1828,14 @@ CREATE TABLE `x_gds_data_share_in_dataset`(
   , `profiles`             TEXT         NULL     DEFAULT NULL
   , `options`              TEXT         NULL     DEFAULT NULL
   , `additional_info`      TEXT         NULL     DEFAULT NULL
+  , `approver_id`          BIGINT(20)   NULL     DEFAULT NULL
   , PRIMARY KEY(`id`)
   , UNIQUE KEY `x_gds_dshid_UK_data_share_id_dataset_id` (`data_share_id`, 
`dataset_id`)
   , CONSTRAINT `x_gds_dshid_FK_added_by_id`   FOREIGN KEY(`added_by_id`)   
REFERENCES `x_portal_user`(`id`)
   , CONSTRAINT `x_gds_dshid_FK_upd_by_id`     FOREIGN KEY(`upd_by_id`)     
REFERENCES `x_portal_user`(`id`)
   , CONSTRAINT `x_gds_dshid_FK_data_share_id` FOREIGN KEY(`data_share_id`) 
REFERENCES `x_gds_data_share`(`id`)
   , CONSTRAINT `x_gds_dshid_FK_dataset_id`    FOREIGN KEY(`dataset_id`)    
REFERENCES `x_gds_dataset`(`id`)
+  , CONSTRAINT `x_gds_dshid_FK_approver_id`   FOREIGN KEY(`approver_id`)   
REFERENCES `x_portal_user`(`id`)
 );
 CREATE INDEX `x_gds_dshid_guid`                     ON 
`x_gds_data_share_in_dataset`(`guid`);
 CREATE INDEX `x_gds_dshid_data_share_id`            ON 
`x_gds_data_share_in_dataset`(`data_share_id`);
@@ -1857,12 +1859,14 @@ CREATE TABLE `x_gds_dataset_in_project`(
   , `profiles`             TEXT         NULL     DEFAULT NULL
   , `options`              TEXT         NULL     DEFAULT NULL
   , `additional_info`      TEXT         NULL     DEFAULT NULL
+  , `approver_id`          BIGINT(20)   NULL     DEFAULT NULL
   , PRIMARY KEY(`id`)
   , UNIQUE KEY `x_gds_dip_UK_data_share_id_dataset_id`(`dataset_id`, 
`project_id`)
   , CONSTRAINT `x_gds_dip_FK_added_by_id` FOREIGN KEY(`added_by_id`) 
REFERENCES `x_portal_user`(`id`)
   , CONSTRAINT `x_gds_dip_FK_upd_by_id`   FOREIGN KEY(`upd_by_id`)   
REFERENCES `x_portal_user`(`id`)
   , CONSTRAINT `x_gds_dip_FK_dataset_id`  FOREIGN KEY(`dataset_id`)  
REFERENCES `x_gds_dataset`(`id`)
   , CONSTRAINT `x_gds_dip_FK_project_id`  FOREIGN KEY(`project_id`)  
REFERENCES `x_gds_project`(`id`)
+  , CONSTRAINT `x_gds_dip_FK_approver_id` FOREIGN KEY(`approver_id`) 
REFERENCES `x_portal_user`(`id`)
 );
 CREATE INDEX `x_gds_dip_guid`       ON `x_gds_dataset_in_project`(`guid`);
 CREATE INDEX `x_gds_dip_dataset_id` ON 
`x_gds_dataset_in_project`(`dataset_id`);
diff --git 
a/security-admin/db/postgres/optimized/current/ranger_core_db_postgres.sql 
b/security-admin/db/postgres/optimized/current/ranger_core_db_postgres.sql
index 5ffa23f33..8536f651e 100755
--- a/security-admin/db/postgres/optimized/current/ranger_core_db_postgres.sql
+++ b/security-admin/db/postgres/optimized/current/ranger_core_db_postgres.sql
@@ -1822,12 +1822,14 @@ CREATE TABLE x_gds_data_share_in_dataset(
   , profiles             TEXT         NULL     DEFAULT NULL
   , options              TEXT         NULL     DEFAULT NULL
   , additional_info      TEXT         NULL     DEFAULT NULL
+  , approver_id          BIGINT       NULL     DEFAULT NULL
   , PRIMARY KEY(id)
   , CONSTRAINT x_gds_dshid_FK_added_by_id   FOREIGN KEY(added_by_id)   
REFERENCES x_portal_user(id)
   , CONSTRAINT x_gds_dshid_FK_upd_by_id     FOREIGN KEY(upd_by_id)     
REFERENCES x_portal_user(id)
   , CONSTRAINT x_gds_dshid_FK_data_share_id FOREIGN KEY(data_share_id) 
REFERENCES x_gds_data_share(id)
   , CONSTRAINT x_gds_dshid_FK_dataset_id    FOREIGN KEY(dataset_id)    
REFERENCES x_gds_dataset(id)
   , CONSTRAINT x_gds_dshid_UK_data_share_id_dataset_id UNIQUE(data_share_id, 
dataset_id)
+  , CONSTRAINT x_gds_dshid_FK_approver_id   FOREIGN KEY(approver_id)   
REFERENCES x_portal_user(id)
 );
 CREATE INDEX x_gds_dshid_guid                     ON 
x_gds_data_share_in_dataset(guid);
 CREATE INDEX x_gds_dshid_data_share_id            ON 
x_gds_data_share_in_dataset(data_share_id);
@@ -1853,12 +1855,14 @@ CREATE TABLE x_gds_dataset_in_project(
   , profiles             TEXT         NULL     DEFAULT NULL
   , options              TEXT         NULL     DEFAULT NULL
   , additional_info      TEXT         NULL     DEFAULT NULL
+  , approver_id          BIGINT       NULL     DEFAULT NULL
   , PRIMARY KEY(id)
   , CONSTRAINT x_gds_dip_FK_added_by_id FOREIGN KEY(added_by_id) REFERENCES 
x_portal_user(id)
   , CONSTRAINT x_gds_dip_FK_upd_by_id   FOREIGN KEY(upd_by_id)   REFERENCES 
x_portal_user(id)
   , CONSTRAINT x_gds_dip_FK_dataset_id  FOREIGN KEY(dataset_id)  REFERENCES 
x_gds_dataset(id)
   , CONSTRAINT x_gds_dip_FK_project_id  FOREIGN KEY(project_id)  REFERENCES 
x_gds_project(id)
   , CONSTRAINT x_gds_dip_UK_data_share_id_dataset_id UNIQUE(dataset_id, 
project_id)
+  , CONSTRAINT x_gds_dip_FK_approver_id FOREIGN KEY(approver_id) REFERENCES 
x_portal_user(id)
 );
 CREATE INDEX x_gds_dip_guid       ON x_gds_dataset_in_project(guid);
 CREATE INDEX x_gds_dip_dataset_id ON x_gds_dataset_in_project(dataset_id);
diff --git 
a/security-admin/src/main/java/org/apache/ranger/entity/XXGdsDataShareInDataset.java
 
b/security-admin/src/main/java/org/apache/ranger/entity/XXGdsDataShareInDataset.java
index 8c59e0898..5c06e152c 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/entity/XXGdsDataShareInDataset.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/entity/XXGdsDataShareInDataset.java
@@ -73,6 +73,8 @@ public class XXGdsDataShareInDataset extends XXDBBase 
implements Serializable {
     @Column(name = "additional_info")
     protected String additionalInfo;
 
+    @Column(name = "approver_id")
+    protected Long approverId;
 
     @Override
     public void setId(Long id) { this.id = id; }
@@ -124,12 +126,16 @@ public class XXGdsDataShareInDataset extends XXDBBase 
implements Serializable {
 
     public void setAdditionalInfo(String additionalInfo) { this.additionalInfo 
= additionalInfo; }
 
+    public Long getApproverId() { return approverId; }
+
+    public void setApproverId(Long approverId) { this.approverId = approverId; 
}
+
     @Override
     public int getMyClassType() { return 
AppConstants.CLASS_TYPE_GDS_DATA_SHARE_IN_DATASET; }
 
     @Override
     public int hashCode() {
-        return Objects.hash(id, guid, dataShareId, datasetId, status, 
validityPeriod, profiles, options, additionalInfo);
+        return Objects.hash(id, guid, dataShareId, datasetId, status, 
validityPeriod, profiles, options, additionalInfo, approverId);
     }
 
     @Override
@@ -154,7 +160,8 @@ public class XXGdsDataShareInDataset extends XXDBBase 
implements Serializable {
                Objects.equals(validityPeriod, other.validityPeriod) &&
                Objects.equals(profiles, other.profiles) &&
                Objects.equals(options, other.options) &&
-               Objects.equals(additionalInfo, other.additionalInfo);
+               Objects.equals(additionalInfo, other.additionalInfo) &&
+               Objects.equals(approverId, other.approverId);
     }
 
     @Override
@@ -176,6 +183,7 @@ public class XXGdsDataShareInDataset extends XXDBBase 
implements Serializable {
           .append("profiles={").append(profiles).append("} ")
           .append("options={").append(options).append("} ")
           .append("additionalInfo={").append(additionalInfo).append("} ")
+          .append("approverId={").append(approverId).append("} ")
           .append(" }");
 
         return sb;
diff --git 
a/security-admin/src/main/java/org/apache/ranger/entity/XXGdsDatasetInProject.java
 
b/security-admin/src/main/java/org/apache/ranger/entity/XXGdsDatasetInProject.java
index 6babde527..49bb4ab6b 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/entity/XXGdsDatasetInProject.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/entity/XXGdsDatasetInProject.java
@@ -73,6 +73,8 @@ public class XXGdsDatasetInProject extends XXDBBase 
implements Serializable {
     @Column(name = "additional_info")
     protected String additionalInfo;
 
+    @Column(name = "approver_id")
+    protected Long approverId;
 
     @Override
     public void setId(Long id) { this.id = id; }
@@ -124,12 +126,16 @@ public class XXGdsDatasetInProject extends XXDBBase 
implements Serializable {
 
     public void setAdditionalInfo(String additionalInfo) { this.additionalInfo 
= additionalInfo; }
 
+    public Long getApproverId() { return approverId; }
+
+    public void setApproverId(Long approverId) { this.approverId = approverId; 
}
+
     @Override
     public int getMyClassType() { return 
AppConstants.CLASS_TYPE_GDS_DATASET_IN_PROJECT; }
 
     @Override
     public int hashCode() {
-        return Objects.hash(id, guid, datasetId, projectId, status, 
validityPeriod, profiles, options, additionalInfo);
+        return Objects.hash(id, guid, datasetId, projectId, status, 
validityPeriod, profiles, options, additionalInfo, approverId);
     }
 
     @Override
@@ -155,7 +161,8 @@ public class XXGdsDatasetInProject extends XXDBBase 
implements Serializable {
                Objects.equals(validityPeriod, other.validityPeriod) &&
                Objects.equals(profiles, other.profiles) &&
                Objects.equals(options, other.options) &&
-               Objects.equals(additionalInfo, other.additionalInfo);
+               Objects.equals(additionalInfo, other.additionalInfo) &&
+               Objects.equals(approverId, other.approverId);
     }
 
     @Override
@@ -178,6 +185,7 @@ public class XXGdsDatasetInProject extends XXDBBase 
implements Serializable {
           .append("profiles={").append(profiles).append("} ")
           .append("options={").append(options).append("} ")
           .append("additionalInfo={").append(additionalInfo).append("} ")
+          .append("approverId={").append(approverId).append("} ")
           .append(" }");
 
         return sb;
diff --git 
a/security-admin/src/main/java/org/apache/ranger/service/RangerGdsDataShareInDatasetService.java
 
b/security-admin/src/main/java/org/apache/ranger/service/RangerGdsDataShareInDatasetService.java
index d32282c27..4a6963fa4 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/service/RangerGdsDataShareInDatasetService.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/service/RangerGdsDataShareInDatasetService.java
@@ -25,9 +25,11 @@ import org.apache.ranger.common.GUIDUtil;
 import org.apache.ranger.common.MessageEnums;
 import org.apache.ranger.common.SearchField;
 import org.apache.ranger.common.SortField;
+import org.apache.ranger.db.XXPortalUserDao;
 import org.apache.ranger.entity.XXGdsDataShare;
 import org.apache.ranger.entity.XXGdsDataShareInDataset;
 import org.apache.ranger.entity.XXGdsDataset;
+import org.apache.ranger.entity.XXPortalUser;
 import org.apache.ranger.plugin.model.RangerGds.RangerDataShareInDataset;
 import org.apache.ranger.plugin.model.RangerValiditySchedule;
 import org.apache.ranger.plugin.util.SearchFilter;
@@ -51,6 +53,9 @@ public class RangerGdsDataShareInDatasetService extends 
RangerGdsBaseModelServic
     @Autowired
     GUIDUtil guidUtil;
 
+    @Autowired
+    XXPortalUserDao xxPortalUserDao;
+
     public RangerGdsDataShareInDatasetService() {
         super();
 
@@ -222,6 +227,9 @@ public class RangerGdsDataShareInDatasetService extends 
RangerGdsBaseModelServic
         xObj.setOptions(JsonUtils.mapToJson(vObj.getOptions()));
         xObj.setAdditionalInfo(JsonUtils.mapToJson(vObj.getAdditionalInfo()));
 
+        final XXPortalUser user = 
xxPortalUserDao.findByLoginId(vObj.getApprover());
+        xObj.setApproverId(user == null? null : user.getId());
+
         return xObj;
     }
 
@@ -238,6 +246,7 @@ public class RangerGdsDataShareInDatasetService extends 
RangerGdsBaseModelServic
         vObj.setProfiles(JsonUtils.jsonToSetString(xObj.getProfiles()));
         vObj.setOptions(JsonUtils.jsonToMapStringString(xObj.getOptions()));
         
vObj.setAdditionalInfo(JsonUtils.jsonToMapStringString(xObj.getAdditionalInfo()));
+        vObj.setApprover(getUserName(xObj.getApproverId()));
 
         return vObj;
     }
diff --git 
a/security-admin/src/main/java/org/apache/ranger/service/RangerGdsDatasetInProjectService.java
 
b/security-admin/src/main/java/org/apache/ranger/service/RangerGdsDatasetInProjectService.java
index 0d839346b..5954183b7 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/service/RangerGdsDatasetInProjectService.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/service/RangerGdsDatasetInProjectService.java
@@ -25,9 +25,11 @@ import org.apache.ranger.common.GUIDUtil;
 import org.apache.ranger.common.MessageEnums;
 import org.apache.ranger.common.SearchField;
 import org.apache.ranger.common.SortField;
+import org.apache.ranger.db.XXPortalUserDao;
 import org.apache.ranger.entity.XXGdsProject;
 import org.apache.ranger.entity.XXGdsDatasetInProject;
 import org.apache.ranger.entity.XXGdsDataset;
+import org.apache.ranger.entity.XXPortalUser;
 import org.apache.ranger.plugin.model.RangerGds.RangerDatasetInProject;
 import org.apache.ranger.plugin.model.RangerValiditySchedule;
 import org.apache.ranger.plugin.util.SearchFilter;
@@ -51,6 +53,9 @@ public class RangerGdsDatasetInProjectService extends 
RangerGdsBaseModelService<
     @Autowired
     GUIDUtil guidUtil;
 
+    @Autowired
+    XXPortalUserDao xxPortalUserDao;
+
     public RangerGdsDatasetInProjectService() {
         super();
 
@@ -222,6 +227,9 @@ public class RangerGdsDatasetInProjectService extends 
RangerGdsBaseModelService<
         xObj.setOptions(JsonUtils.mapToJson(vObj.getOptions()));
         xObj.setAdditionalInfo(JsonUtils.mapToJson(vObj.getAdditionalInfo()));
 
+        final XXPortalUser user = 
xxPortalUserDao.findByLoginId(vObj.getApprover());
+        xObj.setApproverId(user == null? null : user.getId());
+
         return xObj;
     }
 
@@ -238,6 +246,7 @@ public class RangerGdsDatasetInProjectService extends 
RangerGdsBaseModelService<
         vObj.setProfiles(JsonUtils.jsonToSetString(xObj.getProfiles()));
         vObj.setOptions(JsonUtils.jsonToMapStringString(xObj.getOptions()));
         
vObj.setAdditionalInfo(JsonUtils.jsonToMapStringString(xObj.getAdditionalInfo()));
+        vObj.setApprover(getUserName(xObj.getApproverId()));
 
         return vObj;
     }

Reply via email to