feat: improve company forms, phone input, and auth redirects
This commit is contained in:
parent
6962d5e5b5
commit
604216ddec
3 changed files with 57 additions and 17 deletions
|
|
@ -15,7 +15,7 @@ export async function middleware(request: NextRequest) {
|
|||
return new NextResponse("Invalid Host header", { status: 403 })
|
||||
}
|
||||
|
||||
const { pathname, search } = request.nextUrl
|
||||
const { pathname, searchParams, search } = request.nextUrl
|
||||
|
||||
if (pathname.startsWith("/api")) {
|
||||
return NextResponse.next()
|
||||
|
|
@ -49,6 +49,18 @@ export async function middleware(request: NextRequest) {
|
|||
? ((session.user as unknown as { machinePersona?: string }).machinePersona ?? "").toLowerCase()
|
||||
: null
|
||||
|
||||
if (pathname === "/login") {
|
||||
const callback = searchParams.get("callbackUrl") ?? undefined
|
||||
const defaultDestination =
|
||||
role === "machine"
|
||||
? machinePersona === "manager"
|
||||
? "/dashboard"
|
||||
: "/portal/tickets"
|
||||
: APP_HOME
|
||||
const target = callback && !callback.startsWith("/login") ? callback : defaultDestination
|
||||
return NextResponse.redirect(new URL(target, request.url))
|
||||
}
|
||||
|
||||
// Ajusta destinos conforme persona da máquina para evitar loops login<->dashboard
|
||||
if (role === "machine") {
|
||||
// Evita enviar colaborador ao dashboard; redireciona para o Portal
|
||||
|
|
@ -56,11 +68,6 @@ export async function middleware(request: NextRequest) {
|
|||
return NextResponse.redirect(new URL("/portal/tickets", request.url))
|
||||
}
|
||||
// Evita mostrar login quando já há sessão de máquina
|
||||
if (pathname === "/login") {
|
||||
const target = machinePersona === "manager" ? "/dashboard" : "/portal/tickets"
|
||||
const url = new URL(target, request.url)
|
||||
return NextResponse.redirect(url)
|
||||
}
|
||||
}
|
||||
|
||||
const isAdmin = role === "admin"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue