Files
tvone/middleware.ts
T
2026-04-19 03:38:15 +01:00

23 lines
821 B
TypeScript

import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";
import { getPermision } from "./lib/getPermisions";
export function middleware(req: NextRequest) {
const token = req.cookies.get("access_token")?.value;
const { pathname } = req.nextUrl;
const isAdminRoute = pathname.startsWith("/admin");
const isLoginPage = pathname.startsWith("/login");
// 🚫 block user if not logged in or not admin
if (isAdminRoute && ( !token || !getPermision(req).includes("Admin") )) {
return NextResponse.redirect(new URL("/login", req.url));
}
// 🔁 prevent logged-in users from seeing login page
if (isLoginPage && token && getPermision(req).includes("Admin")) {
return NextResponse.redirect(new URL("/admin/dashboard", req.url));
}
return NextResponse.next();
}