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