Add ISAC user operations and access roles

This commit is contained in:
JB
2026-07-24 23:21:28 -04:00
parent 8ecdfaa319
commit 472528f429
21 changed files with 355 additions and 49 deletions
+5 -4
View File
@@ -1,5 +1,5 @@
import { getSessionUser } from '$lib/server/auth/session';
import { requireAdmin } from '$lib/server/auth/authorization';
import { requirePermission } from '$lib/server/auth/authorization';
import { getDatabase } from '$lib/server/database';
import { fail } from '@sveltejs/kit';
import { randomUUID } from 'node:crypto';
@@ -7,7 +7,8 @@ import type { Actions, PageServerLoad } from './$types';
type SharedEffect = { statId: string; valueI: number; valueII: number };
export const load: PageServerLoad = async () => {
export const load: PageServerLoad = async ({ cookies }) => {
await requirePermission(await getSessionUser(cookies), 'data.manage');
const db = await getDatabase();
const [talents, tiers, triggers, links, effects, stats, templates] = await Promise.all([
(await db.prepare('SELECT * FROM talents ORDER BY active DESC,name COLLATE NOCASE')).all(),
@@ -62,7 +63,7 @@ const renderDescription = (
export const actions: Actions = {
saveTrigger: async ({ request, cookies }) => {
requireAdmin(await getSessionUser(cookies));
await requirePermission(await getSessionUser(cookies), 'data.manage');
const form = await request.formData();
const id = String(form.get('id') ?? ''), name = String(form.get('name') ?? '').trim(), description = String(form.get('description') ?? '').trim(), uptime = form.get('supportsUptime') === 'on';
const min = uptime ? Number(form.get('minUptime')) : null, max = uptime ? Number(form.get('maxUptime')) : null;
@@ -76,7 +77,7 @@ export const actions: Actions = {
return { triggerSaved: true };
},
saveTalent: async ({ request, cookies }) => {
requireAdmin(await getSessionUser(cookies));
await requirePermission(await getSessionUser(cookies), 'data.manage');
const form = await request.formData();
const id = String(form.get('id') ?? ''), name = String(form.get('name') ?? '').trim(), category = String(form.get('category') ?? '');
const descriptionTemplate = String(form.get('descriptionTemplate') ?? '').trim();