import { useAuthStore } from '../stores/authStore'; /** * Check if the current user has a specific capability. * Superadmins always return true. */ export function useHasCapability(capability: string): boolean { const user = useAuthStore((s) => s.user); const capabilities = useAuthStore((s) => s.currentOrg?.capabilities); if (user?.isSuperadmin) return true; return capabilities?.includes(capability) ?? false; } /** * Check if the current user has ANY of the given capabilities. * Superadmins always return true. */ export function useHasAnyCapability(...caps: string[]): boolean { const user = useAuthStore((s) => s.user); const capabilities = useAuthStore((s) => s.currentOrg?.capabilities); if (user?.isSuperadmin) return true; if (!capabilities) return false; return caps.some((c) => capabilities.includes(c)); } /** * Check if the current user has ALL of the given capabilities. * Superadmins always return true. */ export function useHasAllCapabilities(...caps: string[]): boolean { const user = useAuthStore((s) => s.user); const capabilities = useAuthStore((s) => s.currentOrg?.capabilities); if (user?.isSuperadmin) return true; if (!capabilities) return false; return caps.every((c) => capabilities.includes(c)); } /** * Check if a specific capability string matches the user's capability for edit actions. * This replaces the old useIsReadOnly() for more granular checks. */ export function useCanEdit(editCapability: string): boolean { return useHasCapability(editCapability); }