@ministryofjustice/hmpps-prison-permissions-lib 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  Please use this to capture reasoning behind changes:
4
4
 
5
+ ## 2.2.0
6
+
7
+ Introduced permissions for the Prisoner Moves domain. The first couple of permissions added are
8
+ `PrisonerMovesPermission.read_temporary_absence` and `PrisonerMovesPermission.edit_temporary_absence`, both of which
9
+ follow the base checks and just require additional roles.
10
+
5
11
  # 2.1.0
6
12
  Adds the sensitive edits role to the edit_contacts permission so users can edit Next of Kin and Emergency contacts in the prisoner profile without requiring Contacts Administrator or Authoriser roles.
7
13
 
package/dist/index.cjs CHANGED
@@ -75,6 +75,8 @@ exports.Role = void 0;
75
75
  Role["CreateRecategorisation"] = "ROLE_CREATE_RECATEGORISATION";
76
76
  Role["DeleteSensitiveCaseNotes"] = "ROLE_DELETE_SENSITIVE_CASE_NOTES";
77
77
  Role["DietAndAllergiesEdit"] = "ROLE_DIET_AND_FOOD_ALLERGIES_EDIT";
78
+ Role["ExternalMovementsTemporaryAbsenceManagement"] = "ROLE_EXTERNAL_MOVEMENTS_TAP_RW";
79
+ Role["ExternalMovementsTemporaryAbsenceViewOnly"] = "ROLE_EXTERNAL_MOVEMENTS_TAP_RO";
78
80
  Role["GlobalSearch"] = "ROLE_GLOBAL_SEARCH";
79
81
  Role["InactiveBookings"] = "ROLE_INACTIVE_BOOKINGS";
80
82
  Role["PathfinderApproval"] = "ROLE_PF_APPROVAL";
@@ -524,10 +526,28 @@ function prisonerBaseLocationCheck(context) {
524
526
  };
525
527
  }
526
528
 
529
+ exports.PrisonerMovesPermission = void 0;
530
+ (function (PrisonerMovesPermission) {
531
+ PrisonerMovesPermission["read_temporary_absence"] = "prisoner:temporary-absence:read";
532
+ PrisonerMovesPermission["edit_temporary_absence"] = "prisoner:temporary-absence:edit";
533
+ })(exports.PrisonerMovesPermission || (exports.PrisonerMovesPermission = {}));
534
+
535
+ function prisonerMovesCheck(context) {
536
+ const check = checkWith(context);
537
+ return {
538
+ ...check(exports.PrisonerMovesPermission.read_temporary_absence, baseCheckAndUserHasSomeRolesFrom([
539
+ exports.Role.ExternalMovementsTemporaryAbsenceViewOnly,
540
+ exports.Role.ExternalMovementsTemporaryAbsenceManagement,
541
+ ])),
542
+ ...check(exports.PrisonerMovesPermission.edit_temporary_absence, baseCheckAndUserHasRole(exports.Role.ExternalMovementsTemporaryAbsenceManagement)),
543
+ };
544
+ }
545
+
527
546
  function runningAPrisonCheck(context) {
528
547
  return {
529
548
  prisonerVisitsAndVisitors: prisonerVisitsAndVisitorsCheck(context),
530
549
  prisonerBaseLocation: prisonerBaseLocationCheck(context),
550
+ prisonerMoves: prisonerMovesCheck(context),
531
551
  };
532
552
  }
533
553
 
@@ -1054,10 +1074,17 @@ const prisonerBaseLocationPermissionPaths = {
1054
1074
  [exports.PrisonerBaseLocationPermission.move_cell]: `domainGroups.runningAPrison.prisonerBaseLocation.${exports.PrisonerBaseLocationPermission.move_cell}`,
1055
1075
  };
1056
1076
 
1077
+ // eslint-disable-next-line import/prefer-default-export
1078
+ const prisonerMovesPermissionPaths = {
1079
+ [exports.PrisonerMovesPermission.read_temporary_absence]: `domainGroups.runningAPrison.prisonerMoves.${exports.PrisonerMovesPermission.read_temporary_absence}`,
1080
+ [exports.PrisonerMovesPermission.edit_temporary_absence]: `domainGroups.runningAPrison.prisonerMoves.${exports.PrisonerMovesPermission.edit_temporary_absence}`,
1081
+ };
1082
+
1057
1083
  // eslint-disable-next-line import/prefer-default-export
1058
1084
  const runningAPrisonDomainPermissionPaths = {
1059
1085
  ...prisonerVisitsAndVisitorsPermissionPaths,
1060
1086
  ...prisonerBaseLocationPermissionPaths,
1087
+ ...prisonerMovesPermissionPaths,
1061
1088
  };
1062
1089
 
1063
1090
  // eslint-disable-next-line import/prefer-default-export
@@ -1269,6 +1296,7 @@ const nunjucksEnums = {
1269
1296
  ...nunjucksEnum({ PrisonerBasePermission: exports.PrisonerBasePermission }),
1270
1297
  ...nunjucksEnum({ PrisonerIncentivesPermission: exports.PrisonerIncentivesPermission }),
1271
1298
  ...nunjucksEnum({ PrisonerMoneyPermission: exports.PrisonerMoneyPermission }),
1299
+ ...nunjucksEnum({ PrisonerMovesPermission: exports.PrisonerMovesPermission }),
1272
1300
  ...nunjucksEnum({ PrisonerSchedulePermission: exports.PrisonerSchedulePermission }),
1273
1301
  ...nunjucksEnum({ PrisonerSpecificRisksPermission: exports.PrisonerSpecificRisksPermission }),
1274
1302
  ...nunjucksEnum({ PrisonerVisitsAndVisitorsPermission: exports.PrisonerVisitsAndVisitorsPermission }),
@@ -1304,6 +1332,7 @@ exports.prisonerAlertsPermissionPaths = prisonerAlertsPermissionPaths;
1304
1332
  exports.prisonerBaseLocationPermissionPaths = prisonerBaseLocationPermissionPaths;
1305
1333
  exports.prisonerIncentivesPermissionPaths = prisonerIncentivesPermissionPaths;
1306
1334
  exports.prisonerMoneyPermissionPaths = prisonerMoneyPermissionPaths;
1335
+ exports.prisonerMovesPermissionPaths = prisonerMovesPermissionPaths;
1307
1336
  exports.prisonerPermissionPaths = prisonerPermissionPaths;
1308
1337
  exports.prisonerPermissionsGuard = prisonerPermissionsGuard;
1309
1338
  exports.prisonerSchedulePermissionPaths = prisonerSchedulePermissionPaths;