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);

Reply via email to