You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by is...@apache.org on 2021/09/03 03:09:20 UTC

[airavata-data-lake] branch revert-53-sharing_service_impl created (now cbc45e5)

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

isjarana pushed a change to branch revert-53-sharing_service_impl
in repository https://gitbox.apache.org/repos/asf/airavata-data-lake.git.


      at cbc45e5  Revert "Fix metadata search listing unauthorized files"

This branch includes the following new commits:

     new cbc45e5  Revert "Fix metadata search listing unauthorized files"

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[airavata-data-lake] 01/01: Revert "Fix metadata search listing unauthorized files"

Posted by is...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

isjarana pushed a commit to branch revert-53-sharing_service_impl
in repository https://gitbox.apache.org/repos/asf/airavata-data-lake.git

commit cbc45e53e294ec2effdc9eda417b98302e398dc9
Author: Isuru Ranawaka <ir...@gmail.com>
AuthorDate: Thu Sep 2 23:09:14 2021 -0400

    Revert "Fix metadata search listing unauthorized files"
---
 .../orchestrator/connectors/DRMSConnector.java      |  5 -----
 .../drms/api/handlers/ResourceServiceHandler.java   | 21 +++++----------------
 2 files changed, 5 insertions(+), 21 deletions(-)

diff --git a/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/connectors/DRMSConnector.java b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/connectors/DRMSConnector.java
index fcfdf3c..350aee8 100644
--- a/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/connectors/DRMSConnector.java
+++ b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/connectors/DRMSConnector.java
@@ -12,12 +12,9 @@ import org.apache.airavata.datalake.drms.sharing.ShareEntityWithUserRequest;
 import org.apache.airavata.datalake.drms.storage.*;
 import org.apache.airavata.datalake.orchestrator.Configuration;
 import org.apache.airavata.datalake.orchestrator.core.connector.AbstractConnector;
-import org.bouncycastle.util.encoders.UTF8;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.nio.charset.StandardCharsets;
-import java.util.Base64;
 import java.util.List;
 import java.util.Optional;
 import java.util.concurrent.atomic.AtomicReference;
@@ -206,6 +203,4 @@ public class DRMSConnector implements AbstractConnector<Configuration> {
         return Optional.empty();
     }
 
-
-
 }
diff --git a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java
index 8541392..e666afd 100644
--- a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java
+++ b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java
@@ -470,7 +470,7 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI
 
                 genericResourceList.forEach(res -> {
                     try {
-                        if (hasAccessForResource(callUser.getUsername(), callUser.getTenantId(), res.getResourceId(), "COLLECTION")) {
+                        if (hasAccessForResource(callUser.getUsername(), callUser.getTenantId(), res.getResourceId(), value)) {
                             allowedResourceList.add(res);
                         }
                     } catch (Exception exception) {
@@ -487,7 +487,7 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI
                     List<GenericResource> genericResources = GenericResourceDeserializer.deserializeList(ownPropertySearchRecords);
                     genericResources.forEach(res -> {
                         try {
-                            if (hasAccessForResource(callUser.getUsername(), callUser.getTenantId(), res.getResourceId(), "COLLECTION")) {
+                            if (hasAccessForResource(callUser.getUsername(), callUser.getTenantId(), res.getResourceId(), value)) {
                                 allowedResourceList.add(res);
                             }
                         } catch (Exception exception) {
@@ -752,6 +752,7 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI
             String type = request.getType();
 
 
+
             Struct struct = request.getMetadata();
             String message = JsonFormat.printer().print(struct);
             JSONObject json = new JSONObject(message);
@@ -780,7 +781,7 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI
                 String oldJSON = jsonList.get().get(0);
                 message = mergeJSON(oldJSON, message);
             }
-            parameters.put("metadata", message);
+            parameters.put("metadata",message);
             String query = " MATCH (r" + type + ") where r.entityId= $parentResourceId AND r.tenantId= $tenantId " +
                     " MERGE (r)-[:HAS_FULL_METADATA]->(cr:FULL_METADATA_NODE{tenantId: $tenantId}) ON CREATE SET cr.metadata= $metadata " +
                     " ON MATCH SET cr.metadata = $metadata";
@@ -844,14 +845,13 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI
     }
 
 
-    private boolean hasAccessForResource(String username, String tenantId, String resourceId, String parentResourceType) throws
+    private boolean hasAccessForResource(String username, String tenantId, String resourceId, String type) throws
             Exception {
         Map<String, Object> userProps = new HashMap<>();
         userProps.put("username", username);
         userProps.put("tenantId", tenantId);
         userProps.put("entityId", resourceId);
 
-
         String query = " MATCH (u:User),  (r) where u.username = $username AND u.tenantId = $tenantId AND " +
                 " r.entityId = $entityId AND r.tenantId = $tenantId" +
                 " OPTIONAL MATCH (cg:Group)-[:CHILD_OF*]->(g:Group)<-[:MEMBER_OF]-(u)" +
@@ -859,17 +859,6 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI
                 " return case when  exists((u)<-[:SHARED_WITH]-(r)) OR exists((u)<-[:SHARED_WITH]-(l)) OR  exists((g)<-[:SHARED_WITH]-(r)) OR   " +
                 " exists((g)<-[:SHARED_WITH]-(l)) OR exists((cg)<-[:SHARED_WITH]-(r)) OR  exists((cg)<-[:SHARED_WITH]-(l)) then r  else NULL end as value";
 
-
-        if (parentResourceType != null) {
-            query = " MATCH (u:User),  (r) where u.username = $username AND u.tenantId = $tenantId AND " +
-                    " r.entityId = $entityId AND r.tenantId = $tenantId" +
-                    " OPTIONAL MATCH (cg:Group)-[:CHILD_OF*]->(g:Group)<-[:MEMBER_OF]-(u)" +
-                    " OPTIONAL MATCH (l:" + parentResourceType + ")<-[:CHILD_OF*]-(r)" +
-                    " return case when  exists((u)<-[:SHARED_WITH]-(r)) OR exists((u)<-[:SHARED_WITH]-(l)) OR  exists((g)<-[:SHARED_WITH]-(r)) OR   " +
-                    " exists((g)<-[:SHARED_WITH]-(l)) OR exists((cg)<-[:SHARED_WITH]-(r)) OR  exists((cg)<-[:SHARED_WITH]-(l)) then r  else NULL end as value";
-        }
-
-
         List<Record> records = this.neo4JConnector.searchNodes(userProps, query);
 
         List<GenericResource> genericResourceList = GenericResourceDeserializer.deserializeList(records);