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

100% Statements 79/79
100% Branches 21/21
87.5% Functions 21/24
100% Lines 79/79

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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 801x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 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 { StatementsActions } from './actions';
import {
  reviewStatementThreadSubject,
  statementSubject,
  type ReviewStatementThreadSubject,
  type StatementSubject,
} from './subjects';
 
export const canViewStatements = (ability: Ability) => ability.can(StatementsActions.view, SubjectsEnum.Statement);
 
export const canViewThisStatement = (ability: Ability, subject: StatementSubject) =>
  ability.can(StatementsActions.view, statementSubject(subject));
 
export const canReviewStatements = (ability: Ability) => ability.can(StatementsActions.review, SubjectsEnum.Statement);
 
export const canReviewThisStatement = (ability: Ability, subject: StatementSubject) =>
  ability.can(StatementsActions.review, statementSubject(subject));
 
export const canForceReviewStatements = (ability: Ability) =>
  ability.can(StatementsActions.force_review, SubjectsEnum.Statement);
 
export const canCalculateStatements = (ability: Ability) =>
  ability.can(StatementsActions.calculate, SubjectsEnum.Statement);
 
export const canStopStatementsCalculation = (ability: Ability) =>
  ability.can(StatementsActions.stop_calculation, SubjectsEnum.Statement);
 
// FIXME: Not used.
export const canStopThisStatementCalculation = (ability: Ability, subject: StatementSubject) =>
  ability.can(StatementsActions.stop_calculation, statementSubject(subject));
 
export const canExportStatements = (ability: Ability) => ability.can(StatementsActions.export, SubjectsEnum.Statement);
 
// FIXME: Not used.
export const canExportThisStatement = (ability: Ability, subject: StatementSubject) =>
  ability.can(StatementsActions.export, statementSubject(subject));
 
export const canAdjustStatements = (ability: Ability) => ability.can(StatementsActions.adjust, SubjectsEnum.Statement);
 
export const canAdjustThisStatement = (ability: Ability, subject: StatementSubject) =>
  ability.can(StatementsActions.adjust, statementSubject(subject));
 
export const canOverwriteStatements = (ability: Ability) =>
  ability.can(StatementsActions.overwrite, SubjectsEnum.Statement);
 
export const canOverwriteOnAllStatements = (ability: Ability) =>
  ability.can(StatementsActions.overwrite_on_all, SubjectsEnum.Statement);
 
export const canOverwriteThisStatement = (ability: Ability, subject: StatementSubject) =>
  ability.can(StatementsActions.overwrite, statementSubject(subject));
 
export const canViewStatementsList = (ability: Ability) =>
  ability.can(StatementsActions.view_list, SubjectsEnum.Statement);
 
export const canViewStatementsThreads = (ability: Ability) =>
  ability.can(StatementsActions.view_statement_threads, SubjectsEnum.Statement);
 
export const canViewThreadsOfThisStatement = (ability: Ability, subject: StatementSubject) =>
  ability.can(StatementsActions.view_statement_threads, statementSubject(subject));
 
export const canCreateStatementsThreads = (ability: Ability) =>
  ability.can(StatementsActions.add_statement_comments, SubjectsEnum.Statement);
 
export const canCreateThreadsForThisStatement = (ability: Ability, subject: StatementSubject) =>
  ability.can(StatementsActions.add_statement_comments, statementSubject(subject));
 
export const canReviewStatementsThreads = (ability: Ability) =>
  ability.can(StatementsActions.review_statement_thread, SubjectsEnum.Statement);
 
export const canReviewThisStatementThread = (ability: Ability, subject: ReviewStatementThreadSubject) =>
  ability.can(StatementsActions.review_statement_thread, reviewStatementThreadSubject(subject));
 
export const canViewPlanWorkflowStatementSummaryList = (ability: Ability) =>
  ability.can(StatementsActions.view_plan_workflow_statement_summary_list, SubjectsEnum.Statement);
 
export const canEnableStandaloneReviewForStatements = (ability: Ability) =>
  ability.can(StatementsActions.enable_standalone_review, SubjectsEnum.Statement);