grm-shared-library 1.1.114 → 1.1.116
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/dist/cjs/modules/common/services/access-validation.service.js +21 -8
- package/dist/cjs/modules/common/services/access-validation.service.js.map +1 -1
- package/dist/cjs/modules/incident/dtos/incident/create-incident.dto.js.map +1 -1
- package/dist/cjs/modules/incident/dtos/incident/update-incident.dto.js +0 -4
- package/dist/cjs/modules/incident/dtos/incident/update-incident.dto.js.map +1 -1
- package/dist/cjs/modules/incident/dtos/reporter/create-incident-reporter.dto.js +1 -18
- package/dist/cjs/modules/incident/dtos/reporter/create-incident-reporter.dto.js.map +1 -1
- package/dist/cjs/modules/incident/dtos/reporter/incident-reporter.dto.js +1 -2
- package/dist/cjs/modules/incident/dtos/reporter/incident-reporter.dto.js.map +1 -1
- package/dist/esm/modules/common/services/access-validation.service.js +21 -8
- package/dist/esm/modules/common/services/access-validation.service.js.map +1 -1
- package/dist/esm/modules/incident/dtos/incident/create-incident.dto.js.map +1 -1
- package/dist/esm/modules/incident/dtos/incident/update-incident.dto.js +0 -4
- package/dist/esm/modules/incident/dtos/incident/update-incident.dto.js.map +1 -1
- package/dist/esm/modules/incident/dtos/reporter/create-incident-reporter.dto.js +2 -19
- package/dist/esm/modules/incident/dtos/reporter/create-incident-reporter.dto.js.map +1 -1
- package/dist/esm/modules/incident/dtos/reporter/incident-reporter.dto.js +1 -2
- package/dist/esm/modules/incident/dtos/reporter/incident-reporter.dto.js.map +1 -1
- package/dist/types/modules/common/interfaces/access-validation.interface.d.ts +3 -0
- package/dist/types/modules/common/services/access-validation.service.d.ts +1 -1
- package/dist/types/modules/incident/dtos/incident/update-incident.dto.d.ts +0 -4
- package/dist/types/modules/incident/dtos/reporter/create-incident-reporter.dto.d.ts +0 -2
- package/dist/types/modules/incident/dtos/reporter/incident-reporter.dto.d.ts +1 -3
- package/dist/types/modules/user/interfaces/access-scope.d.ts +2 -0
- package/package.json +1 -1
|
@@ -16,7 +16,10 @@ class AccessValidationService {
|
|
|
16
16
|
if (accessScope.isSuperAdmin) {
|
|
17
17
|
return;
|
|
18
18
|
}
|
|
19
|
-
if (accessScope.
|
|
19
|
+
if (accessScope.isOrganizationUser || accessScope.isControlCentreUser) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (accessScope.isMobileUser) {
|
|
20
23
|
return;
|
|
21
24
|
}
|
|
22
25
|
throw new common_1.ForbiddenException(`Access denied: Insufficient permissions to access ${pluralEntityName}`);
|
|
@@ -27,25 +30,30 @@ class AccessValidationService {
|
|
|
27
30
|
* @param entity - The entity to check access for
|
|
28
31
|
* @param entityName - The name of the entity (for error messages)
|
|
29
32
|
*/
|
|
30
|
-
validateEntityAccess(accessScope, entity, entityName = 'Entity') {
|
|
33
|
+
validateEntityAccess(accessScope, entity, entityName = 'Entity', creatorId) {
|
|
31
34
|
if (accessScope.isSuperAdmin) {
|
|
32
35
|
return;
|
|
33
36
|
}
|
|
34
|
-
if (!entity.organizationId && !entity.controlCentreId) {
|
|
37
|
+
if (!entity.organizationId && !entity.controlCentreId && !entity.creatorId) {
|
|
35
38
|
throw new common_1.ForbiddenException(`Access denied: ${entityName} has no access control information`);
|
|
36
39
|
}
|
|
37
|
-
if (accessScope.
|
|
40
|
+
if (accessScope.isOrganizationUser) {
|
|
38
41
|
if (entity.organizationId !== accessScope.organizationFilter) {
|
|
39
42
|
throw new common_1.ForbiddenException(`Access denied: ${entityName} does not belong to your organization`);
|
|
40
43
|
}
|
|
41
44
|
return;
|
|
42
45
|
}
|
|
43
|
-
if (accessScope.
|
|
46
|
+
if (accessScope.isControlCentreUser) {
|
|
44
47
|
if (entity.controlCentreId !== accessScope.controlCentreFilter) {
|
|
45
48
|
throw new common_1.ForbiddenException(`Access denied: ${entityName} does not belong to your control centre`);
|
|
46
49
|
}
|
|
47
50
|
return;
|
|
48
51
|
}
|
|
52
|
+
if (accessScope.isMobileUser) {
|
|
53
|
+
if (creatorId && entity.creatorId === creatorId) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
49
57
|
throw new common_1.ForbiddenException(`Access denied: Insufficient permissions to access this ${entityName} entity`);
|
|
50
58
|
}
|
|
51
59
|
/**
|
|
@@ -59,16 +67,21 @@ class AccessValidationService {
|
|
|
59
67
|
return;
|
|
60
68
|
}
|
|
61
69
|
if (createDto.organizationId) {
|
|
62
|
-
if (accessScope.
|
|
70
|
+
if (accessScope.isOrganizationUser && createDto.organizationId !== accessScope.organizationFilter) {
|
|
63
71
|
throw new common_1.ForbiddenException(`Cannot create ${entityName} for this organization`);
|
|
64
72
|
}
|
|
65
73
|
}
|
|
66
74
|
if (createDto.controlCentreId) {
|
|
67
|
-
if (accessScope.
|
|
75
|
+
if (accessScope.isControlCentreUser && createDto.controlCentreId !== accessScope.controlCentreFilter) {
|
|
68
76
|
throw new common_1.ForbiddenException(`Cannot create ${entityName} for this control centre`);
|
|
69
77
|
}
|
|
70
78
|
}
|
|
71
|
-
if (
|
|
79
|
+
if (createDto.creatorId) {
|
|
80
|
+
if (accessScope.isMobileUser && createDto.creatorId !== accessScope.mobileFilter) {
|
|
81
|
+
throw new common_1.ForbiddenException(`Cannot create ${entityName} for another user`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (!accessScope.organizationFilter && !accessScope.controlCentreFilter && !accessScope.mobileFilter) {
|
|
72
85
|
throw new common_1.ForbiddenException(`Insufficient permissions to create ${entityName}`);
|
|
73
86
|
}
|
|
74
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access-validation.service.js","sourceRoot":"","sources":["../../../../../src/modules/common/services/access-validation.service.ts"],"names":[],"mappings":";;;AAAA,2CAAoD;AAIpD;;;GAGG;AACH,MAAa,uBAAuB;IAEhC;;;;OAIG;IACH,kBAAkB,CAAC,WAAwB,EAAE,mBAA2B,UAAU;QAC9E,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;YAC3B,OAAO;QACX,CAAC;QAED,IAAI,WAAW,CAAC,kBAAkB,IAAI,WAAW,CAAC,mBAAmB,EAAE,CAAC;YACpE,OAAO;QACX,CAAC;QAED,MAAM,IAAI,2BAAkB,CAAC,qDAAqD,gBAAgB,EAAE,CAAC,CAAC;IAC1G,CAAC;IAED;;;;;OAKG;IACH,oBAAoB,CAChB,WAAwB,EACxB,MAAS,EACT,aAAqB,QAAQ;
|
|
1
|
+
{"version":3,"file":"access-validation.service.js","sourceRoot":"","sources":["../../../../../src/modules/common/services/access-validation.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-incident.dto.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/dtos/incident/create-incident.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAyH;AACzH,6CAAmE;AACnE,2EAAiE;AACjE,yEAAgE;AAChE,6EAAoE;AACpE,yDAAyC;AACzC,+EAAsE;AACtE,4CAAiD;AACjD,2EAAkE;AAClE,qGAA8F;AAC9F,2FAAqF;
|
|
1
|
+
{"version":3,"file":"create-incident.dto.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/dtos/incident/create-incident.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.UpdateIncidentDto = void 0;
|
|
4
4
|
const mapped_types_1 = require("@nestjs/mapped-types");
|
|
5
5
|
const create_incident_dto_1 = require("./create-incident.dto");
|
|
6
|
-
/**
|
|
7
|
-
* DTO for updating an existing incident
|
|
8
|
-
* All fields from CreateIncidentDto are optional for updates
|
|
9
|
-
*/
|
|
10
6
|
class UpdateIncidentDto extends (0, mapped_types_1.PartialType)(create_incident_dto_1.CreateIncidentDto) {
|
|
11
7
|
}
|
|
12
8
|
exports.UpdateIncidentDto = UpdateIncidentDto;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-incident.dto.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/dtos/incident/update-incident.dto.ts"],"names":[],"mappings":";;;AAAA,uDAAmD;
|
|
1
|
+
{"version":3,"file":"update-incident.dto.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/dtos/incident/update-incident.dto.ts"],"names":[],"mappings":";;;AAAA,uDAAmD;AACnD,+DAA0D;AAE1D,MAAa,iBAAkB,SAAQ,IAAA,0BAAW,EAAC,uCAAiB,CAAC;CAAI;AAAzE,8CAAyE"}
|
|
@@ -47,25 +47,8 @@ __decorate([
|
|
|
47
47
|
description: 'User ID if the reporter is a system user',
|
|
48
48
|
example: 123
|
|
49
49
|
}),
|
|
50
|
+
(0, class_validator_1.IsNumber)(),
|
|
50
51
|
(0, class_validator_1.IsOptional)(),
|
|
51
52
|
__metadata("design:type", Number)
|
|
52
53
|
], CreateIncidentReporterDto.prototype, "userId", void 0);
|
|
53
|
-
__decorate([
|
|
54
|
-
(0, swagger_1.ApiPropertyOptional)({
|
|
55
|
-
description: 'Date and time when the reporter was created',
|
|
56
|
-
example: '2024-01-15T10:30:00.000Z'
|
|
57
|
-
}),
|
|
58
|
-
(0, class_validator_1.IsDate)(),
|
|
59
|
-
(0, class_validator_1.IsOptional)(),
|
|
60
|
-
__metadata("design:type", Date)
|
|
61
|
-
], CreateIncidentReporterDto.prototype, "createdAt", void 0);
|
|
62
|
-
__decorate([
|
|
63
|
-
(0, swagger_1.ApiPropertyOptional)({
|
|
64
|
-
description: 'Date and time when the reporter was last updated',
|
|
65
|
-
example: '2024-01-15T10:30:00.000Z'
|
|
66
|
-
}),
|
|
67
|
-
(0, class_validator_1.IsDate)(),
|
|
68
|
-
(0, class_validator_1.IsOptional)(),
|
|
69
|
-
__metadata("design:type", Date)
|
|
70
|
-
], CreateIncidentReporterDto.prototype, "updatedAt", void 0);
|
|
71
54
|
//# sourceMappingURL=create-incident-reporter.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-incident-reporter.dto.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/dtos/reporter/create-incident-reporter.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"create-incident-reporter.dto.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/dtos/reporter/create-incident-reporter.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA6G;AAC7G,6CAAmE;AAEnE,MAAa,yBAAyB;CAgCrC;AAhCD,8DAgCC;AAzBG;IANC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,gDAAgD;QAC7D,OAAO,EAAE,UAAU;KACtB,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;uDACC;AAQd;IANC,IAAA,6BAAmB,EAAC;QACjB,WAAW,EAAE,8BAA8B;QAC3C,OAAO,EAAE,aAAa;KACzB,CAAC;IACD,IAAA,+BAAa,GAAE;IACf,IAAA,4BAAU,GAAE;;8DACQ;AAQrB;IANC,IAAA,6BAAmB,EAAC;QACjB,WAAW,EAAE,+BAA+B;QAC5C,OAAO,EAAE,sBAAsB;KAClC,CAAC;IACD,IAAA,yBAAO,GAAE;IACT,IAAA,4BAAU,GAAE;;wDACE;AAQf;IANC,IAAA,6BAAmB,EAAC;QACjB,WAAW,EAAE,0CAA0C;QACvD,OAAO,EAAE,GAAG;KACf,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;yDACG"}
|
|
@@ -10,11 +10,10 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.IncidentReporterDto = void 0;
|
|
13
|
-
const mapped_types_1 = require("@nestjs/mapped-types");
|
|
14
13
|
const class_validator_1 = require("class-validator");
|
|
15
14
|
const create_incident_reporter_dto_1 = require("./create-incident-reporter.dto");
|
|
16
15
|
const swagger_1 = require("@nestjs/swagger");
|
|
17
|
-
class IncidentReporterDto extends
|
|
16
|
+
class IncidentReporterDto extends create_incident_reporter_dto_1.CreateIncidentReporterDto {
|
|
18
17
|
}
|
|
19
18
|
exports.IncidentReporterDto = IncidentReporterDto;
|
|
20
19
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"incident-reporter.dto.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/dtos/reporter/incident-reporter.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"incident-reporter.dto.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/dtos/reporter/incident-reporter.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qDAAqE;AACrE,iFAA2E;AAC3E,6CAA8C;AAE9C,MAAa,mBAAoB,SAAQ,wDAAyB;CAyBjE;AAzBD,kDAyBC;AAjBG;IANC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,0CAA0C;QACvD,OAAO,EAAE,GAAG;KACf,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;+CACD;AAQZ;IANC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,oDAAoD;QACjE,OAAO,EAAE,0BAA0B;KACtC,CAAC;IACD,IAAA,8BAAY,GAAE;IACd,IAAA,4BAAU,GAAE;;sDACM;AAQnB;IANC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,yDAAyD;QACtE,OAAO,EAAE,0BAA0B;KACtC,CAAC;IACD,IAAA,8BAAY,GAAE;IACd,IAAA,4BAAU,GAAE;;sDACM"}
|
|
@@ -13,7 +13,10 @@ export class AccessValidationService {
|
|
|
13
13
|
if (accessScope.isSuperAdmin) {
|
|
14
14
|
return;
|
|
15
15
|
}
|
|
16
|
-
if (accessScope.
|
|
16
|
+
if (accessScope.isOrganizationUser || accessScope.isControlCentreUser) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
if (accessScope.isMobileUser) {
|
|
17
20
|
return;
|
|
18
21
|
}
|
|
19
22
|
throw new ForbiddenException(`Access denied: Insufficient permissions to access ${pluralEntityName}`);
|
|
@@ -24,25 +27,30 @@ export class AccessValidationService {
|
|
|
24
27
|
* @param entity - The entity to check access for
|
|
25
28
|
* @param entityName - The name of the entity (for error messages)
|
|
26
29
|
*/
|
|
27
|
-
validateEntityAccess(accessScope, entity, entityName = 'Entity') {
|
|
30
|
+
validateEntityAccess(accessScope, entity, entityName = 'Entity', creatorId) {
|
|
28
31
|
if (accessScope.isSuperAdmin) {
|
|
29
32
|
return;
|
|
30
33
|
}
|
|
31
|
-
if (!entity.organizationId && !entity.controlCentreId) {
|
|
34
|
+
if (!entity.organizationId && !entity.controlCentreId && !entity.creatorId) {
|
|
32
35
|
throw new ForbiddenException(`Access denied: ${entityName} has no access control information`);
|
|
33
36
|
}
|
|
34
|
-
if (accessScope.
|
|
37
|
+
if (accessScope.isOrganizationUser) {
|
|
35
38
|
if (entity.organizationId !== accessScope.organizationFilter) {
|
|
36
39
|
throw new ForbiddenException(`Access denied: ${entityName} does not belong to your organization`);
|
|
37
40
|
}
|
|
38
41
|
return;
|
|
39
42
|
}
|
|
40
|
-
if (accessScope.
|
|
43
|
+
if (accessScope.isControlCentreUser) {
|
|
41
44
|
if (entity.controlCentreId !== accessScope.controlCentreFilter) {
|
|
42
45
|
throw new ForbiddenException(`Access denied: ${entityName} does not belong to your control centre`);
|
|
43
46
|
}
|
|
44
47
|
return;
|
|
45
48
|
}
|
|
49
|
+
if (accessScope.isMobileUser) {
|
|
50
|
+
if (creatorId && entity.creatorId === creatorId) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
46
54
|
throw new ForbiddenException(`Access denied: Insufficient permissions to access this ${entityName} entity`);
|
|
47
55
|
}
|
|
48
56
|
/**
|
|
@@ -56,16 +64,21 @@ export class AccessValidationService {
|
|
|
56
64
|
return;
|
|
57
65
|
}
|
|
58
66
|
if (createDto.organizationId) {
|
|
59
|
-
if (accessScope.
|
|
67
|
+
if (accessScope.isOrganizationUser && createDto.organizationId !== accessScope.organizationFilter) {
|
|
60
68
|
throw new ForbiddenException(`Cannot create ${entityName} for this organization`);
|
|
61
69
|
}
|
|
62
70
|
}
|
|
63
71
|
if (createDto.controlCentreId) {
|
|
64
|
-
if (accessScope.
|
|
72
|
+
if (accessScope.isControlCentreUser && createDto.controlCentreId !== accessScope.controlCentreFilter) {
|
|
65
73
|
throw new ForbiddenException(`Cannot create ${entityName} for this control centre`);
|
|
66
74
|
}
|
|
67
75
|
}
|
|
68
|
-
if (
|
|
76
|
+
if (createDto.creatorId) {
|
|
77
|
+
if (accessScope.isMobileUser && createDto.creatorId !== accessScope.mobileFilter) {
|
|
78
|
+
throw new ForbiddenException(`Cannot create ${entityName} for another user`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
if (!accessScope.organizationFilter && !accessScope.controlCentreFilter && !accessScope.mobileFilter) {
|
|
69
82
|
throw new ForbiddenException(`Insufficient permissions to create ${entityName}`);
|
|
70
83
|
}
|
|
71
84
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access-validation.service.js","sourceRoot":"","sources":["../../../../../src/modules/common/services/access-validation.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAIpD;;;GAGG;AACH,MAAM,OAAO,uBAAuB;IAEhC;;;;OAIG;IACH,kBAAkB,CAAC,WAAwB,EAAE,mBAA2B,UAAU;QAC9E,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;YAC3B,OAAO;QACX,CAAC;QAED,IAAI,WAAW,CAAC,kBAAkB,IAAI,WAAW,CAAC,mBAAmB,EAAE,CAAC;YACpE,OAAO;QACX,CAAC;QAED,MAAM,IAAI,kBAAkB,CAAC,qDAAqD,gBAAgB,EAAE,CAAC,CAAC;IAC1G,CAAC;IAED;;;;;OAKG;IACH,oBAAoB,CAChB,WAAwB,EACxB,MAAS,EACT,aAAqB,QAAQ;
|
|
1
|
+
{"version":3,"file":"access-validation.service.js","sourceRoot":"","sources":["../../../../../src/modules/common/services/access-validation.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAIpD;;;GAGG;AACH,MAAM,OAAO,uBAAuB;IAEhC;;;;OAIG;IACH,kBAAkB,CAAC,WAAwB,EAAE,mBAA2B,UAAU;QAC9E,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;YAC3B,OAAO;QACX,CAAC;QAED,IAAI,WAAW,CAAC,kBAAkB,IAAI,WAAW,CAAC,mBAAmB,EAAE,CAAC;YACpE,OAAO;QACX,CAAC;QAED,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;YAC3B,OAAO;QACX,CAAC;QAED,MAAM,IAAI,kBAAkB,CAAC,qDAAqD,gBAAgB,EAAE,CAAC,CAAC;IAC1G,CAAC;IAED;;;;;OAKG;IACH,oBAAoB,CAChB,WAAwB,EACxB,MAAS,EACT,aAAqB,QAAQ,EAC7B,SAAkB;QAElB,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;YAC3B,OAAO;QACX,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACzE,MAAM,IAAI,kBAAkB,CAAC,kBAAkB,UAAU,oCAAoC,CAAC,CAAC;QACnG,CAAC;QAED,IAAI,WAAW,CAAC,kBAAkB,EAAE,CAAC;YACjC,IAAI,MAAM,CAAC,cAAc,KAAK,WAAW,CAAC,kBAAkB,EAAE,CAAC;gBAC3D,MAAM,IAAI,kBAAkB,CAAC,kBAAkB,UAAU,uCAAuC,CAAC,CAAC;YACtG,CAAC;YACD,OAAO;QACX,CAAC;QAED,IAAI,WAAW,CAAC,mBAAmB,EAAE,CAAC;YAClC,IAAI,MAAM,CAAC,eAAe,KAAK,WAAW,CAAC,mBAAmB,EAAE,CAAC;gBAC7D,MAAM,IAAI,kBAAkB,CAAC,kBAAkB,UAAU,yCAAyC,CAAC,CAAC;YACxG,CAAC;YACD,OAAO;QACX,CAAC;QAED,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;YAC3B,IAAI,SAAS,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC9C,OAAO;YACX,CAAC;QACL,CAAC;QAED,MAAM,IAAI,kBAAkB,CAAC,0DAA0D,UAAU,SAAS,CAAC,CAAC;IAChH,CAAC;IAED;;;;;OAKG;IACH,oBAAoB,CAChB,WAAwB,EACxB,SAAY,EACZ,aAAqB,QAAQ;QAE7B,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;YAC3B,OAAO;QACX,CAAC;QAED,IAAI,SAAS,CAAC,cAAc,EAAE,CAAC;YAC3B,IAAI,WAAW,CAAC,kBAAkB,IAAI,SAAS,CAAC,cAAc,KAAK,WAAW,CAAC,kBAAkB,EAAE,CAAC;gBAChG,MAAM,IAAI,kBAAkB,CAAC,iBAAiB,UAAU,wBAAwB,CAAC,CAAC;YACtF,CAAC;QACL,CAAC;QAED,IAAI,SAAS,CAAC,eAAe,EAAE,CAAC;YAC5B,IAAI,WAAW,CAAC,mBAAmB,IAAI,SAAS,CAAC,eAAe,KAAK,WAAW,CAAC,mBAAmB,EAAE,CAAC;gBACnG,MAAM,IAAI,kBAAkB,CAAC,iBAAiB,UAAU,0BAA0B,CAAC,CAAC;YACxF,CAAC;QACL,CAAC;QAED,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;YACtB,IAAI,WAAW,CAAC,YAAY,IAAI,SAAS,CAAC,SAAS,KAAK,WAAW,CAAC,YAAY,EAAE,CAAC;gBAC/E,MAAM,IAAI,kBAAkB,CAAC,iBAAiB,UAAU,mBAAmB,CAAC,CAAC;YACjF,CAAC;QACL,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,kBAAkB,IAAI,CAAC,WAAW,CAAC,mBAAmB,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;YACnG,MAAM,IAAI,kBAAkB,CAAC,sCAAsC,UAAU,EAAE,CAAC,CAAC;QACrF,CAAC;IACL,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-incident.dto.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/dtos/incident/create-incident.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACzH,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,6BAA6B,EAAE,MAAM,+CAA+C,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"create-incident.dto.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/dtos/incident/create-incident.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { PartialType } from "@nestjs/mapped-types";
|
|
2
2
|
import { CreateIncidentDto } from "./create-incident.dto";
|
|
3
|
-
/**
|
|
4
|
-
* DTO for updating an existing incident
|
|
5
|
-
* All fields from CreateIncidentDto are optional for updates
|
|
6
|
-
*/
|
|
7
3
|
export class UpdateIncidentDto extends PartialType(CreateIncidentDto) {
|
|
8
4
|
}
|
|
9
5
|
//# sourceMappingURL=update-incident.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-incident.dto.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/dtos/incident/update-incident.dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"update-incident.dto.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/dtos/incident/update-incident.dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,OAAO,iBAAkB,SAAQ,WAAW,CAAC,iBAAiB,CAAC;CAAI"}
|
|
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
-
import {
|
|
10
|
+
import { IsEmail, IsNotEmpty, IsNumber, IsOptional, IsPhoneNumber, IsString } from "class-validator";
|
|
11
11
|
import { ApiProperty, ApiPropertyOptional } from "@nestjs/swagger";
|
|
12
12
|
export class CreateIncidentReporterDto {
|
|
13
13
|
}
|
|
@@ -43,25 +43,8 @@ __decorate([
|
|
|
43
43
|
description: 'User ID if the reporter is a system user',
|
|
44
44
|
example: 123
|
|
45
45
|
}),
|
|
46
|
+
IsNumber(),
|
|
46
47
|
IsOptional(),
|
|
47
48
|
__metadata("design:type", Number)
|
|
48
49
|
], CreateIncidentReporterDto.prototype, "userId", void 0);
|
|
49
|
-
__decorate([
|
|
50
|
-
ApiPropertyOptional({
|
|
51
|
-
description: 'Date and time when the reporter was created',
|
|
52
|
-
example: '2024-01-15T10:30:00.000Z'
|
|
53
|
-
}),
|
|
54
|
-
IsDate(),
|
|
55
|
-
IsOptional(),
|
|
56
|
-
__metadata("design:type", Date)
|
|
57
|
-
], CreateIncidentReporterDto.prototype, "createdAt", void 0);
|
|
58
|
-
__decorate([
|
|
59
|
-
ApiPropertyOptional({
|
|
60
|
-
description: 'Date and time when the reporter was last updated',
|
|
61
|
-
example: '2024-01-15T10:30:00.000Z'
|
|
62
|
-
}),
|
|
63
|
-
IsDate(),
|
|
64
|
-
IsOptional(),
|
|
65
|
-
__metadata("design:type", Date)
|
|
66
|
-
], CreateIncidentReporterDto.prototype, "updatedAt", void 0);
|
|
67
50
|
//# sourceMappingURL=create-incident-reporter.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-incident-reporter.dto.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/dtos/reporter/create-incident-reporter.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"create-incident-reporter.dto.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/dtos/reporter/create-incident-reporter.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAU,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC7G,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEnE,MAAM,OAAO,yBAAyB;CAgCrC;AAzBG;IANC,WAAW,CAAC;QACT,WAAW,EAAE,gDAAgD;QAC7D,OAAO,EAAE,UAAU;KACtB,CAAC;IACD,QAAQ,EAAE;IACV,UAAU,EAAE;;uDACC;AAQd;IANC,mBAAmB,CAAC;QACjB,WAAW,EAAE,8BAA8B;QAC3C,OAAO,EAAE,aAAa;KACzB,CAAC;IACD,aAAa,EAAE;IACf,UAAU,EAAE;;8DACQ;AAQrB;IANC,mBAAmB,CAAC;QACjB,WAAW,EAAE,+BAA+B;QAC5C,OAAO,EAAE,sBAAsB;KAClC,CAAC;IACD,OAAO,EAAE;IACT,UAAU,EAAE;;wDACE;AAQf;IANC,mBAAmB,CAAC;QACjB,WAAW,EAAE,0CAA0C;QACvD,OAAO,EAAE,GAAG;KACf,CAAC;IACD,QAAQ,EAAE;IACV,UAAU,EAAE;;yDACG"}
|
|
@@ -7,11 +7,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
-
import { OmitType } from "@nestjs/mapped-types";
|
|
11
10
|
import { IsDateString, IsNotEmpty, IsNumber } from "class-validator";
|
|
12
11
|
import { CreateIncidentReporterDto } from "./create-incident-reporter.dto";
|
|
13
12
|
import { ApiProperty } from "@nestjs/swagger";
|
|
14
|
-
export class IncidentReporterDto extends
|
|
13
|
+
export class IncidentReporterDto extends CreateIncidentReporterDto {
|
|
15
14
|
}
|
|
16
15
|
__decorate([
|
|
17
16
|
ApiProperty({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"incident-reporter.dto.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/dtos/reporter/incident-reporter.dto.ts"],"names":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"incident-reporter.dto.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/dtos/reporter/incident-reporter.dto.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,OAAO,mBAAoB,SAAQ,yBAAyB;CAyBjE;AAjBG;IANC,WAAW,CAAC;QACT,WAAW,EAAE,0CAA0C;QACvD,OAAO,EAAE,GAAG;KACf,CAAC;IACD,QAAQ,EAAE;IACV,UAAU,EAAE;;+CACD;AAQZ;IANC,WAAW,CAAC;QACT,WAAW,EAAE,oDAAoD;QACjE,OAAO,EAAE,0BAA0B;KACtC,CAAC;IACD,YAAY,EAAE;IACd,UAAU,EAAE;;sDACM;AAQnB;IANC,WAAW,CAAC;QACT,WAAW,EAAE,yDAAyD;QACtE,OAAO,EAAE,0BAA0B;KACtC,CAAC;IACD,YAAY,EAAE;IACd,UAAU,EAAE;;sDACM"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
export interface EntityAccessCheck {
|
|
5
5
|
organizationId?: number;
|
|
6
6
|
controlCentreId?: number;
|
|
7
|
+
creatorId?: number;
|
|
7
8
|
}
|
|
8
9
|
/**
|
|
9
10
|
* Interface for create DTOs that need access validation
|
|
@@ -11,6 +12,7 @@ export interface EntityAccessCheck {
|
|
|
11
12
|
export interface CreateEntityAccessCheck {
|
|
12
13
|
organizationId?: number;
|
|
13
14
|
controlCentreId?: number;
|
|
15
|
+
creatorId?: number;
|
|
14
16
|
}
|
|
15
17
|
/**
|
|
16
18
|
* Interface for update DTOs that need access validation
|
|
@@ -18,4 +20,5 @@ export interface CreateEntityAccessCheck {
|
|
|
18
20
|
export interface UpdateEntityAccessCheck {
|
|
19
21
|
organizationId?: number;
|
|
20
22
|
controlCentreId?: number;
|
|
23
|
+
creatorId?: number;
|
|
21
24
|
}
|
|
@@ -17,7 +17,7 @@ export declare class AccessValidationService {
|
|
|
17
17
|
* @param entity - The entity to check access for
|
|
18
18
|
* @param entityName - The name of the entity (for error messages)
|
|
19
19
|
*/
|
|
20
|
-
validateEntityAccess<T extends EntityAccessCheck>(accessScope: AccessScope, entity: T, entityName?: string): void;
|
|
20
|
+
validateEntityAccess<T extends EntityAccessCheck>(accessScope: AccessScope, entity: T, entityName?: string, creatorId?: number): void;
|
|
21
21
|
/**
|
|
22
22
|
* Validates if a user can create an entity with the specified organization/control centre
|
|
23
23
|
* @param accessScope - The access scope for the user
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { CreateIncidentDto } from "./create-incident.dto";
|
|
2
2
|
declare const UpdateIncidentDto_base: import("@nestjs/mapped-types").MappedType<Partial<CreateIncidentDto>>;
|
|
3
|
-
/**
|
|
4
|
-
* DTO for updating an existing incident
|
|
5
|
-
* All fields from CreateIncidentDto are optional for updates
|
|
6
|
-
*/
|
|
7
3
|
export declare class UpdateIncidentDto extends UpdateIncidentDto_base {
|
|
8
4
|
}
|
|
9
5
|
export {};
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { CreateIncidentReporterDto } from "./create-incident-reporter.dto";
|
|
2
|
-
declare
|
|
3
|
-
export declare class IncidentReporterDto extends IncidentReporterDto_base {
|
|
2
|
+
export declare class IncidentReporterDto extends CreateIncidentReporterDto {
|
|
4
3
|
id: number;
|
|
5
4
|
createdAt: string;
|
|
6
5
|
updatedAt: string;
|
|
7
6
|
}
|
|
8
|
-
export {};
|