Skip to content

Commit eecfddc

Browse files
committed
chore(decomposedfs): revert changes to legacy utils tree
Keep the service-account permission merge in the active pkg/storage/pkg/decomposedfs tree only. utils/decomposedfs is retained for historic reference, so leave it unchanged (review feedback).
1 parent dcf0d87 commit eecfddc

2 files changed

Lines changed: 4 additions & 32 deletions

File tree

pkg/storage/utils/decomposedfs/node/node_test.go

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import (
2222
"encoding/json"
2323
"time"
2424

25-
userpb "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1"
2625
provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1"
2726
. "github.com/onsi/ginkgo/v2"
2827
. "github.com/onsi/gomega"
@@ -267,32 +266,6 @@ var _ = Describe("Node", func() {
267266
expected := ocsconv.NewManagerRole().CS3ResourcePermissions()
268267
Expect(grants.PermissionsEqual(perms, expected)).To(BeTrue())
269268
})
270-
It("Merges grants with the service account permissions for service accounts", func() {
271-
pSpace, err := env.CreateTestStorageSpace("project", &provider.Quota{QuotaMaxBytes: 2000})
272-
Expect(err).ToNot(HaveOccurred())
273-
sa := &userpb.User{Id: &userpb.UserId{OpaqueId: "service-account", Type: userpb.UserType_USER_TYPE_SERVICE}}
274-
env.Permissions.On("AssemblePermissions", mock.Anything, mock.Anything, mock.Anything).Return(&provider.ResourcePermissions{
275-
AddGrant: true,
276-
Stat: true,
277-
}, nil).Times(1)
278-
err = env.Fs.AddGrant(env.Ctx, &provider.Reference{
279-
ResourceId: &provider.ResourceId{SpaceId: pSpace.SpaceId, OpaqueId: pSpace.OpaqueId},
280-
}, &provider.Grant{
281-
Grantee: &provider.Grantee{Type: provider.GranteeType_GRANTEE_TYPE_USER, Id: &provider.Grantee_UserId{UserId: sa.Id}},
282-
Permissions: ocsconv.NewEditorRole().CS3ResourcePermissions(),
283-
})
284-
Expect(err).ToNot(HaveOccurred())
285-
// resolve as the service account: grant must be honored (not shadowed by an
286-
// early return) and merged with, not replaced by, the service account defaults.
287-
spaceRoot, err := env.Lookup.NodeFromSpaceID(env.Ctx, pSpace.SpaceId)
288-
Expect(err).ToNot(HaveOccurred())
289-
saCtx := ctxpkg.ContextSetUser(env.Ctx, sa)
290-
perms, err := node.NewPermissions(env.Lookup).AssemblePermissions(saCtx, spaceRoot)
291-
Expect(err).ToNot(HaveOccurred())
292-
expected := ocsconv.NewEditorRole().CS3ResourcePermissions()
293-
node.AddPermissions(expected, node.ServiceAccountPermissions())
294-
Expect(grants.PermissionsEqual(perms, expected)).To(BeTrue())
295-
})
296269
It("Checks the Editor permissions on a project space and a denial", func() {
297270
storageSpace, err := env.CreateTestStorageSpace("project", &provider.Quota{QuotaMaxBytes: 2000})
298271
Expect(err).ToNot(HaveOccurred())

pkg/storage/utils/decomposedfs/node/permissions.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,10 @@ func (p *Permissions) assemblePermissions(ctx context.Context, n *Node, failOnTr
133133
return NoPermissions(), nil
134134
}
135135

136+
if u.GetId().GetType() == userpb.UserType_USER_TYPE_SERVICE {
137+
return ServiceAccountPermissions(), nil
138+
}
139+
136140
// are we reading a revision?
137141
if strings.Contains(n.ID, RevisionIDDelimiter) {
138142
// verify revision key format
@@ -199,11 +203,6 @@ func (p *Permissions) assemblePermissions(ctx context.Context, n *Node, failOnTr
199203
return OwnerPermissions(), nil
200204
}
201205

202-
// merge in the general service account permissions; grants can only add to them
203-
if u.GetId().GetType() == userpb.UserType_USER_TYPE_SERVICE {
204-
AddPermissions(ap, ServiceAccountPermissions())
205-
}
206-
207206
appctx.GetLogger(ctx).Debug().Interface("permissions", ap).Str("spaceid", n.SpaceID).Str("nodeid", n.ID).Interface("user", u).Msg("returning agregated permissions")
208207
return ap, nil
209208
}

0 commit comments

Comments
 (0)