Add per-user library settings, folder passwords, and a still picker.

Settings manages folders, thumbnail defaults, and passwords for the signed-in account, and choosing an image now browses saved stills instead of only the desktop file dialog.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Towsty
2026-08-25 18:31:04 -05:00
co-authored by Cursor
parent c4e6af9f77
commit f0f80b5873
20 changed files with 1063 additions and 236 deletions
+20 -4
View File
@@ -1,6 +1,22 @@
export default defineEventHandler(async (event) => {
assertLibraryAccess(event)
const id = getRouterParam(event, 'id')
const body = await readBody<{ name?: string }>(event)
return await renameFolder(String(id), String(body?.name || ''))
const { owner } = assertLibraryOwner(event)
const id = String(getRouterParam(event, 'id') || '')
const body = await readBody<{
name?: string
thumbnailDefault?: boolean
password?: string | null
currentPassword?: string
}>(event)
const folder = await updateFolder(owner, id, {
name: body?.name,
thumbnailDefault: body?.thumbnailDefault,
password: body?.password,
currentPassword: body?.currentPassword
})
if (body?.password) {
setFolderUnlock(event, folder.id, passwordVersion(folder.passwordHash))
} else if (body?.password === '') {
clearFolderUnlock(event, folder.id)
}
return publicLibrary(event)
})