diff --git a/client/contexts/AuthContext.tsx b/client/contexts/AuthContext.tsx index d0dd37ee..5853cf51 100644 --- a/client/contexts/AuthContext.tsx +++ b/client/contexts/AuthContext.tsx @@ -5,12 +5,14 @@ import { UserProfile } from "@/lib/database.types"; import { aethexToast } from "@/lib/aethex-toast"; import { aethexUserService, + aethexRoleService, type AethexUserProfile, } from "@/lib/aethex-database-adapter"; interface AuthContextType { user: User | null; profile: AethexUserProfile | null; + roles: string[]; session: Session | null; loading: boolean; signIn: (email: string, password: string) => Promise; @@ -39,6 +41,7 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ }) => { const [user, setUser] = useState(null); const [profile, setProfile] = useState(null); + const [roles, setRoles] = useState([]); const [session, setSession] = useState(null); const [loading, setLoading] = useState(true); @@ -79,6 +82,7 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ await fetchUserProfile(session.user.id); } else { setProfile(null); + setRoles([]); } setLoading(false); @@ -105,6 +109,12 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ try { const userProfile = await aethexUserService.getCurrentUser(); setProfile(userProfile); + try { + const r = await aethexRoleService.getUserRoles(userId); + setRoles(r); + } catch { + setRoles([]); + } setLoading(false); return userProfile; } catch (error) { @@ -233,6 +243,7 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ const value = { user, profile, + roles, session, loading, signIn,