@hmcts/ccd-case-ui-toolkit 4.5.0-EUI-4283-cam-node-layer-3 → 4.5.0-EUI-3476-case-specific-access

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.
Files changed (63) hide show
  1. package/.github/workflows/npmpublish.yml +40 -2
  2. package/dist/app.config.d.ts +0 -2
  3. package/dist/app.config.js +0 -3
  4. package/dist/app.config.js.map +1 -1
  5. package/dist/app.config.metadata.json +1 -1
  6. package/dist/index.umd.js +207 -110
  7. package/dist/index.umd.js.map +1 -1
  8. package/dist/index.umd.min.js +1 -1
  9. package/dist/index.umd.min.js.LICENSE.txt +1 -1
  10. package/dist/index.umd.min.js.map +1 -1
  11. package/dist/shared/components/case-editor/index.d.ts +0 -1
  12. package/dist/shared/components/case-editor/index.js +0 -1
  13. package/dist/shared/components/case-editor/index.js.map +1 -1
  14. package/dist/shared/components/case-editor/index.metadata.json +1 -1
  15. package/dist/shared/components/case-editor/services/cases.service.js +38 -24
  16. package/dist/shared/components/case-editor/services/cases.service.js.map +1 -1
  17. package/dist/shared/components/case-editor/services/cases.service.metadata.json +1 -1
  18. package/dist/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.d.ts +0 -1
  19. package/dist/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.js +1 -4
  20. package/dist/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.js.map +1 -1
  21. package/dist/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.metadata.json +1 -1
  22. package/dist/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.d.ts +27 -0
  23. package/dist/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.js +87 -0
  24. package/dist/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.js.map +1 -0
  25. package/dist/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.metadata.json +1 -0
  26. package/dist/shared/components/case-viewer/case-specific-access-request/index.d.ts +1 -0
  27. package/dist/shared/components/case-viewer/case-specific-access-request/index.js +7 -0
  28. package/dist/shared/components/case-viewer/case-specific-access-request/index.js.map +1 -0
  29. package/dist/shared/components/case-viewer/case-specific-access-request/index.metadata.json +1 -0
  30. package/dist/shared/components/case-viewer/case-specific-access-request/models/case-specific-access-request.enum.d.ts +8 -0
  31. package/dist/shared/components/case-viewer/case-specific-access-request/models/case-specific-access-request.enum.js +13 -0
  32. package/dist/shared/components/case-viewer/case-specific-access-request/models/case-specific-access-request.enum.js.map +1 -0
  33. package/dist/shared/components/case-viewer/case-specific-access-request/models/case-specific-access-request.enum.metadata.json +1 -0
  34. package/dist/shared/components/case-viewer/case-specific-access-request/models/index.d.ts +1 -0
  35. package/dist/shared/components/case-viewer/case-specific-access-request/models/index.js +7 -0
  36. package/dist/shared/components/case-viewer/case-specific-access-request/models/index.js.map +1 -0
  37. package/dist/shared/components/case-viewer/case-specific-access-request/models/index.metadata.json +1 -0
  38. package/dist/shared/components/case-viewer/case-viewer.module.js +3 -0
  39. package/dist/shared/components/case-viewer/case-viewer.module.js.map +1 -1
  40. package/dist/shared/components/case-viewer/case-viewer.module.metadata.json +1 -1
  41. package/dist/shared/components/case-viewer/viewer.routing.js +15 -1
  42. package/dist/shared/components/case-viewer/viewer.routing.js.map +1 -1
  43. package/dist/shared/components/case-viewer/viewer.routing.metadata.json +1 -1
  44. package/dist/shared/domain/case-view/index.d.ts +2 -0
  45. package/dist/shared/domain/case-view/index.metadata.json +1 -1
  46. package/dist/shared/domain/case-view/requested-role.model.d.ts +25 -0
  47. package/dist/shared/domain/case-view/requested-role.model.js +3 -0
  48. package/dist/shared/domain/case-view/requested-role.model.js.map +1 -0
  49. package/dist/shared/domain/case-view/requested-role.model.metadata.json +1 -0
  50. package/dist/shared/domain/case-view/role-assignment-response.model.d.ts +1 -1
  51. package/dist/shared/domain/case-view/role-request.model.d.ts +10 -28
  52. package/dist/shared/domain/case-view/role-request.model.metadata.json +1 -1
  53. package/dist/shared/domain/case-view/specific-access-request.model.d.ts +5 -0
  54. package/dist/shared/domain/case-view/specific-access-request.model.js +3 -0
  55. package/dist/shared/domain/case-view/specific-access-request.model.js.map +1 -0
  56. package/dist/shared/domain/case-view/specific-access-request.model.metadata.json +1 -0
  57. package/dist/shared/domain/user/user-info.model.d.ts +0 -1
  58. package/package.json +2 -2
  59. package/sonar-project.properties +3 -4
  60. package/dist/shared/components/case-editor/case-access-utils/index.d.ts +0 -21
  61. package/dist/shared/components/case-editor/case-access-utils/index.js +0 -69
  62. package/dist/shared/components/case-editor/case-access-utils/index.js.map +0 -1
  63. package/dist/shared/components/case-editor/case-access-utils/index.metadata.json +0 -1
@@ -25,9 +25,47 @@ jobs:
25
25
  - run: yarn lint
26
26
  - run: yarn build
27
27
  - run: yarn test
28
+ - name: Create code coverage report
29
+ run: yarn test:coverage
30
+ - name: Change Report Path
31
+ run: sed -i 's+/home/runner/work/ccd-case-ui-toolkit/ccd-case-ui-toolkit+/github/workspace+g' coverage/lcov.info
32
+ - name: Archive code coverage results
33
+ uses: actions/upload-artifact@v1
34
+ with:
35
+ name: code-coverage-report
36
+ path: coverage
28
37
 
