fix: avoid 409 conflict when renaming files differing only by case (#5729)
This commit is contained in:
@@ -206,6 +206,11 @@ func resourcePatchHandler(fileCache FileCache) handleFunc {
|
|||||||
return http.StatusBadRequest, err
|
return http.StatusBadRequest, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
srcInfo, _ := d.user.Fs.Stat(src)
|
||||||
|
dstInfo, _ := d.user.Fs.Stat(dst)
|
||||||
|
same := os.SameFile(srcInfo, dstInfo)
|
||||||
|
|
||||||
|
if action != "rename" || !same {
|
||||||
override := r.URL.Query().Get("override") == "true"
|
override := r.URL.Query().Get("override") == "true"
|
||||||
rename := r.URL.Query().Get("rename") == "true"
|
rename := r.URL.Query().Get("rename") == "true"
|
||||||
if !override && !rename {
|
if !override && !rename {
|
||||||
@@ -217,10 +222,10 @@ func resourcePatchHandler(fileCache FileCache) handleFunc {
|
|||||||
dst = addVersionSuffix(dst, d.user.Fs)
|
dst = addVersionSuffix(dst, d.user.Fs)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Permission for overwriting the file
|
|
||||||
if override && !d.user.Perm.Modify {
|
if override && !d.user.Perm.Modify {
|
||||||
return http.StatusForbidden, nil
|
return http.StatusForbidden, nil
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
err = d.RunHook(func() error {
|
err = d.RunHook(func() error {
|
||||||
return patchAction(r.Context(), action, src, dst, d, fileCache)
|
return patchAction(r.Context(), action, src, dst, d, fileCache)
|
||||||
|
|||||||
Reference in New Issue
Block a user