import { useCallback } from 'react'; import { useAuthStore } from '../stores/authStore'; /** * دسترسی کاربر در context فعال. * * نبودِ فیلد permissions یعنی «محیط شخصی، محدودیتی نیست» — نه «هیچ دسترسی». * فقط پزشکِ عضو کلینیک و منشی، context دارای مجوز می‌گیرند. */ export function usePermissions() { const context = useAuthStore((s) => s.context); const primaryRole = useAuthStore((s) => s.primaryRole); const can = useCallback( (resource: string, action: string): boolean => { if (primaryRole === 'admin') return true; // مجوز per-context حساب می‌شود نه per-role: کاربری که مالک یک کلینیک است // ممکن است در کلینیک دیگری فقط عضو باشد. const perms = context?.permissions as { resources?: Record> } | undefined | null; if (!perms?.resources) return true; return Boolean(perms.resources[resource]?.[action]); }, [context, primaryRole], ); return { can }; }