29
- publish-npm:
38
+ sonarcloud:
30
39
  needs: build
40
+ name: SonarCloud Trigger
41
+ runs-on: ubuntu-latest
42
+ steps:
43
+ - name: Clone Repo
44
+ uses: actions/checkout@v2
45
+ with:
46
+ # Disabling shallow clone is recommended for improving relevancy of reporting
47
+ fetch-depth: 0
48
+ - name: Download code coverage results
49
+ uses: actions/download-artifact@v1
50
+ with:
51
+ name: code-coverage-report
52
+ path: coverage
53
+ - name: Analyze with SonarCloud
54
+ uses: sonarsource/sonarcloud-github-action@master
55
+ env:
56
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
57
+ SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
58
+ - name: Send slack
59
+ if: failure()
60
+ uses: sonots/slack-notice-action@v3
61
+ with:
62
+ status: ${{ job.status }}
63
+ env:
64
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
65
+ SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
66
+
67
+ publish-npm:
68
+ needs: sonarcloud
31
69
  runs-on: ubuntu-latest
32
70
  steps:
33
71
  - uses: actions/checkout@v1
@@ -43,7 +81,7 @@ jobs:
43
81
  NODE_AUTH_TOKEN: ${{ secrets.NPM_API_TOKEN }}
44
82
 
45
83
  publish-gpr:
46
- needs: build
84
+ needs: sonarcloud
47
85
  runs-on: ubuntu-latest
48
86
  steps:
49
87
  - uses: actions/checkout@v1
@@ -48,7 +48,6 @@ export declare abstract class AbstractAppConfig {
48
48
  getAccessManagementMode(): boolean;
49
49
  getAccessManagementBasicViewMock(): AccessManagementBasicViewMockModel;
50
50
  getLocationRefApiUrl(): string;
51
- getCamRoleAssignmentsApiUrl(): string;
52
51
  }
53
52
  export declare class CaseEditorConfig {
54
53
  api_url: string;
@@ -93,5 +92,4 @@ export declare class CaseEditorConfig {
93
92
  accessProcess?: string;
94
93
  };
95
94
  location_ref_api_url?: string;
96
- cam_role_assignments_api_url?: string;
97
95
  }
@@ -29,9 +29,6 @@ var AbstractAppConfig = /** @class */ (function () {
29
29
  AbstractAppConfig.prototype.getLocationRefApiUrl = function () {
30
30
  return undefined;
31
31
  };
32
- AbstractAppConfig.prototype.getCamRoleAssignmentsApiUrl = function () {
33
- return undefined;
34
- };
35
32
  return AbstractAppConfig;
36
33
  }());
37
34
  exports.AbstractAppConfig = AbstractAppConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"app.config.js","sourceRoot":"","sources":["../tmp/src-inlined/app.config.ts"],"names":[],"mappings":";;AAWA;IAAA;IAyDA,CAAC;IAnDC,sDAA0B,GAA1B;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,iDAAqB,GAArB;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IAkBD;;;;OAIG;IACH,oDAAwB,GAAxB;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IAMD,6CAAiB,GAAjB;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,mDAAuB,GAAvB;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,4DAAgC,GAAhC;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,gDAAoB,GAApB;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,uDAA2B,GAA3B;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACH,wBAAC;AAAD,CAAC,AAzDD,IAyDC;AAzDqB,8CAAiB;AA2DvC;IAAA;IA4CA,CAAC;IAAD,uBAAC;AAAD,CAAC,AA5CD,IA4CC;AA5CY,4CAAgB"}
