import { ref, computed } from "vue"; /** * 로그인된 관리자 정보 + 권한 체크 헬퍼 * localStorage.admin_user를 읽어 메모리로 보관. * * 사용: * const { user, isSuperAdmin, isAdmin, canAccess } = useAuth(); */ export const useAuth = () => { const user = ref(null); const load = () => { if (typeof window === "undefined") return; try { user.value = JSON.parse(localStorage.getItem("admin_user") || "null"); } catch { user.value = null; } }; load(); const isSuperAdmin = computed(() => user.value?.role === "super_admin"); const isAdmin = computed(() => user.value?.role === "admin"); // 메뉴 권한 체크 — dashboard는 모두 접근 const canAccess = (menuId) => { if (menuId === "dashboard") return true; const u = user.value; if (!u) return false; if (u.role === "super_admin") return true; if (u.permissions === "all") return true; return Array.isArray(u.permissions) && u.permissions.includes(menuId); }; return { user, isSuperAdmin, isAdmin, canAccess, reload: load }; };