@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.
25 lines (24 loc) • 1.22 kB
TypeScript
import type bunyan from 'bunyan';
import { ApiConfig, AuthenticationClient } from '@ministryofjustice/hmpps-rest-client';
import { TelemetryClient } from 'applicationinsights';
import Prisoner from '../../data/hmppsPrisonerSearch/interfaces/Prisoner';
import { HmppsUser } from '../../types/internal/user/HmppsUser';
import PermissionsLogger from './PermissionsLogger';
import { PrisonerPermission, PrisonerPermissions } from '../../types/public/permissions/prisoner/PrisonerPermissions';
export default class PermissionsService {
private readonly prisonerSearchClient;
readonly permissionsLogger: PermissionsLogger;
static create({ prisonerSearchConfig, authenticationClient, logger, telemetryClient, }: {
prisonerSearchConfig: ApiConfig;
authenticationClient: AuthenticationClient;
logger?: bunyan | typeof console;
telemetryClient?: TelemetryClient;
}): PermissionsService;
private constructor();
getPrisonerPermissions({ user, prisoner, requestDependentOn, }: {
user: HmppsUser;
prisoner: Prisoner;
requestDependentOn: PrisonerPermission[];
}): PrisonerPermissions;
getPrisonerDetails(prisonerNumber: string): Promise<Prisoner>;
}