import { PureAbility, fieldPatternMatcher, mongoQueryMatcher, } from '@casl/ability'; // Must be kept in sync with `packages/web/src/helpers/userAbility.ts`! export default function userAbility(user) { const permissions = user?.permissions; const role = user?.role; // We're not using mongo, but our fields, conditions match const options = { conditionsMatcher: mongoQueryMatcher, fieldMatcher: fieldPatternMatcher, }; if (!role || !permissions) { return new PureAbility([], options); } return new PureAbility(permissions, options); }