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

machristie pushed a commit to branch custos-integration
in repository https://gitbox.apache.org/repos/asf/airavata-data-catalog.git

commit 40597be38b929023114c5929e8ef77dab4e25341
Author: Marcus Christie <[email protected]>
AuthorDate: Wed Mar 29 13:51:57 2023 -0400

    Including who is doing the sharing in the API
    
    For #12
---
 .../api/service/impl/DataCatalogServiceImpl.java            |  3 ++-
 .../airavata/datacatalog/api/sharing/SharingManager.java    |  9 +++++++--
 .../datacatalog/api/sharing/SharingManagerImpl.java         | 13 +++++++++----
 3 files changed, 18 insertions(+), 7 deletions(-)

diff --git 
a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/service/impl/DataCatalogServiceImpl.java
 
b/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/service/impl/DataCatalogServiceImpl.java
index 8ca0ddf..e44d10a 100644
--- 
a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/service/impl/DataCatalogServiceImpl.java
+++ 
b/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/service/impl/DataCatalogServiceImpl.java
@@ -71,7 +71,8 @@ public class DataCatalogServiceImpl implements 
DataCatalogService {
         dataProductMapper.mapModelToEntity(dataProduct, dataProductEntity);
         DataProductEntity savedDataProductEntity = 
dataProductRepository.save(dataProductEntity);
 
-        sharingManager.grantPermissionToUser(dataProduct.getOwner(), 
dataProduct, Permission.OWNER);
+        sharingManager.grantPermissionToUser(dataProduct.getOwner(), 
dataProduct, Permission.OWNER,
+                dataProduct.getOwner());
 
         return toDataProduct(savedDataProductEntity);
     }
diff --git 
a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManager.java
 
b/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManager.java
index e6db3c6..6e0fbf3 100644
--- 
a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManager.java
+++ 
b/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManager.java
@@ -55,8 +55,10 @@ public interface SharingManager {
      * @param userInfo
      * @param dataProduct
      * @param permission
+     * @param sharedByUser optional (nullable), the user who is granting the
+     *                     permission
      */
-    void grantPermissionToUser(UserInfo userInfo, DataProduct dataProduct, 
Permission permission)
+    void grantPermissionToUser(UserInfo userInfo, DataProduct dataProduct, 
Permission permission, UserInfo sharedByUser)
             throws SharingException;
 
     /**
@@ -75,8 +77,11 @@ public interface SharingManager {
      * @param groupInfo
      * @param dataProduct
      * @param permission
+     * @param sharedByUser optional (nullable), the user who is granting the
+     *                     permission
      */
-    void grantPermissionToGroup(GroupInfo groupInfo, DataProduct dataProduct, 
Permission permission)
+    void grantPermissionToGroup(GroupInfo groupInfo, DataProduct dataProduct, 
Permission permission,
+            UserInfo sharedByUser)
             throws SharingException;
 
     /**
diff --git 
a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManagerImpl.java
 
b/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManagerImpl.java
index 18e16c3..0654c1d 100644
--- 
a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManagerImpl.java
+++ 
b/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManagerImpl.java
@@ -111,18 +111,21 @@ public class SharingManagerImpl implements SharingManager 
{
     }
 
     @Override
-    public void grantPermissionToUser(UserInfo userInfo, DataProduct 
dataProduct, Permission permission)
+    public void grantPermissionToUser(UserInfo userInfo, DataProduct 
dataProduct, Permission permission,
+            UserInfo sharedByUser)
             throws SharingException {
 
         List<String> userIds = new ArrayList<>();
         userIds.add(userInfo.getUserId());
+        String sharedByUserId = sharedByUser != null ? 
sharedByUser.getUserId() : null;
         try {
             createDataProductEntityIfMissing(dataProduct);
             // OWNER permission can't be assigned but it is granted when the 
data product is
             // created
             if (permission != Permission.OWNER) {
                 custosSharingImpl.shareEntity(userInfo.getTenantId(),
-                        dataProduct.getDataProductId(), permission.name(), 
userIds, true, Constants.USER, null);
+                        dataProduct.getDataProductId(), permission.name(), 
userIds, true, Constants.USER,
+                        sharedByUserId);
             }
         } catch (CustosSharingException e) {
             throw new SharingException(e);
@@ -145,14 +148,16 @@ public class SharingManagerImpl implements SharingManager 
{
     }
 
     @Override
-    public void grantPermissionToGroup(GroupInfo groupInfo, DataProduct 
dataProduct, Permission permission)
+    public void grantPermissionToGroup(GroupInfo groupInfo, DataProduct 
dataProduct, Permission permission,
+            UserInfo sharedByUser)
             throws SharingException {
 
         List<String> userIds = new ArrayList<>();
         userIds.add(groupInfo.getGroupId());
+        String sharedByUserId = sharedByUser != null ? 
sharedByUser.getUserId() : null;
         try {
             custosSharingImpl.shareEntity(groupInfo.getTenantId(),
-                    dataProduct.getDataProductId(), permission.name(), 
userIds, true, Constants.GROUP, null);
+                    dataProduct.getDataProductId(), permission.name(), 
userIds, true, Constants.GROUP, sharedByUserId);
         } catch (CustosSharingException e) {
             throw new SharingException(e);
         }

Reply via email to