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";
|
import { deleteDatabase } from "~/server/database";
|
||||||
|
|
||||||
export default defineEventHandler(async (event) => {
|
export default defineEventHandler(async (event) => {
|
||||||
const session = await requireServerSession(event);
|
await requireServerSessionWithAdmin(event);
|
||||||
if (session.account.type !== "admin") {
|
|
||||||
throw createError({
|
|
||||||
statusCode: 403,
|
|
||||||
statusMessage: "Forbidden",
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
await deleteDatabase();
|
await deleteDatabase();
|
||||||
})
|
})
|
||||||
|
|
|
@ -4,13 +4,7 @@ import { z } from "zod/v4-mini";
|
||||||
import { broadcastEvent } from "~/server/streams";
|
import { broadcastEvent } from "~/server/streams";
|
||||||
|
|
||||||
export default defineEventHandler(async (event) => {
|
export default defineEventHandler(async (event) => {
|
||||||
const session = await requireServerSession(event);
|
await requireServerSessionWithAdmin(event);
|
||||||
if (session.account.type !== "admin") {
|
|
||||||
throw createError({
|
|
||||||
statusCode: 403,
|
|
||||||
statusMessage: "Forbidden",
|
|
||||||
});
|
|
||||||
}
|
|
||||||
const { success, error, data: patch } = apiUserPatchSchema.safeParse(await readBody(event));
|
const { success, error, data: patch } = apiUserPatchSchema.safeParse(await readBody(event));
|
||||||
if (!success) {
|
if (!success) {
|
||||||
throw createError({
|
throw createError({
|
||||||
|
|
|
@ -70,3 +70,14 @@ export async function requireServerSession(event: H3Event) {
|
||||||
});
|
});
|
||||||
return session;
|
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