瀏覽代碼

fix(auth): setUser era ignorado no login/refresh

setAuthDataFromPayload atribuía userStore().user direto, pulando setUser
e deixando isAdmin travado em false (setUser/fetchUser eram código morto).
Passa a chamar setUser, que deriva isAdmin de user_type.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ebagabee 2 周之前
父節點
當前提交
4d969a2a1b
共有 2 個文件被更改,包括 3 次插入2 次删除
  1. 2 1
      src/composables/useAuth.js
  2. 1 1
      src/stores/user.js

+ 2 - 1
src/composables/useAuth.js

@@ -5,7 +5,8 @@ import { userStore } from "src/stores/user";
 export const useAuth = () => {
 export const useAuth = () => {
   const setAuthDataFromPayload = async (tokens) => {
   const setAuthDataFromPayload = async (tokens) => {
     const { access_token, user } = tokens;
     const { access_token, user } = tokens;
-    userStore().user = user;
+    // setUser (e não user =) para que isAdmin seja derivado do perfil.
+    userStore().setUser(user);
     userStore().accessToken = access_token;
     userStore().accessToken = access_token;
     await permissionStore().fetchScopes();
     await permissionStore().fetchScopes();
   };
   };

+ 1 - 1
src/stores/user.js

@@ -12,7 +12,7 @@ export const userStore = defineStore("user", () => {
   const setUser = (userData) => {
   const setUser = (userData) => {
     user.value = userData;
     user.value = userData;
     // A API expõe o perfil em user_type (ex.: "ADMIN"); "admin" administra a rede.
     // A API expõe o perfil em user_type (ex.: "ADMIN"); "admin" administra a rede.
-    isAdmin.value = userData.user_type === "ADMIN";
+    isAdmin.value = userData?.user_type === "ADMIN";
   };
   };
 
 
   const resetUser = () => {
   const resetUser = () => {