1
+ {"version":3,"file":"app.config.js","sourceRoot":"","sources":["../tmp/src-inlined/app.config.ts"],"names":[],"mappings":";;AAWA;IAAA;IAsDA,CAAC;IAhDC,sDAA0B,GAA1B;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,iDAAqB,GAArB;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IAkBD;;;;OAIG;IACH,oDAAwB,GAAxB;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IAMD,6CAAiB,GAAjB;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,mDAAuB,GAAvB;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,4DAAgC,GAAhC;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,gDAAoB,GAApB;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACH,wBAAC;AAAD,CAAC,AAtDD,IAsDC;AAtDqB,8CAAiB;AAwDvC;IAAA;IA2CA,CAAC;IAAD,uBAAC;AAAD,CAAC,AA3CD,IA2CC;AA3CY,4CAAgB"}
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"AccessManagementBasicViewMockModel":{"__symbolic":"interface"},"AbstractAppConfig":{"__symbolic":"class","members":{"load":[{"__symbolic":"method"}],"getLoginUrl":[{"__symbolic":"method"}],"getApiUrl":[{"__symbolic":"method"}],"getCaseDataUrl":[{"__symbolic":"method"}],"getDocumentManagementUrl":[{"__symbolic":"method"}],"getDocumentManagementUrlV2":[{"__symbolic":"method"}],"getDocumentSecureMode":[{"__symbolic":"method"}],"getRemoteDocumentManagementUrl":[{"__symbolic":"method"}],"getHrsUrl":[{"__symbolic":"method"}],"getRemoteHrsUrl":[{"__symbolic":"method"}],"getAnnotationApiUrl":[{"__symbolic":"method"}],"getPostcodeLookupUrl":[{"__symbolic":"method"}],"getOAuth2ClientId":[{"__symbolic":"method"}],"getPaymentsUrl":[{"__symbolic":"method"}],"getPayBulkScanBaseUrl":[{"__symbolic":"method"}],"getCreateOrUpdateDraftsUrl":[{"__symbolic":"method"}],"getViewOrDeleteDraftsUrl":[{"__symbolic":"method"}],"getActivityUrl":[{"__symbolic":"method"}],"getActivityNexPollRequestMs":[{"__symbolic":"method"}],"getActivityRetry":[{"__symbolic":"method"}],"getActivityBatchCollectionDelayMs":[{"__symbolic":"method"}],"getActivityMaxRequestPerBatch":[{"__symbolic":"method"}],"getCaseHistoryUrl":[{"__symbolic":"method"}],"getPrintServiceUrl":[{"__symbolic":"method"}],"getRemotePrintServiceUrl":[{"__symbolic":"method"}],"getPaginationPageSize":[{"__symbolic":"method"}],"getBannersUrl":[{"__symbolic":"method"}],"getPrdUrl":[{"__symbolic":"method"}],"getCacheTimeOut":[{"__symbolic":"method"}],"getWorkAllocationApiUrl":[{"__symbolic":"method"}],"getUserInfoApiUrl":[{"__symbolic":"method"}],"getAccessManagementMode":[{"__symbolic":"method"}],"getAccessManagementBasicViewMock":[{"__symbolic":"method"}],"getLocationRefApiUrl":[{"__symbolic":"method"}],"getCamRoleAssignmentsApiUrl":[{"__symbolic":"method"}]}},"CaseEditorConfig":{"__symbolic":"class"}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"AccessManagementBasicViewMockModel":{"__symbolic":"interface"},"AbstractAppConfig":{"__symbolic":"class","members":{"load":[{"__symbolic":"method"}],"getLoginUrl":[{"__symbolic":"method"}],"getApiUrl":[{"__symbolic":"method"}],"getCaseDataUrl":[{"__symbolic":"method"}],"getDocumentManagementUrl":[{"__symbolic":"method"}],"getDocumentManagementUrlV2":[{"__symbolic":"method"}],"getDocumentSecureMode":[{"__symbolic":"method"}],"getRemoteDocumentManagementUrl":[{"__symbolic":"method"}],"getHrsUrl":[{"__symbolic":"method"}],"getRemoteHrsUrl":[{"__symbolic":"method"}],"getAnnotationApiUrl":[{"__symbolic":"method"}],"getPostcodeLookupUrl":[{"__symbolic":"method"}],"getOAuth2ClientId":[{"__symbolic":"method"}],"getPaymentsUrl":[{"__symbolic":"method"}],"getPayBulkScanBaseUrl":[{"__symbolic":"method"}],"getCreateOrUpdateDraftsUrl":[{"__symbolic":"method"}],"getViewOrDeleteDraftsUrl":[{"__symbolic":"method"}],"getActivityUrl":[{"__symbolic":"method"}],"getActivityNexPollRequestMs":[{"__symbolic":"method"}],"getActivityRetry":[{"__symbolic":"method"}],"getActivityBatchCollectionDelayMs":[{"__symbolic":"method"}],"getActivityMaxRequestPerBatch":[{"__symbolic":"method"}],"getCaseHistoryUrl":[{"__symbolic":"method"}],"getPrintServiceUrl":[{"__symbolic":"method"}],"getRemotePrintServiceUrl":[{"__symbolic":"method"}],"getPaginationPageSize":[{"__symbolic":"method"}],"getBannersUrl":[{"__symbolic":"method"}],"getPrdUrl":[{"__symbolic":"method"}],"getCacheTimeOut":[{"__symbolic":"method"}],"getWorkAllocationApiUrl":[{"__symbolic":"method"}],"getUserInfoApiUrl":[{"__symbolic":"method"}],"getAccessManagementMode":[{"__symbolic":"method"}],"getAccessManagementBasicViewMock":[{"__symbolic":"method"}],"getLocationRefApiUrl":[{"__symbolic":"method"}]}},"CaseEditorConfig":{"__symbolic":"class"}}}]
package/dist/index.umd.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @hmcts/ccd-case-ui-toolkit - Case UI Toolkit
3
- * @version v4.5.0-EUI-4283-cam-node-layer-3
3
+ * @version v4.5.0-EUI-3476-case-specific-access
4
4
  * @link undefined
5
5
  * @license MIT
6
6
  */
@@ -10754,9 +10754,6 @@ var AbstractAppConfig = /** @class */ (function () {
10754
10754
  AbstractAppConfig.prototype.getLocationRefApiUrl = function () {
10755
10755
  return undefined;
10756
10756
  };
10757
- AbstractAppConfig.prototype.getCamRoleAssignmentsApiUrl = function () {
10758
- return undefined;
10759
- };
10760
10757
  return AbstractAppConfig;
10761
10758
  }());
10762
10759
  exports.AbstractAppConfig = AbstractAppConfig;
@@ -12382,82 +12379,6 @@ __export(__webpack_require__(41580));
12382
12379
  __export(__webpack_require__(4765));
12383
12380
 
12384
12381
 
