Fix regression in web ui for retention (#10285)

Fixes: #10283 regression from PR #9259
This commit is contained in:
poornas 2020-08-18 12:09:42 -07:00 committed by GitHub
parent adca28801d
commit 0272973175
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1130,9 +1130,6 @@ func (web *webAPIHandlers) Upload(w http.ResponseWriter, r *http.Request) {
// Ensure that metadata does not contain sensitive information // Ensure that metadata does not contain sensitive information
crypto.RemoveSensitiveEntries(metadata) crypto.RemoveSensitiveEntries(metadata)
retentionRequested := objectlock.IsObjectLockRetentionRequested(r.Header)
legalHoldRequested := objectlock.IsObjectLockLegalHoldRequested(r.Header)
putObject := objectAPI.PutObject putObject := objectAPI.PutObject
getObjectInfo := objectAPI.GetObjectInfo getObjectInfo := objectAPI.GetObjectInfo
if web.CacheAPI() != nil { if web.CacheAPI() != nil {
@ -1140,20 +1137,15 @@ func (web *webAPIHandlers) Upload(w http.ResponseWriter, r *http.Request) {
getObjectInfo = web.CacheAPI().GetObjectInfo getObjectInfo = web.CacheAPI().GetObjectInfo
} }
if retentionRequested || legalHoldRequested { // enforce object retention rules
// enforce object retention rules retentionMode, retentionDate, _, s3Err := checkPutObjectLockAllowed(ctx, r, bucket, object, getObjectInfo, retPerms, holdPerms)
retentionMode, retentionDate, legalHold, s3Err := checkPutObjectLockAllowed(ctx, r, bucket, object, getObjectInfo, retPerms, holdPerms) if s3Err != ErrNone {
if s3Err == ErrNone && retentionMode != "" { writeErrorResponse(ctx, w, errorCodes.ToAPIErr(s3Err), r.URL, guessIsBrowserReq(r))
opts.UserDefined[xhttp.AmzObjectLockMode] = string(retentionMode) return
opts.UserDefined[xhttp.AmzObjectLockRetainUntilDate] = retentionDate.UTC().Format(iso8601TimeFormat) }
} if retentionMode != "" {
if s3Err == ErrNone && legalHold.Status != "" { opts.UserDefined[xhttp.AmzObjectLockMode] = string(retentionMode)
opts.UserDefined[xhttp.AmzObjectLockLegalHold] = string(legalHold.Status) opts.UserDefined[xhttp.AmzObjectLockRetainUntilDate] = retentionDate.UTC().Format(iso8601TimeFormat)
}
if s3Err != ErrNone {
writeErrorResponse(ctx, w, errorCodes.ToAPIErr(s3Err), r.URL, guessIsBrowserReq(r))
return
}
} }
objInfo, err := putObject(GlobalContext, bucket, object, pReader, opts) objInfo, err := putObject(GlobalContext, bucket, object, pReader, opts)