folder-size: require list permissions
Massimo Melina committed
Jan 14, 2025 at 23:46 UTC
d84c322792686b25a678943c7a650db179bbd1ae
2 files changed
+5
src/frontEndApis.ts
+2
@@ -178,6 +178,8 @@ export const frontEndApis: ApiHandlers = {
178
throw new ApiError(HTTP_NOT_FOUND)
179
if (!await nodeIsDirectory(folder))
180
throw new ApiError(HTTP_METHOD_NOT_ALLOWED)
181
+ if (statusCodeForMissingPerm(folder, 'can_list', ctx))
182
+ return new ApiError(ctx.status)
183
let bytes = 0
184
for await (const n of walkNode(folder, { ctx, onlyFiles: true, depth: Infinity }))
185
bytes += await nodeStats(n).then(x => x?.size || 0, () => 0)
tests/test.ts
+3
@@ -122,6 +122,9 @@ describe('basics', () => {
122
return login('rejetto').then(() => { throw Error('logged in') }, () => 0)
123
.finally(() => defaultBaseUrl = BASE_URL)
124
})
125
+
126
+ it('folder size', reqApi('get_folder_size', { uri: 'f1/page' }, res => res.bytes === 6328 ))
127
+ it('folder size.cant', reqApi('get_folder_size', { uri: 'for-admins' }, 401))
128
})
129
130
describe('accounts', () => {