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/07/10 03:12:52 UTC

[airavata-custos] branch develop updated: Add shared_by property to sharing entries

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

isjarana pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata-custos.git


The following commit(s) were added to refs/heads/develop by this push:
     new 852b683  Add shared_by property to sharing entries
     new f1e774d  Merge pull request #217 from isururanawaka/develop
852b683 is described below

commit 852b683f984364b751f5f23109c7d0b5e8c994a4
Author: Isuru Ranawaka <ir...@gmail.com>
AuthorDate: Fri Jul 9 23:11:51 2021 -0400

    Add shared_by property to sharing entries
---
 .../apache/custos/sharing/mapper/SharingMapper.java |  12 ++++++++++--
 .../custos/sharing/persistance/model/Sharing.java   |  11 +++++++++++
 .../custos/sharing/service/SharingService.java      |  19 +++++++++++--------
 .../src/main/proto/SharingService.proto             |   2 ++
 .../src/main/resources/protos/SharingService.proto  |   2 ++
 .../main/resources/sharing-management-service.pb    | Bin 88031 -> 88207 bytes
 .../service/SharingManagementService.java           |  10 ++++++++++
 7 files changed, 46 insertions(+), 10 deletions(-)

diff --git a/custos-core-services/sharing-core-service/src/main/java/org/apache/custos/sharing/mapper/SharingMapper.java b/custos-core-services/sharing-core-service/src/main/java/org/apache/custos/sharing/mapper/SharingMapper.java
index 54708a5..e6f34a7 100644
--- a/custos-core-services/sharing-core-service/src/main/java/org/apache/custos/sharing/mapper/SharingMapper.java
+++ b/custos-core-services/sharing-core-service/src/main/java/org/apache/custos/sharing/mapper/SharingMapper.java
@@ -44,6 +44,7 @@ public class SharingMapper {
                                         String ownerId,
                                         String ownerType,
                                         String sharingType,
+                                        String sharedBy,
                                         long tenantId) {
 
         String id = entity.getId() + "_" +
@@ -58,6 +59,9 @@ public class SharingMapper {
         sharing.setInheritedParent(inheritedEntity);
         sharing.setTenantId(tenantId);
         sharing.setId(id);
+        if (sharedBy != null) {
+            sharing.setSharedBy(sharedBy);
+        }
         return sharing;
     }
 
@@ -74,6 +78,9 @@ public class SharingMapper {
         sharing.setAssociatingIdType(oldSharing.getAssociatingIdType());
         sharing.setInheritedParent(oldSharing.getInheritedParent());
         sharing.setCreatedAt(oldSharing.getCreatedAt());
+        if (oldSharing.getSharedBy() != null) {
+            sharing.setSharedBy(oldSharing.getSharedBy());
+        }
         sharing.setTenantId(tenantId);
         sharing.setId(id);
         return sharing;
@@ -107,13 +114,14 @@ public class SharingMapper {
                                     .setPermission(org.apache.custos.sharing.service.PermissionType.newBuilder().
                                             setId(shr.getPermissionType().getExternalId())
                                             .setName(shr.getPermissionType().getName()
-                                            ).setDescription(shr.getPermissionType().getDescription()==null?
-                                                    "":shr.getPermissionType().getDescription()).
+                                            ).setDescription(shr.getPermissionType().getDescription() == null ?
+                                                    "" : shr.getPermissionType().getDescription()).
                                                     setCreatedAt(shr.getCreatedAt().getTime())
                                             .setUpdatedAt(shr.getLastModifiedAt().getTime()).build())
                                     .setOwnerType(shr.getAssociatingIdType())
                                     .setOwnerId(shr.getAssociatingId())
                                     .setEntity(EntityMapper.createEntity(shr.getEntity()))
+                                    .setSharedBy(shr.getSharedBy() != null ? shr.getSharedBy() : "")
                                     .build();
                             return metadata;
                         } catch (SQLException throwables) {
diff --git a/custos-core-services/sharing-core-service/src/main/java/org/apache/custos/sharing/persistance/model/Sharing.java b/custos-core-services/sharing-core-service/src/main/java/org/apache/custos/sharing/persistance/model/Sharing.java
index 67ac600..8284c70 100644
--- a/custos-core-services/sharing-core-service/src/main/java/org/apache/custos/sharing/persistance/model/Sharing.java
+++ b/custos-core-services/sharing-core-service/src/main/java/org/apache/custos/sharing/persistance/model/Sharing.java
@@ -45,6 +45,9 @@ public class Sharing {
     @Column(nullable = false)
     private String sharingType;
 
+
+    private String sharedBy;
+
     @Column(nullable = false)
     @Temporal(TemporalType.TIMESTAMP)
     @CreatedDate
@@ -75,6 +78,14 @@ public class Sharing {
     private org.apache.custos.sharing.persistance.model.Entity inheritedParent;
 
 
+    public String getSharedBy() {
+        return sharedBy;
+    }
+
+    public void setSharedBy(String sharedBy) {
+        this.sharedBy = sharedBy;
+    }
+
     public String getAssociatingId() {
         return associatingId;
     }
diff --git a/custos-core-services/sharing-core-service/src/main/java/org/apache/custos/sharing/service/SharingService.java b/custos-core-services/sharing-core-service/src/main/java/org/apache/custos/sharing/service/SharingService.java
index 38410e4..06871e9 100644
--- a/custos-core-services/sharing-core-service/src/main/java/org/apache/custos/sharing/service/SharingService.java
+++ b/custos-core-services/sharing-core-service/src/main/java/org/apache/custos/sharing/service/SharingService.java
@@ -490,7 +490,8 @@ public class SharingService extends org.apache.custos.sharing.service.SharingSer
 
             if (optionalPermissionType.isPresent()) {
                 Sharing sharing = SharingMapper.createSharing(optionalPermissionType.get(),
-                        savedEntity, savedEntity, entity.getOwnerId(), Constants.USER, Constants.DIRECT_CASCADING, tenantId);
+                        savedEntity, savedEntity, entity.getOwnerId(), Constants.USER, Constants.DIRECT_CASCADING,
+                        entity.getOwnerId(), tenantId);
 
                 sharingRepository.save(sharing);
 
@@ -1285,8 +1286,8 @@ public class SharingService extends org.apache.custos.sharing.service.SharingSer
             responseObserver.onCompleted();
 
         } catch (Exception ex) {
-            String msg = "Error occurred while fetching all sharings " + request.getTenantId() +ex.getMessage();
-            LOGGER.error(msg,ex);
+            String msg = "Error occurred while fetching all sharings " + request.getTenantId() + ex.getMessage();
+            LOGGER.error(msg, ex);
             responseObserver.onError(io.grpc.Status.INTERNAL.withDescription(msg).asRuntimeException());
         }
     }
@@ -1320,7 +1321,7 @@ public class SharingService extends org.apache.custos.sharing.service.SharingSer
                                                         org.apache.custos.sharing.persistance.model.PermissionType permissionType,
                                                         List<Sharing> sharings,
                                                         String ownerType,
-                                                        String sharingType) {
+                                                        String sharingType, String sharedBy) {
 
         List<org.apache.custos.sharing.persistance.model.Entity> entities =
                 entityRepository.findAllByExternalParentIdAndTenantId(entity.getExternalId(), tenantId);
@@ -1330,10 +1331,10 @@ public class SharingService extends org.apache.custos.sharing.service.SharingSer
             for (org.apache.custos.sharing.persistance.model.Entity child : entities) {
                 for (String userId : userIds) {
                     Sharing sharing = SharingMapper.createSharing(permissionType,
-                            child, inheritedEntity, userId, ownerType, sharingType, tenantId);
+                            child, inheritedEntity, userId, ownerType, sharingType, sharedBy, tenantId);
                     sharings.add(sharing);
                 }
-                getAllSharingForChildEntities(child, inheritedEntity, userIds, tenantId, permissionType, sharings, ownerType, sharingType);
+                getAllSharingForChildEntities(child, inheritedEntity, userIds, tenantId, permissionType, sharings, ownerType, sharingType, sharedBy);
 
             }
             return sharings;
@@ -1403,14 +1404,16 @@ public class SharingService extends org.apache.custos.sharing.service.SharingSer
         for (String userId : userIds) {
 
             Sharing sharing = SharingMapper.createSharing(optionalPermissionType.get(),
-                    entityOptional.get(), entityOptional.get(), userId, ownerType, sharingType, tenantId);
+                    entityOptional.get(), entityOptional.get(), userId, ownerType, sharingType, request.getSharedBy(),
+                    tenantId);
             sharings.add(sharing);
         }
 
         if (cascade) {
             List<Sharing> childSharings = new ArrayList<>();
             childSharings = getAllSharingForChildEntities(entityOptional.get(), entityOptional.get(), userIds, tenantId,
-                    optionalPermissionType.get(), childSharings, ownerType, Constants.INDIRECT_CASCADING);
+                    optionalPermissionType.get(), childSharings, ownerType,
+                    Constants.INDIRECT_CASCADING, request.getSharedBy());
             if (!childSharings.isEmpty()) {
                 sharings.addAll(childSharings);
             }
