feat: CSV exports, PDF improvements, play internal/external with hour split, roles cleanup, admin companies with 'Cliente avulso', ticket list spacing/alignment fixes, status translations and mappings

This commit is contained in:
Esdras Renan 2025-10-07 13:42:45 -03:00
parent addd4ce6e8
commit 3bafcc5a0a
45 changed files with 1401 additions and 256 deletions

View file

@ -2,7 +2,6 @@ import { NextRequest, NextResponse } from "next/server"
import { getCookieCache } from "better-auth/cookies"
const PUBLIC_PATHS = [/^\/login$/, /^\/api\/auth/, /^\/_next\//, /^\/favicon/]
const CUSTOMER_ALLOWED_PATHS = [/^\/portal(?:$|\/)/, /^\/api\/auth/, /^\/_next\//, /^\/favicon/]
const ADMIN_ONLY_PATHS = [/^\/admin(?:$|\/)/]
const PORTAL_HOME = "/portal"
const APP_HOME = "/dashboard"
@ -24,21 +23,9 @@ export async function middleware(request: NextRequest) {
const role = (session.user as { role?: string })?.role?.toLowerCase() ?? "agent"
if (role === "customer") {
const canAccess = CUSTOMER_ALLOWED_PATHS.some((pattern) => pattern.test(pathname))
if (!canAccess) {
const redirectUrl = new URL(PORTAL_HOME, request.url)
redirectUrl.searchParams.set("callbackUrl", pathname + search)
return NextResponse.redirect(redirectUrl)
}
} else {
if (pathname.startsWith(PORTAL_HOME)) {
return NextResponse.redirect(new URL(APP_HOME, request.url))
}
const isAdmin = role === "admin"
if (!isAdmin && ADMIN_ONLY_PATHS.some((pattern) => pattern.test(pathname))) {
return NextResponse.redirect(new URL(APP_HOME, request.url))
}
const isAdmin = role === "admin"
if (!isAdmin && ADMIN_ONLY_PATHS.some((pattern) => pattern.test(pathname))) {
return NextResponse.redirect(new URL(APP_HOME, request.url))
}
return NextResponse.next()
@ -48,4 +35,3 @@ export const config = {
runtime: "nodejs",
matcher: ["/(.*)"],
}