fix: disallow versioning to be suspended with object lock (#9930)

This commit is contained in:
Harshavardhana
2020-06-28 08:15:15 -07:00
committed by GitHub
parent 28a1a17187
commit 4bba2cd034
2 changed files with 12 additions and 1 deletions

View File

@@ -62,6 +62,15 @@ func (api objectAPIHandlers) PutBucketVersioningHandler(w http.ResponseWriter, r
return
}
if rcfg, _ := globalBucketObjectLockSys.Get(bucket); rcfg.LockEnabled && v.Suspended() {
writeErrorResponse(ctx, w, APIError{
Code: "InvalidBucketState",
Description: "An Object Lock configuration is present on this bucket, so the versioning state cannot be changed.",
HTTPStatusCode: http.StatusConflict,
}, r.URL, guessIsBrowserReq(r))
return
}
configData, err := xml.Marshal(v)
if err != nil {
writeErrorResponse(ctx, w, toAPIError(ctx, err), r.URL, guessIsBrowserReq(r))