Files
danak-admin/src/hooks/usePermissions.ts
T
hamid zarghami 185961c162 permission
2026-07-26 08:45:44 +03:30

29 lines
1.0 KiB
TypeScript

import {
canCreate,
canDelete,
canRead,
canUpdate,
CrudAction,
hasActionPermission,
hasAnyPermission,
hasPermission,
} from "../helpers/permissions";
import { useGetAdminPermissions } from "../pages/users/hooks/useUserData";
export const usePermissions = () => {
const { data, isPending, isLoading } = useGetAdminPermissions();
const permissions = data?.data?.permissions;
return {
permissions,
isPending: isPending || isLoading,
can: (resource: string, action: CrudAction) => hasActionPermission(permissions, resource, action),
canCreate: (resource: string) => canCreate(permissions, resource),
canRead: (resource: string) => canRead(permissions, resource),
canUpdate: (resource: string) => canUpdate(permissions, resource),
canDelete: (resource: string) => canDelete(permissions, resource),
has: (resourceOrPermission: string) => hasPermission(permissions, resourceOrPermission),
hasAny: (resources: readonly string[]) => hasAnyPermission(permissions, resources),
};
};