22 lines
624 B
TypeScript
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 };
|
|
}
|