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