fix(auth): preserve backend roles on login
This commit is contained in:
+19
-15
@@ -125,23 +125,27 @@ export const useAuthStore = create<AuthState>((set, get) => ({
|
||||
},
|
||||
}
|
||||
}),
|
||||
login: (user, verifiedRoles = ["consumer"], themePreference) =>
|
||||
set((state) => ({
|
||||
isAuthenticated: true,
|
||||
user,
|
||||
currentRole: user.role,
|
||||
verifiedRoles,
|
||||
verificationStatus: verifiedRoles.reduce<Partial<Record<UserRole, VerificationStatus>>>(
|
||||
(acc, role) => {
|
||||
login: (user, verifiedRoles, themePreference) =>
|
||||
set((state) => {
|
||||
const nextVerifiedRoles = verifiedRoles ?? user.verifiedRoles ?? [user.role]
|
||||
const nextVerificationStatus =
|
||||
user.verificationStatus ??
|
||||
nextVerifiedRoles.reduce<Partial<Record<UserRole, VerificationStatus>>>((acc, role) => {
|
||||
acc[role] = "approved"
|
||||
return acc
|
||||
},
|
||||
{},
|
||||
),
|
||||
verificationReasons: {},
|
||||
notificationPrefs: state.notificationPrefs,
|
||||
themePreference: themePreference ?? state.themePreference,
|
||||
})),
|
||||
}, {})
|
||||
|
||||
return {
|
||||
isAuthenticated: true,
|
||||
user,
|
||||
currentRole: user.role,
|
||||
verifiedRoles: nextVerifiedRoles,
|
||||
verificationStatus: nextVerificationStatus,
|
||||
verificationReasons: {},
|
||||
notificationPrefs: state.notificationPrefs,
|
||||
themePreference: themePreference ?? state.themePreference,
|
||||
}
|
||||
}),
|
||||
logout: () =>
|
||||
set({
|
||||
isAuthenticated: false,
|
||||
|
||||
Reference in New Issue
Block a user