12385
- /***/ }),
12386
-
12387
- /***/ 25919:
12388
- /***/ ((__unused_webpack_module, exports) => {
12389
-
12390
- "use strict";
12391
-
12392
- Object.defineProperty(exports, "__esModule", ({ value: true }));
12393
- var CaseAccessUtils = /** @class */ (function () {
12394
- function CaseAccessUtils() {
12395
- }
12396
- CaseAccessUtils.prototype.getMappedRoleCategory = function (roles, roleCategories) {
12397
- var roleKeywords = roles.join().split('-').join().split(',');
12398
- if (this.roleOrCategoryExists(CaseAccessUtils.JUDGE_ROLE, CaseAccessUtils.JUDGE_ROLE_CATEGORY, roleKeywords, roleCategories)) {
12399
- return CaseAccessUtils.JUDGE_ROLE_CATEGORY;
12400
- }
12401
- else if (this.roleOrCategoryExists(CaseAccessUtils.PROFESSIONAL_ROLE, CaseAccessUtils.PROFESSIONAL_ROLE_CATEGORY, roleKeywords, roleCategories)) {
12402
- return CaseAccessUtils.PROFESSIONAL_ROLE_CATEGORY;
12403
- }
12404
- else if (this.roleOrCategoryExists(CaseAccessUtils.CITIZEN_ROLE, CaseAccessUtils.CITIZEN_ROLE_CATEGORY, roleKeywords, roleCategories)) {
12405
- return CaseAccessUtils.CITIZEN_ROLE_CATEGORY;
12406
- }
12407
- else if (this.roleOrCategoryExists(CaseAccessUtils.ADMIN_ROLE, CaseAccessUtils.ADMIN_ROLE_CATEGORY, roleKeywords, roleCategories)) {
12408
- return CaseAccessUtils.ADMIN_ROLE_CATEGORY;
12409
- }
12410
- else {
12411
- return CaseAccessUtils.LEGAL_OPERATIONS_ROLE_CATEGORY;
12412
- }
12413
- };
12414
- CaseAccessUtils.prototype.roleOrCategoryExists = function (roleKeyword, roleCategory, roleKeywords, roleCategories) {
12415
- var categoryExists = roleCategories.indexOf(roleCategory) > -1;
12416
- var keywordExists = roleKeywords.indexOf(roleKeyword) > -1;
12417
- return categoryExists ? categoryExists : keywordExists;
12418
- };
12419
- CaseAccessUtils.prototype.getAMRoleName = function (accessType, aMRole) {
12420
- var roleName = '';
12421
- switch (aMRole) {
12422
- case CaseAccessUtils.JUDGE_ROLE_CATEGORY:
12423
- roleName = accessType + "-access-" + CaseAccessUtils.JUDGE_ROLE_NAME;
12424
- break;
12425
- case CaseAccessUtils.PROFESSIONAL_ROLE_CATEGORY:
12426
- roleName = accessType + "-access-" + CaseAccessUtils.PROFESSIONAL_ROLE_NAME;
12427
- break;
12428
- case CaseAccessUtils.CITIZEN_ROLE_CATEGORY:
12429
- roleName = accessType + "-access-" + CaseAccessUtils.CITIZEN_ROLE_NAME;
12430
- break;
12431
- case CaseAccessUtils.ADMIN_ROLE_CATEGORY:
12432
- roleName = accessType + "-access-" + CaseAccessUtils.ADMIN_ROLE_NAME;
12433
- break;
12434
- default:
12435
- roleName = accessType + "-access-" + CaseAccessUtils.LEGAL_OPERATIONS_ROLE_NAME;
12436
- break;
12437
- }
12438
- return roleName;
12439
- };
12440
- // User role mapping
12441
- CaseAccessUtils.JUDGE_ROLE = 'judge';
12442
- CaseAccessUtils.JUDGE_ROLE_CATEGORY = 'JUDICIAL';
12443
- CaseAccessUtils.JUDGE_ROLE_NAME = 'judicial';
12444
- CaseAccessUtils.ADMIN_ROLE = 'admin';
12445
- CaseAccessUtils.ADMIN_ROLE_CATEGORY = 'ADMIN';
12446
- CaseAccessUtils.ADMIN_ROLE_NAME = 'admin';
12447
- CaseAccessUtils.PROFESSIONAL_ROLE = 'solicitor';
12448
- CaseAccessUtils.PROFESSIONAL_ROLE_CATEGORY = 'PROFESSIONAL';
12449
- CaseAccessUtils.PROFESSIONAL_ROLE_NAME = 'professional';
12450
- CaseAccessUtils.LEGAL_OPERATIONS_ROLE = 'caseworker';
12451
- CaseAccessUtils.LEGAL_OPERATIONS_ROLE_CATEGORY = 'LEGAL_OPERATIONS';
12452
- CaseAccessUtils.LEGAL_OPERATIONS_ROLE_NAME = 'legal-operations';
12453
- CaseAccessUtils.CITIZEN_ROLE = 'citizen';
12454
- CaseAccessUtils.CITIZEN_ROLE_CATEGORY = 'CITIZEN';
12455
- CaseAccessUtils.CITIZEN_ROLE_NAME = 'citizen';
12456
- return CaseAccessUtils;
12457
- }());
12458
- exports.CaseAccessUtils = CaseAccessUtils;
12459
-
12460
-
12461
12382
  /***/ }),
12462
12383
 
12463
12384
  /***/ 19119:
@@ -14228,7 +14149,6 @@ __export(__webpack_require__(29808));
14228
14149
  __export(__webpack_require__(25961));
14229
14150
  __export(__webpack_require__(20039));
14230
14151
  __export(__webpack_require__(41473));
14231
- __export(__webpack_require__(25919));
14232
14152
 
14233
14153
 
14234
14154
  /***/ }),
@@ -14401,7 +14321,6 @@ var app_config_1 = __webpack_require__(35185);
14401
14321
  var directives_1 = __webpack_require__(66395);
14402
14322
  var domain_1 = __webpack_require__(59346);
14403
14323
  var services_1 = __webpack_require__(65010);
14404
- var case_access_utils_1 = __webpack_require__(25919);
14405
14324
  var wizard_page_field_to_case_field_mapper_1 = __webpack_require__(12393);
14406
14325
  var work_allocation_service_1 = __webpack_require__(93603);
