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
The following commit(s) were added to refs/heads/RANGER-3923 by this push:
new 0097c2e0c RANGER-4535: updated get datasets API to include permission
assigned to public group
0097c2e0c is described below
commit 0097c2e0cdddf695921175b4cdd22c99f1e9309e
Author: Subhrat Chaudhary <[email protected]>
AuthorDate: Wed Nov 29 08:10:25 2023 -0800
RANGER-4535: updated get datasets API to include permission assigned to
public group
Signed-off-by: Madhan Neethiraj <[email protected]>
---
.../main/java/org/apache/ranger/biz/GdsDBStore.java | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/GdsDBStore.java
b/security-admin/src/main/java/org/apache/ranger/biz/GdsDBStore.java
index 30f2810c8..292caf981 100755
--- a/security-admin/src/main/java/org/apache/ranger/biz/GdsDBStore.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/GdsDBStore.java
@@ -1456,23 +1456,36 @@ public class GdsDBStore extends AbstractGdsStore {
}
private void scrubDatasetForListing(RangerDataset dataset) {
- dataset.setAcl(null);
+ dataset.setAcl(getPublicAclIfAllowed(dataset.getAcl()));
dataset.setOptions(null);
dataset.setAdditionalInfo(null);
}
private void scrubProjectForListing(RangerProject project) {
- project.setAcl(null);
+ project.setAcl(getPublicAclIfAllowed(project.getAcl()));
project.setOptions(null);
project.setAdditionalInfo(null);
}
private void scrubDataShareForListing(RangerDataShare dataShare) {
- dataShare.setAcl(null);
+ dataShare.setAcl(getPublicAclIfAllowed(dataShare.getAcl()));
dataShare.setOptions(null);
dataShare.setAdditionalInfo(null);
}
+ private RangerGdsObjectACL getPublicAclIfAllowed(RangerGdsObjectACL acl) {
+ RangerGdsObjectACL ret = null;
+ GdsPermission grpPublicPerm = acl != null && acl.getGroups() !=
null ? acl.getGroups().get(RangerConstants.GROUP_PUBLIC) : null;
+
+ if (grpPublicPerm != null) {
+ ret = new RangerGdsObjectACL();
+
+
ret.setGroups(Collections.singletonMap(RangerConstants.GROUP_PUBLIC,
grpPublicPerm));
+ }
+
+ return ret;
+ }
+
private void removeDshInDsForDataShare(Long dataShareId) {
SearchFilter filter = new
SearchFilter(SearchFilter.DATA_SHARE_ID, dataShareId.toString());
RangerDataShareInDatasetList dshInDsList =
dataShareInDatasetService.searchDataShareInDatasets(filter);