UNPKG

feathers-casl

Version:

Add access control with CASL to your feathers application.

23 lines (21 loc) 530 B
import type { AnyAbility } from '@casl/ability' export const getFieldsForConditions = ( ability: AnyAbility, action: string, modelName: string, ): string[] => { const rules = ability.possibleRulesFor(action, modelName) const allFields: string[] = [] for (const rule of rules) { if (!rule.conditions) { continue } const fields = Object.keys(rule.conditions) fields.forEach((field) => { if (!allFields.includes(field)) { allFields.push(field) } }) } return allFields }