mirror of
https://github.com/PeterMaquiran/tvone.git
synced 2026-04-20 21:45:33 +00:00
23 lines
823 B
TypeScript
23 lines
823 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/create-news", req.url));
|
|
}
|
|
|
|
return NextResponse.next();
|
|
} |