Skip to content

Commit 7d0d8f8

Browse files
authored
Merge pull request #5102 from 2403905/issue-10882
Fix the SpaceMembershipExpired event
2 parents dfd964e + 1c42277 commit 7d0d8f8

File tree

2 files changed

+21
-14
lines changed

2 files changed

+21
-14
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Bugfix: Fix the SpaceMembershipExpired event
2+
3+
We fixed the SpaceMembershipExpired event emitting.
4+
5+
https://github.com/cs3org/reva/pull/5102
6+
https://github.com/owncloud/ocis/issues/10882

pkg/storage/utils/decomposedfs/spaces.go

+15-14
Original file line numberDiff line numberDiff line change
@@ -847,20 +847,10 @@ func (fs *Decomposedfs) linkStorageSpaceType(ctx context.Context, spaceType, spa
847847

848848
func (fs *Decomposedfs) StorageSpaceFromNode(ctx context.Context, n *node.Node, checkPermissions bool) (*provider.StorageSpace, error) {
849849
user := ctxpkg.ContextMustGetUser(ctx)
850-
if checkPermissions {
850+
if checkPermissions && n.SpaceRoot.IsDisabled(ctx) {
851851
rp, err := fs.p.AssemblePermissions(ctx, n)
852-
switch {
853-
case err != nil:
854-
return nil, err
855-
case !rp.Stat:
856-
return nil, errtypes.NotFound(fmt.Sprintf("space %s not found", n.ID))
857-
}
858-
859-
if n.SpaceRoot.IsDisabled(ctx) {
860-
rp, err := fs.p.AssemblePermissions(ctx, n)
861-
if err != nil || !permissions.IsManager(rp) {
862-
return nil, errtypes.PermissionDenied(fmt.Sprintf("user %s is not allowed to list deleted spaces %s", user.Username, n.ID))
863-
}
852+
if err != nil || !permissions.IsManager(rp) {
853+
return nil, errtypes.PermissionDenied(fmt.Sprintf("user %s is not allowed to list deleted spaces %s", user.Username, n.ID))
864854
}
865855
}
866856

@@ -934,7 +924,7 @@ func (fs *Decomposedfs) StorageSpaceFromNode(ctx context.Context, n *node.Node,
934924
}
935925

936926
// publish SpaceMembershipExpired event
937-
if errDeleteGrant == nil && errIndexRemove == nil {
927+
if errDeleteGrant == nil {
938928
ev := events.SpaceMembershipExpired{
939929
SpaceOwner: n.SpaceOwnerOrManager(ctx),
940930
SpaceID: &provider.StorageSpaceId{OpaqueId: n.SpaceID},
@@ -961,6 +951,17 @@ func (fs *Decomposedfs) StorageSpaceFromNode(ctx context.Context, n *node.Node,
961951
grantMap[id] = g.Permissions
962952
}
963953

954+
// check permissions after expired grants have been removed
955+
if checkPermissions {
956+
rp, err := fs.p.AssemblePermissions(ctx, n)
957+
switch {
958+
case err != nil:
959+
return nil, err
960+
case !rp.Stat:
961+
return nil, errtypes.NotFound(fmt.Sprintf("space %s not found", n.ID))
962+
}
963+
}
964+
964965
grantMapJSON, err := json.Marshal(grantMap)
965966
if err != nil {
966967
return nil, err

0 commit comments

Comments
 (0)