UNPKG

@ra-libs/react-rbac

Version:

React admin RBAC front components and utils

19 lines (18 loc) 892 B
import { ForcedSubject, MongoQuery, PureAbility as Ability } from '@casl/ability'; import { BoundCanProps } from '@casl/react'; import { RaRecord } from 'react-admin'; import { CASLAction, Role } from '../../config'; export type Model<T, TName extends string> = T & ForcedSubject<TName>; export type RaSubjects<T extends Partial<Record<string, Record<string, unknown>>>> = keyof T | { [K in keyof T]: Model<T[K], K & string>; }[keyof T]; export type Subjects = RaSubjects<RaRecord> | 'all'; export type Conditions = MongoQuery; export type AppAbility = Ability<[CASLAction, Subjects], Conditions>; export type CASLContextData = { ability: AppAbility; permissions?: Role[]; setPermissions?: React.Dispatch<React.SetStateAction<Role[]>>; Can: React.FunctionComponent<BoundCanProps<AppAbility>>; }; export declare const CASLContext: import("react").Context<CASLContextData>;