refactor: add protected route prefixes and update admin path in middleware
This commit is contained in:
+7
-4
@@ -2,14 +2,17 @@ import { NextResponse } from 'next/server'
|
|||||||
import type { NextRequest } from 'next/server'
|
import type { NextRequest } from 'next/server'
|
||||||
import { decrypt } from '@/lib/auth'
|
import { decrypt } from '@/lib/auth'
|
||||||
|
|
||||||
const protectedRoutes = ['/', '/my-orders', '/my-purchases', '/reports', '/profile', '/users']
|
const protectedRoutes = ['/', '/my-orders', '/my-purchases', '/reports', '/profile', '/users', '/balances']
|
||||||
|
const protectedPrefixes = ['/my-orders/', '/order/', '/settings/']
|
||||||
const publicRoutes = ['/login', '/register']
|
const publicRoutes = ['/login', '/register']
|
||||||
|
|
||||||
export async function middleware(request: NextRequest) {
|
export async function middleware(request: NextRequest) {
|
||||||
const path = request.nextUrl.pathname
|
const path = request.nextUrl.pathname
|
||||||
|
|
||||||
// Also protect dynamic routes like /my-orders/[id]
|
const isProtectedRoute =
|
||||||
const isProtectedRoute = protectedRoutes.includes(path) || path.startsWith('/my-orders/')
|
protectedRoutes.includes(path) ||
|
||||||
|
protectedPrefixes.some(prefix => path.startsWith(prefix))
|
||||||
|
|
||||||
const isPublicRoute = publicRoutes.includes(path)
|
const isPublicRoute = publicRoutes.includes(path)
|
||||||
|
|
||||||
const cookie = request.cookies.get('session')?.value
|
const cookie = request.cookies.get('session')?.value
|
||||||
@@ -23,7 +26,7 @@ export async function middleware(request: NextRequest) {
|
|||||||
return NextResponse.redirect(new URL('/', request.nextUrl))
|
return NextResponse.redirect(new URL('/', request.nextUrl))
|
||||||
}
|
}
|
||||||
|
|
||||||
if (path.startsWith('/users') && session?.role !== 'superadmin') {
|
if (path.startsWith('/settings') && session?.role !== 'superadmin') {
|
||||||
return NextResponse.redirect(new URL('/', request.nextUrl))
|
return NextResponse.redirect(new URL('/', request.nextUrl))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user