All files / libs/kernel/auth/shared/src/abilities/plans permissions.ts

100% Statements 21/21
100% Branches 2/2
28.57% Functions 2/7
100% Lines 21/21

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 221x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x  
import { SubjectsEnum, type Ability } from '../../types';
 
import { PlansActions } from './actions';
import { viewPlanSubject, viewPlanTokenSubject, type ViewPlanSubject, type ViewPlanTokenSubject } from './subjects';
 
export const canViewPlans = (ability: Ability) => ability.can(PlansActions.view, SubjectsEnum.Plan);
 
export const canViewThisPlan = (ability: Ability, subject: ViewPlanSubject) =>
  ability.can(PlansActions.view, viewPlanSubject(subject));
 
export const canViewHiddenPlans = (ability: Ability) => ability.can(PlansActions.view_hidden, SubjectsEnum.Plan);
 
export const canModifyPlans = (ability: Ability) => ability.can(PlansActions.modify, SubjectsEnum.Plan);
 
export const canModifyMetricsFromForPlan = (ability: Ability) =>
  ability.can(PlansActions.modify_metrics_from, SubjectsEnum.Plan);
 
export const canViewPlanTokens = (ability: Ability) => ability.can(PlansActions.view_tokens, SubjectsEnum.Plan);
 
export const canViewThisPlanToken = (ability: Ability, subject: ViewPlanTokenSubject) =>
  ability.can(PlansActions.view_tokens, viewPlanTokenSubject(subject));