diff --git a/custos-core-services/sharing-core-service/src/main/proto/SharingService.proto b/custos-core-services/sharing-core-service/src/main/proto/SharingService.proto
index ca7023b..c11f6ac 100644
--- a/custos-core-services/sharing-core-service/src/main/proto/SharingService.proto
+++ b/custos-core-services/sharing-core-service/src/main/proto/SharingService.proto
@@ -134,6 +134,7 @@ message SharingRequest {
     repeated string owner_id = 5;
     bool cascade = 6;
     string client_sec = 7;
+    string shared_by = 8;
 }
 
 message SharesFilteringRequest {
@@ -177,6 +178,7 @@ message SharingMetadata {
     string owner_id = 2;
     string owner_type = 3;
     PermissionType permission = 4;
+    string shared_by = 5;
 }
 
 service SharingService {
diff --git a/custos-integration-services/custos-integration-services-swagger/src/main/resources/protos/SharingService.proto b/custos-integration-services/custos-integration-services-swagger/src/main/resources/protos/SharingService.proto
index ca7023b..c11f6ac 100644
--- a/custos-integration-services/custos-integration-services-swagger/src/main/resources/protos/SharingService.proto
+++ b/custos-integration-services/custos-integration-services-swagger/src/main/resources/protos/SharingService.proto
@@ -134,6 +134,7 @@ message SharingRequest {
     repeated string owner_id = 5;
     bool cascade = 6;
     string client_sec = 7;
+    string shared_by = 8;
 }
 
 message SharesFilteringRequest {
@@ -177,6 +178,7 @@ message SharingMetadata {
     string owner_id = 2;
     string owner_type = 3;
     PermissionType permission = 4;
+    string shared_by = 5;
 }
 
 service SharingService {
diff --git a/custos-integration-services/sharing-management-service-parent/sharing-management-service-sidecar/src/main/resources/sharing-management-service.pb b/custos-integration-services/sharing-management-service-parent/sharing-management-service-sidecar/src/main/resources/sharing-management-service.pb
index afb2520..41047ba 100644
Binary files a/custos-integration-services/sharing-management-service-parent/sharing-management-service-sidecar/src/main/resources/sharing-management-service.pb and b/custos-integration-services/sharing-management-service-parent/sharing-management-service-sidecar/src/main/resources/sharing-management-service.pb differ
diff --git a/custos-integration-services/sharing-management-service-parent/sharing-management-service/src/main/java/org/apache/custos/sharing/management/service/SharingManagementService.java b/custos-integration-services/sharing-management-service-parent/sharing-management-service/src/main/java/org/apache/custos/sharing/management/service/SharingManagementService.java
index c870906..c4aef67 100644
--- a/custos-integration-services/sharing-management-service-parent/sharing-management-service/src/main/java/org/apache/custos/sharing/management/service/SharingManagementService.java
+++ b/custos-integration-services/sharing-management-service-parent/sharing-management-service/src/main/java/org/apache/custos/sharing/management/service/SharingManagementService.java
@@ -518,6 +518,11 @@ public class SharingManagementService extends SharingManagementServiceImplBase {
                 validateAndGetUserProfile(username, clientId, clientSec, tenantId);
             }
 
+            String sharedBy = request.getSharedBy();
+            if (!sharedBy.isEmpty()) {
+                validateAndGetUserProfile(sharedBy, clientId, clientSec, tenantId);
+            }
+
             Status status = sharingClient.shareEntityWithUsers(request);
 
             responseObserver.onNext(status);
@@ -543,6 +548,11 @@ public class SharingManagementService extends SharingManagementServiceImplBase {
 
                 validateAndGetGroupId(groupId, tenantId);
             }
+            String sharedBy = request.getSharedBy();
+            if (!sharedBy.isEmpty()) {
+                validateAndGetUserProfile(sharedBy, request.getClientId(), request.getClientSec(), tenantId);
+            }
+
 
             Status status = sharingClient.shareEntityWithGroups(request);