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