Auth client: fetch machine context even if session is null; derive role/id from machineContext
This commit is contained in:
parent
43576ff8d7
commit
8292abee88
1 changed files with 11 additions and 5 deletions
|
|
@ -102,8 +102,14 @@ export function AuthProvider({ children }: { children: React.ReactNode }) {
|
|||
}
|
||||
}, [session?.user])
|
||||
|
||||
// Sempre tenta obter o contexto da máquina.
|
||||
// 1) Se a sessão Better Auth indicar role "machine", buscamos normalmente.
|
||||
// 2) Se a sessão vier nula (alguns ambientes WebView), ainda assim tentamos
|
||||
// carregar o contexto — se a API responder 200, assumimos que há sessão válida
|
||||
// do lado do servidor e populamos o contexto para o restante do app.
|
||||
useEffect(() => {
|
||||
if (!session?.user || session.user.role !== "machine") {
|
||||
const shouldFetch = Boolean(session?.user?.role === "machine") || !session?.user
|
||||
if (!shouldFetch) {
|
||||
setMachineContext(null)
|
||||
setMachineContextError(null)
|
||||
setMachineContextLoading(false)
|
||||
|
|
@ -233,13 +239,13 @@ export function AuthProvider({ children }: { children: React.ReactNode }) {
|
|||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [ensureUser, session?.user?.email, session?.user?.tenantId, session?.user?.role, convexUserId])
|
||||
|
||||
const baseRole = session?.user?.role ? session.user.role.toLowerCase() : null
|
||||
// Se não houver sessão mas tivermos contexto de máquina, tratamos como "machine"
|
||||
const baseRole = session?.user?.role ? session.user.role.toLowerCase() : (machineContext ? "machine" : null)
|
||||
const personaRole = session?.user?.machinePersona ? session.user.machinePersona.toLowerCase() : null
|
||||
const normalizedRole =
|
||||
baseRole === "machine" ? machineContext?.persona ?? personaRole ?? null : baseRole
|
||||
baseRole === "machine" ? (machineContext?.persona ?? personaRole ?? null) : baseRole
|
||||
|
||||
const effectiveConvexUserId =
|
||||
baseRole === "machine" ? machineContext?.assignedUserId ?? null : convexUserId
|
||||
const effectiveConvexUserId = baseRole === "machine" ? (machineContext?.assignedUserId ?? null) : convexUserId
|
||||
|
||||
const value = useMemo<AuthContextValue>(
|
||||
() => ({
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue