diff --git a/services/gateway/pkg/revaconfig/config.go b/services/gateway/pkg/revaconfig/config.go index 8bd8e20806..f851d31992 100644 --- a/services/gateway/pkg/revaconfig/config.go +++ b/services/gateway/pkg/revaconfig/config.go @@ -51,7 +51,8 @@ func GatewayConfigFromStruct(cfg *config.Config, logger log.Logger) map[string]i "ocminvitemanagersvc": cfg.OCMEndpoint, "ocmproviderauthorizersvc": cfg.OCMEndpoint, "ocmcoresvc": cfg.OCMEndpoint, - "commit_share_to_storage_grant": cfg.CommitShareToStorageGrant, + "use_common_space_root_share_logic": true, + "commit_share_to_storage_grant": cfg.CommitShareToStorageGrant, "share_folder": cfg.ShareFolder, // ShareFolder is the location where to create shares in the recipient's storage provider. // other "disable_home_creation_on_login": cfg.DisableHomeCreationOnLogin, diff --git a/services/graph/pkg/service/v0/api_driveitem_permissions_test.go b/services/graph/pkg/service/v0/api_driveitem_permissions_test.go index 3adb5b2dc3..1c7f703856 100644 --- a/services/graph/pkg/service/v0/api_driveitem_permissions_test.go +++ b/services/graph/pkg/service/v0/api_driveitem_permissions_test.go @@ -391,6 +391,25 @@ var _ = Describe("DriveItemPermissionsService", func() { Expect(len(permissions.LibreGraphPermissionsActionsAllowedValues)).ToNot(BeZero()) Expect(len(permissions.LibreGraphPermissionsRolesAllowedValues)).ToNot(BeZero()) }) + It("sends SpaceRootFilter(false) when listing shares for a non-space-root item", func() { + gatewayClient.On("Stat", mock.Anything, mock.Anything).Return(statResponse, nil) + gatewayClient.On("ListPublicShares", mock.Anything, mock.Anything).Return(listPublicSharesResponse, nil) + gatewayClient.On("ListShares", + mock.Anything, + mock.MatchedBy(func(req *collaboration.ListSharesRequest) bool { + for _, f := range req.Filters { + if f.Type == collaboration.Filter_TYPE_SPACE_ROOT && !f.GetSpaceRoot() { + return true + } + } + return false + }), + ).Return(listSharesResponse, nil) + + _, err := driveItemPermissionsService.ListPermissions(context.Background(), itemID, svc.ListPermissionsQueryOptions{}) + Expect(err).ToNot(HaveOccurred()) + gatewayClient.AssertExpectations(GinkgoT()) + }) It("returns one permission per share", func() { statResponse.Info.PermissionSet = roleconversions.NewEditorRole().CS3ResourcePermissions() listSharesResponse.Shares = []*collaboration.Share{ diff --git a/services/graph/pkg/service/v0/base.go b/services/graph/pkg/service/v0/base.go index 4b2c8edd2c..6433484738 100644 --- a/services/graph/pkg/service/v0/base.go +++ b/services/graph/pkg/service/v0/base.go @@ -278,6 +278,7 @@ func (g BaseGraphService) listUserShares(ctx context.Context, filters []*collabo concreteFilters := []*collaboration.Filter{ share.UserGranteeFilter(), share.GroupGranteeFilter(), + share.SpaceRootFilter(false), } concreteFilters = append(concreteFilters, filters...)