33 lines
989 B
Plaintext
33 lines
989 B
Plaintext
---
|
|
import DashboardLayout from "#layouts/DashboardLayout.astro";
|
|
import UserLayout from "#layouts/DashboardLayout.astro";
|
|
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
|
|
import { Enums, prisma } from "#lib/server/prisma";
|
|
import { createCaller } from "src/astro-typesafe-api-caller";
|
|
import DashboardModule from "#modules/Dashboard/DashboardModule.svelte";
|
|
import ImpersonateUserModule from "#modules/ImpersonateUserModule.svelte";
|
|
|
|
const caller = createCaller(Astro)
|
|
|
|
const params = Astro.params;
|
|
const page = Number(params.page)
|
|
|
|
const user = await caller.user.self.GET.fetch(undefined, {
|
|
headers: {
|
|
"Authorization": `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
|
}
|
|
});
|
|
|
|
if (!user) {
|
|
return Astro.redirect("/auth/login")
|
|
}
|
|
|
|
if (user.rolle !== Enums.BenutzerRolle.ADMIN) {
|
|
return Astro.redirect("/dashboard")
|
|
}
|
|
|
|
---
|
|
|
|
<DashboardLayout title="Impersonate User" {user}>
|
|
<ImpersonateUserModule client:load></ImpersonateUserModule>
|
|
</DashboardLayout> |