Merge pull request #2335 from versity/sis/getbucketversioning-access-control

feat: govern GetBucketVersioning with the regular access checks
This commit is contained in:
Ben McClelland
2026-08-31 14:13:49 -07:00
committed by GitHub
5 changed files with 122 additions and 30 deletions
-8
View File
@@ -138,14 +138,6 @@ func (c S3ApiController) GetBucketVersioning(ctx fiber.Ctx) (*Response, error) {
},
}, err
}
// Only admin users and the bucket owner are allowed to get the versioning state of a bucket.
if err := auth.IsAdminOrOwner(acct, isRoot, parsedAcl); err != nil {
return &Response{
MetaOpts: &MetaOptions{
BucketOwner: parsedAcl.Owner,
},
}, err
}
data, err := c.be.GetBucketVersioning(ctx.RequestCtx(), bucket)
return &Response{
+3 -2
View File
@@ -231,7 +231,7 @@ func TestS3ApiController_GetBucketVersioning(t *testing.T) {
},
},
{
name: "not admin or root",
name: "non owner user with verified access",
input: testInput{
locals: map[utils.ContextKey]any{
utils.ContextKeyIsRoot: false,
@@ -244,14 +244,15 @@ func TestS3ApiController_GetBucketVersioning(t *testing.T) {
},
utils.ContextKeyPublicBucket: true,
},
beRes: validRes,
},
output: testOutput{
response: &Response{
Data: validRes,
MetaOpts: &MetaOptions{
BucketOwner: "root",
},
},
err: s3err.GetAPIError(s3err.ErrAccessDenied),
},
},
{