You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ma...@apache.org on 2023/10/02 19:18:25 UTC
[ranger] 02/02: RANGER-4426: added approver in GDS request entities
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 <su...@yahoo.com>
AuthorDate: Mon Oct 2 12:11:11 2023 -0700
RANGER-4426: added approver in GDS request entities
Signed-off-by: Madhan Neethiraj <ma...@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;
}