Files
prowler/ui/middleware.ts
T
2025-07-16 14:21:45 +05:45

32 lines
819 B
TypeScript

import { NextRequest, NextResponse } from "next/server";
import { auth } from "@/auth.config";
export default auth((req: NextRequest & { auth: any }) => {
const { pathname } = req.nextUrl;
const user = req.auth?.user;
if (
!user &&
!pathname.includes("/sign-in") &&
!pathname.includes("/sign-up")
) {
return NextResponse.redirect(new URL("/sign-in", req.url));
}
if (user?.permissions) {
const permissions = user.permissions;
if (pathname.startsWith("/billing") && !permissions.manage_billing) {
return NextResponse.redirect(new URL("/", req.url));
}
}
return NextResponse.next();
});
export const config = {
// https://nextjs.org/docs/app/building-your-application/routing/middleware#matcher
matcher: ["/((?!api|_next/static|_next/image|.*\\.png$).*)"],
};