All files / libs/kernel/auth/shared/src/abilities/lti-plans definitions.ts

77.77% Statements 21/27
60% Branches 3/5
100% Functions 3/3
77.77% Lines 21/27

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 22 23 24 25 26 27 281x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 135x 135x 135x       1x 1x 1x 45x 45x 45x       1x  
import { type AuthenticatedContext } from '@amalia/kernel/auth/types';
 
import { SubjectsEnum, type DefinePermissions, type UserRoleForAccessControl } from '../../types';
 
import { LtiPlansActions } from './actions';
 
const isLtiFFEnabled = (authenticatedContext: AuthenticatedContext) =>
  !!authenticatedContext.user.company.featureFlags.LTI;
 
export const ltiPlansAbilityDefinitions = {
  ADMIN(authenticatedContext, { can }) {
    if (!isLtiFFEnabled(authenticatedContext)) {
      return;
    }

    can(LtiPlansActions.edit, SubjectsEnum.LtiPlan);
    can(LtiPlansActions.view, SubjectsEnum.LtiPlan);
  },
 
  READ_ONLY_ADMIN(authenticatedContext, { can }) {
    if (!isLtiFFEnabled(authenticatedContext)) {
      return;
    }

    can(LtiPlansActions.view, SubjectsEnum.LtiPlan);
  },
} as const satisfies Partial<Record<UserRoleForAccessControl, DefinePermissions>>;