Impede acesso ao portal para máquinas desativadas

This commit is contained in:
Esdras Renan 2025-10-18 00:01:35 -03:00
parent 0e97e4c0d6
commit e5085962e9
5 changed files with 195 additions and 18 deletions

View file

@ -24,11 +24,19 @@ export type MachineSessionContext = {
assignedUserEmail: string | null
assignedUserName: string | null
assignedUserRole: string | null
isActive: boolean
}
headers: Headers
response: unknown
}
export class MachineInactiveError extends Error {
constructor(message = "Máquina desativada") {
super(message)
this.name = "MachineInactiveError"
}
}
export async function createMachineSession(machineToken: string, rememberMe = true): Promise<MachineSessionContext> {
const convexUrl = env.NEXT_PUBLIC_CONVEX_URL
if (!convexUrl) {
@ -40,6 +48,11 @@ export async function createMachineSession(machineToken: string, rememberMe = tr
const resolved = await client.mutation(api.machines.resolveToken, { machineToken })
let machineEmail = resolved.machine.authEmail ?? null
const machineActive = resolved.machine.isActive ?? true
if (!machineActive) {
throw new MachineInactiveError()
}
if (!machineEmail) {
const account = await ensureMachineAccount({
machineId: resolved.machine._id,
@ -84,6 +97,7 @@ export async function createMachineSession(machineToken: string, rememberMe = tr
assignedUserEmail: resolved.machine.assignedUserEmail ?? null,
assignedUserName: resolved.machine.assignedUserName ?? null,
assignedUserRole: resolved.machine.assignedUserRole ?? null,
isActive: machineActive,
},
headers: signIn.headers,
response: signIn.response,