@ministryofjustice/hmpps-prison-permissions-lib
Version:
A library to centralise the process of determining whether a user should have access to create/read/update/delete a prison resource, for example, accessing a prisoner's Prisoner Profile.
17 lines (16 loc) • 1.03 kB
TypeScript
import { Role } from '../../types/internal/user/Role';
import { PermissionCheckStatus } from '../../types/internal/permissions/PermissionCheckStatus';
import { HmppsUser } from '../../types/internal/user/HmppsUser';
import Prisoner from '../../data/hmppsPrisonerSearch/interfaces/Prisoner';
export type PrisonerPermissionStatusFunction = (user: HmppsUser, prisoner: Prisoner) => PermissionCheckStatus;
export interface PrisonerPermissionConditions {
allRolesRequired?: Role[];
atLeastOneRoleRequiredFrom?: Role[];
overridingCondition?: PrisonerPermissionStatusFunction;
ifRestrictedPatient: PrisonerPermissionStatusFunction;
ifReleasedPrisoner: PrisonerPermissionStatusFunction;
ifTransferringPrisoner: PrisonerPermissionStatusFunction;
ifPrisonNotInCaseload: PrisonerPermissionStatusFunction;
ifPrisonInCaseload: PrisonerPermissionStatusFunction;
}
export declare function getPermissionStatus(user: HmppsUser, prisoner: Prisoner, conditions: PrisonerPermissionConditions): PermissionCheckStatus;