fix: (regression 0.36.0) admin/fs: error modifying an item without renaming
Massimo Melina committed
Feb 24, 2023 at 13:46 UTC
f5a3c1915fe12979a2748c9cb2b723fef0f8aeae
1 file changed
+5
-3
src/api.vfs.ts
+5
-3
@@ -81,9 +81,11 @@ const apis: ApiHandlers = {
81
if (!n)
82
return new ApiError(HTTP_NOT_FOUND, 'path not found')
83
props = pickProps(props, ['name','source','masks','default', ...Object.keys(defaultPerms)])
84
- const parent = await urlToNodeOriginal(dirname(uri))
85
- if (parent?.children?.find(x => getNodeName(x) === props.name))
86
- return new ApiError(HTTP_CONFLICT, 'name already present')
84
+ if (props.name && props.name !== getNodeName(n)) {
85
+ const parent = await urlToNodeOriginal(dirname(uri))
86
+ if (parent?.children?.find(x => getNodeName(x) === props.name))
87
+ return new ApiError(HTTP_CONFLICT, 'name already present')
88
+ }
89
props = objSameKeys(props, v => v === null ? undefined : v) // null is a way to serialize undefined, that will restore default values
90
if (props.masks && typeof props.masks !== 'object')
91
delete props.masks