14407
14326
  var CasesService = /** @class */ (function () {
@@ -14671,41 +14590,56 @@ var CasesService = /** @class */ (function () {
14671
14590
  return this.http.get(this.appConfig.getLocationRefApiUrl() + "/building-locations?epimms_id=" + locationId);
14672
14591
  };
14673
14592
  CasesService.prototype.createChallengedAccessRequest = function (caseId, car) {
14593
+ // Dummy implementation for now; the real one will make a call to the Node layer, which will call the appropriate Role
14674
14594
  // Assignment API endpoint
14675
- var userInfoStr = this.sessionStorageService.getItem('userDetails');
14676
- var camUtils = new case_access_utils_1.CaseAccessUtils();
14677
- var userInfo;
14678
- if (userInfoStr) {
14679
- userInfo = JSON.parse(userInfoStr);
14680
- }
14681
- var roleCategory = camUtils.getMappedRoleCategory(userInfo.roles, userInfo.roleCategories);
14682
- var roleName = camUtils.getAMRoleName('challenged', roleCategory);
14683
- var payload = {
14595
+ var roleAssignmentResponse = {
14684
14596
  roleRequest: {
14685
- assignerId: userInfo.id
14597
+ id: '0c6f56f5-4457-485e-a0de-828e6dfa1e33',
14598
+ authenticatedUserId: '37d4eab7-e14c-404e-8cd1-55cd06b2fc06',
14599
+ correlationId: '003352d0-e699-48bc-b6f5-5810411e60af',
14600
+ assignerId: '37d4eab7-e14c-404e-8cd1-55cd06b2fc06',
14601
+ requestType: 'CREATE',
14602
+ process: 'businessProcess1',
14603
+ reference: 'cf07ea33-31c0-4442-b2df-e2032d21b496',
14604
+ replaceExisting: true,
14605
+ status: 'APPROVED',
14606
+ created: new Date('2021-01-28T18:16:49.100121Z'),
14607
+ log: 'Request has been approved'
14686
14608
  },
14687
14609
  requestedRoles: [{
14610
+ id: '3ccabbf2-71fa-4c5d-af39-5675d25e9fcc',
14688
14611
  actorIdType: 'IDAM',
14689
- actorId: userInfo.id,
14690
- roleType: 'CASE',
14691
- roleName: roleName,
14612
+ actorId: 'cf07ea33-31c0-4442-b2df-e2032d21b496',
14613
+ roleType: 'ORGANISATION',
14614
+ roleName: 'judge',
14692
14615
  classification: 'PUBLIC',
14693
- roleCategory: roleCategory,
14694
14616
  grantType: 'CHALLENGED',
14695
- beginTime: new Date(),
14696
- endTime: new Date(new Date().setUTCHours(23, 59, 59, 999)),
14617
+ roleCategory: 'JUDICIAL',
14618
+ readOnly: false,
14619
+ beginTime: new Date('2021-01-01T00:00:00Z'),
14620
+ endTime: new Date('2023-01-01T00:00:00Z'),
14621
+ process: 'businessProcess1',
14622
+ reference: 'cf07ea33-31c0-4442-b2df-e2032d21b496',
14623
+ status: 'LIVE',
14624
+ created: new Date('2021-01-28T18:16:49.100155Z'),
14625
+ log: 'Create requested with replace: true\nCreate approved : judicial_organisational_role_mapping_service_create',
14697
14626
  attributes: {
14698
- caseId: caseId
14627
+ jurisdiction: 'divorce',
14628
+ region: 'south-east',
14629
+ contractType: 'SALARIED'
14699
14630
  },
14700
14631
  notes: [{
14701
- userId: userInfo.id,
14702
- time: new Date(),
14703
- comment: JSON.stringify(car)
14704
- }
14705
- ]
14632
+ userId: '003352d0-e699-48bc-b6f5-5810411e60ag',
14633
+ time: new Date('2020-01-01T00:00Z'),
14634
+ comment: 'Need Access to case number 1234567890123456 for a month'
14635
+ }, {
14636
+ userId: '52aa3810-af1f-11ea-b3de-0242ac130004',
14637
+ time: new Date('2020-01-02T00:00Z'),
14638
+ comment: 'Access granted till end of day'
14639
+ }]
14706
14640
  }]
14707
14641
  };
14708
- return this.http.post("" + this.appConfig.getCamRoleAssignmentsApiUrl(), payload);
14642
+ return rxjs_1.of(roleAssignmentResponse);
14709
14643
  };
14710
14644
  var CasesService_1;
14711
14645
  // Internal (UI) API
@@ -16122,9 +16056,6 @@ var CaseBasicAccessViewComponent = /** @class */ (function () {
16122
16056
  // Navigate to the previous page
16123
16057
  window.history.go(-1);
16124
16058
  };
16125
- CaseBasicAccessViewComponent.prototype.getRequestUrl = function (accessType) {
16126
- return accessType === 'CHALLENGED' ? 'challenged-access-request' : 'specific-access-request';
16127
- };
16128
16059
  __decorate([
16129
16060
  core_1.Input(),
16130
16061
  __metadata("design:type", domain_1.CaseView)
@@ -16865,6 +16796,148 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
16865
16796
  __export(__webpack_require__(76764));
16866
16797
 
16867
16798
 
16799
+ /***/ }),
16800
+
16801
+ /***/ 38692:
16802
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
16803
+
16804
+ "use strict";
16805
+
16806
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
16807
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16808
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
16809
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
16810
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
16811
+ };
16812
+ var __metadata = (this && this.__metadata) || function (k, v) {
16813
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
16814
+ };
16815
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
16816
+ var core_1 = __webpack_require__(57208);
16817
+ var forms_1 = __webpack_require__(92985);
16818
+ var router_1 = __webpack_require__(92302);
16819
+ var models_1 = __webpack_require__(3234);
16820
+ var CaseSpecificAccessRequestComponent = /** @class */ (function () {
16821
+ function CaseSpecificAccessRequestComponent(fb, router, route) {
16822
+ this.fb = fb;
16823
+ this.router = router;
16824
+ this.route = route;
16825
+ this.collapsed = false;
16826
+ this.submitted = false;
16827
+ this.genericError = 'There is a problem';
16828
+ this.specificReasonControlName = 'specificReason';
16829
+ }
16830
+ CaseSpecificAccessRequestComponent.prototype.ngOnInit = function () {
16831
+ var _this = this;
16832
+ this.title = models_1.SpecificAccessRequestPageText.TITLE;
16833
+ this.hint = models_1.SpecificAccessRequestPageText.HINT;
16834
+ this.caseRefLabel = models_1.SpecificAccessRequestPageText.CASE_REF;
16835
+ this.formGroup = this.fb.group({
16836
+ radioSelected: new forms_1.FormControl(null, null),
16837
+ });
16838
+ this.formGroup.addControl(this.specificReasonControlName, new forms_1.FormControl('', {
16839
+ validators: [
16840
+ function (control) {
16841
+ if (_this.inputEmpty(control)) {
16842
+ return { invalid: true };
16843
+ }
16844
+ return null;
16845
+ },
16846
+ ],
16847
+ updateOn: 'submit',
16848
+ }));
16849
+ };
16850
+ CaseSpecificAccessRequestComponent.prototype.inputEmpty = function (input) {
16851
+ return input.value == null || input.value.trim().length === 0;
16852
+ };
16853
+ CaseSpecificAccessRequestComponent.prototype.onChange = function () {
16854
+ this.submitted = false;
16855
+ // Clear the "specific reason" fields manually. This prevents any previous value being retained by
16856
+ // the field's FormControl when the field itself is removed from the DOM by *ngIf. (If it is subsequently added back
16857
+ // to the DOM by *ngIf, it will appear empty but the associated FormControl still has the previous value.)
16858
+ this.formGroup.get(this.specificReasonControlName).setValue('');
16859
+ };
16860
+ CaseSpecificAccessRequestComponent.prototype.onSubmit = function () {
16861
+ this.submitted = true;
16862
+ if (this.formGroup.get(this.specificReasonControlName).invalid) {
16863
+ this.errorMessage = {
16864
+ title: this.genericError,
16865
+ description: models_1.SpecificAccessRequestErrors.NO_REASON,
16866
+ fieldId: 'specific-reason',
16867
+ };
16868
+ }
16869
+ };
16870
+ CaseSpecificAccessRequestComponent.prototype.onCancel = function () {
16871
+ // Navigate to the page before previous one (should be Search Results or Case List page, for example)
16872
+ window.history.go(-2);
16873
+ };
16874
+ CaseSpecificAccessRequestComponent.prototype.ngOnDestroy = function () {
16875
+ if (this.$roleAssignmentResponseSubscription) {
16876
+ this.$roleAssignmentResponseSubscription.unsubscribe();
16877
+ }
16878
+ };
16879
+ CaseSpecificAccessRequestComponent = __decorate([
16880
+ core_1.Component({
16881
+ selector: 'ccd-case-specific-access-request',
16882
+ template: __webpack_require__(5856),
16883
+ }),
16884
+ __metadata("design:paramtypes", [forms_1.FormBuilder,
16885
+ router_1.Router,
16886
+ router_1.ActivatedRoute])
16887
+ ], CaseSpecificAccessRequestComponent);
16888
+ return CaseSpecificAccessRequestComponent;
16889
+ }());
16890
+ exports.CaseSpecificAccessRequestComponent = CaseSpecificAccessRequestComponent;
16891
+
16892
+
16893
+ /***/ }),
16894
+
16895
+ /***/ 73343:
16896
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
16897
+
16898
+ "use strict";
16899
+
16900
+ function __export(m) {
16901
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
16902
+ }
16903
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
16904
+ __export(__webpack_require__(38692));
16905
+
16906
+
16907
+ /***/ }),
16908
+
16909
+ /***/ 52772:
16910
+ /***/ ((__unused_webpack_module, exports) => {
16911
+
16912
+ "use strict";
16913
+
16914
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
16915
+ var SpecificAccessRequestPageText;
16916
+ (function (SpecificAccessRequestPageText) {
16917
+ SpecificAccessRequestPageText["TITLE"] = "Why do you need to access this case?";
16918
+ SpecificAccessRequestPageText["HINT"] = "Provide a reason.";
16919
+ SpecificAccessRequestPageText["CASE_REF"] = "Case reference";
16920
+ })(SpecificAccessRequestPageText = exports.SpecificAccessRequestPageText || (exports.SpecificAccessRequestPageText = {}));
16921
+ var SpecificAccessRequestErrors;
16922
+ (function (SpecificAccessRequestErrors) {
16923
+ SpecificAccessRequestErrors["NO_REASON"] = "Enter a reason";
16924
+ })(SpecificAccessRequestErrors = exports.SpecificAccessRequestErrors || (exports.SpecificAccessRequestErrors = {}));
16925
+
16926
+
16927
+ /***/ }),
16928
+
16929
+ /***/ 3234:
16930
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
16931
+
16932
+ "use strict";
16933
+
16934
+ function __export(m) {
16935
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
16936
+ }
16937
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
16938
+ __export(__webpack_require__(52772));
16939
+
16940
+
16868
16941
  /***/ }),
