Add API utility for requiring an admin session
This commit is contained in:
parent
b0d5cdf791
commit
b2f48e98e0
3 changed files with 13 additions and 15 deletions
|
@ -1,13 +1,6 @@
|
|||
import { deleteDatabase } from "~/server/database";
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
const session = await requireServerSession(event);
|
||||
if (session.account.type !== "admin") {
|
||||
throw createError({
|
||||
statusCode: 403,
|
||||
statusMessage: "Forbidden",
|
||||
});
|
||||
}
|
||||
|
||||
await requireServerSessionWithAdmin(event);
|
||||
await deleteDatabase();
|
||||
})
|
||||
|
|
|
@ -4,13 +4,7 @@ import { z } from "zod/v4-mini";
|
|||
import { broadcastEvent } from "~/server/streams";
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
const session = await requireServerSession(event);
|
||||
if (session.account.type !== "admin") {
|
||||
throw createError({
|
||||
statusCode: 403,
|
||||
statusMessage: "Forbidden",
|
||||
});
|
||||
}
|
||||
await requireServerSessionWithAdmin(event);
|
||||
const { success, error, data: patch } = apiUserPatchSchema.safeParse(await readBody(event));
|
||||
if (!success) {
|
||||
throw createError({
|
||||
|
|
|
@ -70,3 +70,14 @@ export async function requireServerSession(event: H3Event) {
|
|||
});
|
||||
return session;
|
||||
}
|
||||
|
||||
export async function requireServerSessionWithAdmin(event: H3Event) {
|
||||
const session = await requireServerSession(event);
|
||||
if (session.account.type !== "admin") {
|
||||
throw createError({
|
||||
statusCode: 403,
|
||||
statusMessage: "Forbidden",
|
||||
});
|
||||
}
|
||||
return session;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue