Files
gongxue-base/apps/admin/src/hooks/usePermission.ts

22 lines
624 B
TypeScript

import { useMemo } from 'react';
export function usePermission() {
const permissions: string[] = useMemo(() => {
try {
return JSON.parse(localStorage.getItem('permissions') || '[]');
} catch {
return [];
}
}, []);
const hasPermission = (code: string): boolean => permissions.includes(code);
const hasAnyPermission = (...codes: string[]): boolean =>
codes.some((c) => permissions.includes(c));
const hasAllPermissions = (...codes: string[]): boolean =>
codes.every((c) => permissions.includes(c));
return { permissions, hasPermission, hasAnyPermission, hasAllPermissions };
}