Files
aigen/server/api/library/password.put.ts
T
TowstyandCursor 83051e0ea3 Add a persistent clip library with folders, optional password, and hidden-thumbnail glow.
Generated videos save into a chosen folder, sensitive clips skip thumbnails until played, and Docker writes the catalog to a Coolify volume.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 18:03:26 -05:00

15 lines
722 B
TypeScript

export default defineEventHandler(async (event) => {
const body = await readBody<{ password?: string; currentPassword?: string }>(event)
if (isLibraryLocked() && !(await verifyLibraryPassword(String(body?.currentPassword || '')))) {
throw createError({ statusCode: 401, statusMessage: 'Current library password is incorrect' })
}
const next = String(body?.password || '').trim()
if (next && next.length < 4) {
throw createError({ statusCode: 400, statusMessage: 'Use at least 4 characters, or leave blank to remove the password' })
}
const version = await setLibraryPassword(next || null)
if (next) setLibraryUnlock(event, version)
else clearLibraryUnlock(event)
return publicLibrary(event)
})