16869
16942
 
16870
16943
  /***/ 76979:
@@ -17151,6 +17224,7 @@ var palette_1 = __webpack_require__(22212);
17151
17224
  var case_basic_access_view_component_1 = __webpack_require__(42906);
17152
17225
  var case_challenged_access_request_component_1 = __webpack_require__(70776);
17153
17226
  var case_challenged_access_success_component_1 = __webpack_require__(41969);
17227
+ var case_specific_access_request_component_1 = __webpack_require__(38692);
17154
17228
  var case_event_trigger_1 = __webpack_require__(92100);
17155
17229
  var case_full_access_view_component_1 = __webpack_require__(76764);
17156
17230
  var case_view_1 = __webpack_require__(65389);
@@ -17179,6 +17253,7 @@ var CaseViewerModule = /** @class */ (function () {
17179
17253
  palette_1.EventLogModule,
17180
17254
  material_1.MatTabsModule,
17181
17255
  palette_1.ComplexModule,
17256
+ forms_1.FormsModule,
17182
17257
  forms_1.ReactiveFormsModule,
17183
17258
  alert_1.AlertModule
17184
17259
  ],
@@ -17191,6 +17266,7 @@ var CaseViewerModule = /** @class */ (function () {
17191
17266
  case_view_1.CaseViewComponent,
17192
17267
  printer_1.PrintUrlPipe,
17193
17268
  case_challenged_access_request_component_1.CaseChallengedAccessRequestComponent,
17269
+ case_specific_access_request_component_1.CaseSpecificAccessRequestComponent,
17194
17270
  error_message_component_1.ErrorMessageComponent,
17195
17271
  case_challenged_access_success_component_1.CaseChallengedAccessSuccessComponent
17196
17272
  ],
@@ -17642,6 +17718,7 @@ var case_history_1 = __webpack_require__(30542);
17642
17718
  var file_upload_progress_guard_1 = __webpack_require__(27667);
17643
17719
  var case_challenged_access_request_1 = __webpack_require__(38403);
17644
17720
  var case_challenged_access_success_1 = __webpack_require__(26840);
17721
+ var case_specific_access_request_1 = __webpack_require__(73343);
17645
17722
  var case_event_trigger_component_1 = __webpack_require__(83645);
17646
17723
  var printer_1 = __webpack_require__(65773);
17647
17724
  var services_1 = __webpack_require__(50137);
@@ -17664,7 +17741,7 @@ exports.viewerRouting = [
17664
17741
  component: case_history_1.CaseHistoryComponent,
17665
17742
  },
17666
17743
  {
17667
- path: 'challenged-access-request',
17744
+ path: 'access-request',
17668
17745
  children: [
17669
17746
  {
17670
17747
  path: '',
@@ -17682,6 +17759,19 @@ exports.viewerRouting = [
17682
17759
  }
17683
17760
  }
17684
17761
  ]
17762
+ },
17763
+ {
17764
+ path: 'specific-access-request',
17765
+ children: [
17766
+ {
17767
+ path: '',
17768
+ component: case_specific_access_request_1.CaseSpecificAccessRequestComponent,
17769
+ data: {
17770
+ title: 'Request Specific Access'
17771
+ },
17772
+ pathMatch: 'full'
17773
+ }
17774
+ ]
17685
17775
  }
17686
17776
  ];
17687
17777
 
@@ -63591,7 +63681,7 @@ module.exports = "<div *ngIf=\"isDataLoaded()\">\n <ng-container [ngSwitch]=\
63591
63681
  /***/ 80734:
63592
63682
  /***/ ((module) => {
63593
63683
 
63594
- module.exports = "<div>\n <cut-alert type=\"information\">This case requires {{accessType | lowercase}} access.<br />\n <ng-container *ngIf=\"accessType === 'CHALLENGED'\">This is because the case is outside your work area. If you request access to the case, it will be logged for auditing purposes.</ng-container>\n <ng-container *ngIf=\"accessType === 'SPECIFIC'\">This means it's outside your jurisdiction and requires authorisation. If you request access to the case, it will be logged for auditing purposes.</ng-container>\n </cut-alert>\n <h1 class=\"heading-h1\">#{{ caseDetails.case_id | ccdCaseReference}}</h1>\n <h2 class=\"govuk-heading-m\">Case details</h2>\n <dl class=\"govuk-summary-list\">\n <div class=\"govuk-summary-list__row\" *ngIf=\"caseDetails.basicFields?.caseNameHmctsInternal\">\n <dt class=\"govuk-summary-list__key summary-key\">Case name</dt>\n <dd class=\"govuk-summary-list__value\">{{caseDetails.basicFields.caseNameHmctsInternal}}</dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"caseDetails.case_type?.jurisdiction?.name\">\n <dt class=\"govuk-summary-list__key summary-key\">Service</dt>\n <dd class=\"govuk-summary-list__value\">{{caseDetails.case_type.jurisdiction.name}}</dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"caseDetails.state?.description\">\n <dt class=\"govuk-summary-list__key summary-key\">State</dt>\n <dd class=\"govuk-summary-list__value\">{{caseDetails.state.description}}</dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"courtOrHearingCentre\">\n <dt class=\"govuk-summary-list__key summary-key\">Court or hearing centre</dt>\n <dd class=\"govuk-summary-list__value\">{{courtOrHearingCentre | titlecase}}</dd>\n </div>\n\n <div class=\"govuk-summary-list__row\" *ngIf=\"accessType\">\n <dt class=\"govuk-summary-list__key summary-key\">Access</dt>\n <dd class=\"govuk-summary-list__value\">{{accessType | titlecase}}</dd>\n </div>\n </dl>\n</div>\n<div class=\"govuk-button-group\">\n <button class=\"govuk-button govuk-!-margin-right-3\" [routerLink]=\"getRequestUrl(accessType)\"> Request access </button>\n <div class=\"govuk-grid-column-full govuk-!-padding-left-0\">\n <p>\n <a class=\"govuk-body\" (click)=\"onCancel()\" href=\"javascript:void(0)\"> Cancel </a>\n </p>\n </div>\n</div>\n"
63684
+ module.exports = "<form>\n <div>\n <cut-alert type=\"information\">This case requires {{accessType | lowercase}} access.<br />\n <ng-container *ngIf=\"accessType === 'CHALLENGED'\">This is because the case is outside your work area. If you request access to the case, it will be logged for auditing purposes.</ng-container>\n <ng-container *ngIf=\"accessType === 'SPECIFIC'\">This means it's outside your jurisdiction and requires authorisation. If you request access to the case, it will be logged for auditing purposes.</ng-container>\n </cut-alert>\n <h1 class=\"heading-h1\">#{{ caseDetails.case_id | ccdCaseReference}}</h1>\n <h2 class=\"govuk-heading-m\">Case details</h2>\n <dl class=\"govuk-summary-list\">\n <div class=\"govuk-summary-list__row\" *ngIf=\"caseDetails.basicFields?.caseNameHmctsInternal\">\n <dt class=\"govuk-summary-list__key summary-key\">Case name</dt>\n <dd class=\"govuk-summary-list__value\">{{caseDetails.basicFields.caseNameHmctsInternal}}</dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"caseDetails.case_type?.jurisdiction?.name\">\n <dt class=\"govuk-summary-list__key summary-key\">Service</dt>\n <dd class=\"govuk-summary-list__value\">{{caseDetails.case_type.jurisdiction.name}}</dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"caseDetails.state?.description\">\n <dt class=\"govuk-summary-list__key summary-key\">State</dt>\n <dd class=\"govuk-summary-list__value\">{{caseDetails.state.description}}</dd>\n </div>\n <div class=\"govuk-summary-list__row\" *ngIf=\"courtOrHearingCentre\">\n <dt class=\"govuk-summary-list__key summary-key\">Court or hearing centre</dt>\n <dd class=\"govuk-summary-list__value\">{{courtOrHearingCentre | titlecase}}</dd>\n </div>\n\n <div class=\"govuk-summary-list__row\" *ngIf=\"accessType\">\n <dt class=\"govuk-summary-list__key summary-key\">Access</dt>\n <dd class=\"govuk-summary-list__value\">{{accessType | titlecase}}</dd>\n </div>\n </dl>\n </div>\n\n <button class=\"govuk-button govuk-!-margin-right-3\">Request access</button>\n</form>\n<a class=\"govuk-body\" (click)=\"onCancel()\" href=\"javascript:void(0)\">Cancel</a>\n"
63595
63685
 
63596
63686
  /***/ }),
63597
63687
 
@@ -63623,6 +63713,13 @@ module.exports = "<!-- Generic error heading and error message to be displayed o
63623
63713
 
63624
63714
  /***/ }),
