Server-admin (/server-admin): systemvide innstillinger (AI, kanaler) — kun for owners. Workspace-admin (/admin): workspace-spesifikke innstillinger (sider, entiteter) — for owner/admin i gjeldende workspace. - Ny rute /server-admin med egen layout-gate (owner-rolle) - Flytt AI og kanaler fra /admin til /server-admin - Workspace-admin gate sjekker nå rolle i gjeldende workspace - Sidebar: workspace-admin-lenker under separator, server-admin-nav i server-admin-modus - WorkspaceSwitcher: "Admin (server)" kun for owners - Kanaler: trekkspill gruppert etter workspace - Config-API: owners kan endre kanaler på tvers av workspaces - Migrasjon: ai_prompts-tabell Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
19 lines
541 B
TypeScript
19 lines
541 B
TypeScript
import { error } from '@sveltejs/kit';
|
|
import type { LayoutServerLoad } from './$types';
|
|
import { sql } from '$lib/server/db';
|
|
|
|
export const load: LayoutServerLoad = async ({ locals }) => {
|
|
if (!locals.user) throw error(401, 'Ikke innlogget');
|
|
|
|
// Server-admin: må ha owner-rolle i minst ett workspace
|
|
const rows = await sql`
|
|
SELECT 1 FROM workspace_members
|
|
WHERE user_id = ${locals.user.id}
|
|
AND role = 'owner'
|
|
LIMIT 1
|
|
`;
|
|
|
|
if (rows.length === 0) {
|
|
throw error(403, 'Ingen tilgang til server-admin');
|
|
}
|
|
};
|