63625
63715
 
63716
+ /***/ 5856:
63717
+ /***/ ((module) => {
63718
+
63719
+ module.exports = "<exui-error-message\n *ngIf=\"formGroup.invalid && submitted\"\n [error]=\"errorMessage\"></exui-error-message>\n<cut-alert type=\"information\"\n >This case requires specific access.<br />This means it's outside your\n jurisdiction and requires authorisation. If you request access to the case, it\n will be logged for auditing purposes.</cut-alert>\n<form [formGroup]=\"formGroup\" (submit)=\"onSubmit()\">\n <div class=\"govuk-form-group\"\n [ngClass]=\"{ 'form-group-error': formGroup.invalid && submitted }\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"reason-hint\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--l\">\n <h1 class=\"govuk-fieldset__heading\">\n {{ title }}\n </h1>\n </legend>\n\n <details class=\"govuk-details\" data-module=\"govuk-details\" role=\"group\">\n <summary\n class=\"govuk-details__summary\"\n role=\"button\"\n aria-controls=\"details-content-bc0b527c-c8ab-4306-9bd0-03f0e252174b\"\n aria-expanded=\"false\">\n <span class=\"govuk-details__summary-text\">\n Help with requesting case access\n </span>\n </summary>\n <div\n class=\"govuk-details__text\"\n id=\"details-content-bc0b527c-c8ab-4306-9bd0-03f0e252174b\"\n aria-hidden=\"true\">\n <p class=\"govuk-body\">You could include:</p>\n <ul class=\"govuk-list govuk-list--bullet\">\n <li>the case reference of the linked case</li>\n <li>how long you require access to this case</li>\n <li>any other reasons why you require access</li>\n </ul>\n </div>\n </details>\n\n <div id=\"reason-hint\" class=\"govuk-hint\">\n {{ hint }}\n </div>\n <div id=\"conditional-reason-3\">\n <div class=\"govuk-form-group\">\n <div\n id=\"specific-reason-error-message\"\n class=\"govuk-error-message\"\n *ngIf=\"formGroup.get('specificReason').invalid && submitted\">\n {{ errorMessage.description }}\n </div>\n <textarea\n class=\"govuk-textarea\"\n [ngClass]=\"{\n 'govuk-textarea--error':\n formGroup.get('specificReason').invalid && submitted\n }\"\n id=\"specific-reason\"\n name=\"specific-reason\"\n rows=\"8\"\n aria-describedby=\"reason-3-label\"\n formControlName=\"specificReason\">\n </textarea>\n </div>\n </div>\n </fieldset>\n </div>\n \n <div class=\"govuk-button-group\">\n <button class=\"govuk-button govuk-!-margin-right-3\" type=\"submit\">\n Submit\n </button>\n <div class=\"govuk-grid-column-full govuk-!-padding-left-0\">\n <p>\n <a class=\"govuk-body\" (click)=\"onCancel()\" href=\"javascript:void(0)\">\n Cancel\n </a>\n </p>\n </div>\n </div>\n</form>\n"
63720
+
63721
+ /***/ }),
63722
+
63626
63723
  /***/ 24288:
63627
63724
  /***/ ((module) => {
63628
63725