grm-shared-library 1.1.115 → 1.1.117
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/dms/dtos/audio-file-upload-options.dto.js +10 -0
- package/dist/cjs/modules/dms/dtos/audio-file-upload-options.dto.js.map +1 -1
- package/dist/cjs/modules/dms/dtos/document-file-upload-options.dto.js +10 -0
- package/dist/cjs/modules/dms/dtos/document-file-upload-options.dto.js.map +1 -1
- package/dist/cjs/modules/dms/dtos/image-file-upload-options.dto.js +16 -0
- package/dist/cjs/modules/dms/dtos/image-file-upload-options.dto.js.map +1 -1
- package/dist/cjs/modules/dms/dtos/multi-file-upload.dto.js +6 -4
- package/dist/cjs/modules/dms/dtos/multi-file-upload.dto.js.map +1 -1
- package/dist/cjs/modules/dms/dtos/video-file-upload-options.dto.js +10 -0
- package/dist/cjs/modules/dms/dtos/video-file-upload-options.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/dms/dtos/audio-file-upload-options.dto.js +11 -1
- package/dist/esm/modules/dms/dtos/audio-file-upload-options.dto.js.map +1 -1
- package/dist/esm/modules/dms/dtos/document-file-upload-options.dto.js +11 -1
- package/dist/esm/modules/dms/dtos/document-file-upload-options.dto.js.map +1 -1
- package/dist/esm/modules/dms/dtos/image-file-upload-options.dto.js +17 -1
- package/dist/esm/modules/dms/dtos/image-file-upload-options.dto.js.map +1 -1
- package/dist/esm/modules/dms/dtos/multi-file-upload.dto.js +7 -5
- package/dist/esm/modules/dms/dtos/multi-file-upload.dto.js.map +1 -1
- package/dist/esm/modules/dms/dtos/video-file-upload-options.dto.js +11 -1
- package/dist/esm/modules/dms/dtos/video-file-upload-options.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/dms/dtos/audio-file-upload-options.dto.d.ts +2 -0
- package/dist/types/modules/dms/dtos/document-file-upload-options.dto.d.ts +2 -0
- package/dist/types/modules/dms/dtos/image-file-upload-options.dto.d.ts +3 -0
- package/dist/types/modules/dms/dtos/multi-file-upload.dto.d.ts +2 -2
- package/dist/types/modules/dms/dtos/video-file-upload-options.dto.d.ts +2 -0
- package/dist/types/modules/dms/interfaces/audio-file-upload-options.d.ts +2 -0
- package/dist/types/modules/dms/interfaces/audio-file.d.ts +1 -0
- package/dist/types/modules/dms/interfaces/document-file-upload-options.d.ts +2 -0
- package/dist/types/modules/dms/interfaces/document-file.d.ts +1 -0
- package/dist/types/modules/dms/interfaces/image-file-upload-options.d.ts +3 -0
- package/dist/types/modules/dms/interfaces/image-file.d.ts +2 -0
- package/dist/types/modules/dms/interfaces/multi-file-upload.d.ts +2 -2
- package/dist/types/modules/dms/interfaces/video-file-upload-options.d.ts +2 -0
- package/dist/types/modules/dms/interfaces/video-file.d.ts +1 -0
- 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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"}
|
|
@@ -116,4 +116,14 @@ __decorate([
|
|
|
116
116
|
(0, class_transformer_1.Transform)(({ value }) => value === 'true' || value === true),
|
|
117
117
|
__metadata("design:type", Boolean)
|
|
118
118
|
], AudioFileUploadOptionsDto.prototype, "preserveOriginalName", void 0);
|
|
119
|
+
__decorate([
|
|
120
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
121
|
+
(0, class_validator_1.IsNumber)(),
|
|
122
|
+
__metadata("design:type", Number)
|
|
123
|
+
], AudioFileUploadOptionsDto.prototype, "userId", void 0);
|
|
124
|
+
__decorate([
|
|
125
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
126
|
+
(0, class_validator_1.IsNumber)(),
|
|
127
|
+
__metadata("design:type", Number)
|
|
128
|
+
], AudioFileUploadOptionsDto.prototype, "organizationId", void 0);
|
|
119
129
|
//# sourceMappingURL=audio-file-upload-options.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audio-file-upload-options.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dms/dtos/audio-file-upload-options.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"audio-file-upload-options.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dms/dtos/audio-file-upload-options.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,4 +55,14 @@ __decorate([
|
|
|
55
55
|
(0, class_validator_1.IsOptional)(),
|
|
56
56
|
__metadata("design:type", Boolean)
|
|
57
57
|
], DocumentFileUploadOptionsDto.prototype, "enableVersioning", void 0);
|
|
58
|
+
__decorate([
|
|
59
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
60
|
+
(0, class_validator_1.IsNumber)(),
|
|
61
|
+
__metadata("design:type", Number)
|
|
62
|
+
], DocumentFileUploadOptionsDto.prototype, "userId", void 0);
|
|
63
|
+
__decorate([
|
|
64
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
65
|
+
(0, class_validator_1.IsNumber)(),
|
|
66
|
+
__metadata("design:type", Number)
|
|
67
|
+
], DocumentFileUploadOptionsDto.prototype, "organizationId", void 0);
|
|
58
68
|
//# sourceMappingURL=document-file-upload-options.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-file-upload-options.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dms/dtos/document-file-upload-options.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"document-file-upload-options.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dms/dtos/document-file-upload-options.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAiG;AAEjG,MAAa,4BAA4B;CAyCxC;AAzCD,oEAyCC;AAtCG;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;4DACG;AAIhB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;iEACQ;AAIrB;IAFC,IAAA,0BAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,IAAA,4BAAU,GAAE;;sEACe;AAI5B;IAFC,IAAA,2BAAS,GAAE;IACX,IAAA,4BAAU,GAAE;;8DACM;AAKnB;IAHC,IAAA,yBAAO,GAAE;IACT,IAAA,0BAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,IAAA,4BAAU,GAAE;;0DACG;AAIhB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;iEACQ;AAIrB;IAFC,IAAA,2BAAS,GAAE;IACX,IAAA,4BAAU,GAAE;;0EACkB;AAI/B;IAFC,IAAA,2BAAS,GAAE;IACX,IAAA,4BAAU,GAAE;;sEACc;AAI3B;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;4DACK;AAIhB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;oEACa"}
|
|
@@ -10,6 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.ImageFileUploadOptionsDto = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
13
14
|
const class_validator_1 = require("class-validator");
|
|
14
15
|
class ImageFileUploadOptionsDto {
|
|
15
16
|
}
|
|
@@ -60,4 +61,19 @@ __decorate([
|
|
|
60
61
|
(0, class_validator_1.IsOptional)(),
|
|
61
62
|
__metadata("design:type", String)
|
|
62
63
|
], ImageFileUploadOptionsDto.prototype, "caption", void 0);
|
|
64
|
+
__decorate([
|
|
65
|
+
(0, common_1.Optional)(),
|
|
66
|
+
(0, class_validator_1.IsString)(),
|
|
67
|
+
__metadata("design:type", String)
|
|
68
|
+
], ImageFileUploadOptionsDto.prototype, "description", void 0);
|
|
69
|
+
__decorate([
|
|
70
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
71
|
+
(0, class_validator_1.IsNumber)(),
|
|
72
|
+
__metadata("design:type", Number)
|
|
73
|
+
], ImageFileUploadOptionsDto.prototype, "userId", void 0);
|
|
74
|
+
__decorate([
|
|
75
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
76
|
+
(0, class_validator_1.IsNumber)(),
|
|
77
|
+
__metadata("design:type", Number)
|
|
78
|
+
], ImageFileUploadOptionsDto.prototype, "organizationId", void 0);
|
|
63
79
|
//# sourceMappingURL=image-file-upload-options.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-file-upload-options.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dms/dtos/image-file-upload-options.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"image-file-upload-options.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dms/dtos/image-file-upload-options.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA0C;AAC1C,qDAAiG;AAEjG,MAAa,yBAAyB;CAiDrC;AAjDD,8DAiDC;AA9CG;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;yDACG;AAIhB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;8DACQ;AAIrB;IAFC,IAAA,0BAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,IAAA,4BAAU,GAAE;;mEACe;AAI5B;IAFC,IAAA,2BAAS,GAAE;IACX,IAAA,4BAAU,GAAE;;oEACe;AAI5B;IAFC,IAAA,2BAAS,GAAE;IACX,IAAA,4BAAU,GAAE;;6DACQ;AAIrB;IAFC,IAAA,2BAAS,GAAE;IACX,IAAA,4BAAU,GAAE;;2DACM;AAKnB;IAHC,IAAA,yBAAO,GAAE;IACT,IAAA,0BAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,IAAA,4BAAU,GAAE;;uDACG;AAIhB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;sDACA;AAIb;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;0DACI;AAIjB;IAFC,IAAA,iBAAQ,GAAE;IACV,IAAA,0BAAQ,GAAE;;8DACU;AAIrB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;yDACK;AAIhB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;iEACa"}
|
|
@@ -16,12 +16,14 @@ class MultiFileUploadOptionsDto {
|
|
|
16
16
|
}
|
|
17
17
|
exports.MultiFileUploadOptionsDto = MultiFileUploadOptionsDto;
|
|
18
18
|
__decorate([
|
|
19
|
-
(0, class_validator_1.
|
|
20
|
-
|
|
19
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
20
|
+
(0, class_validator_1.IsNumber)(),
|
|
21
|
+
__metadata("design:type", Number)
|
|
21
22
|
], MultiFileUploadOptionsDto.prototype, "userId", void 0);
|
|
22
23
|
__decorate([
|
|
23
|
-
(0, class_validator_1.
|
|
24
|
-
|
|
24
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
25
|
+
(0, class_validator_1.IsNumber)(),
|
|
26
|
+
__metadata("design:type", Number)
|
|
25
27
|
], MultiFileUploadOptionsDto.prototype, "organizationId", void 0);
|
|
26
28
|
__decorate([
|
|
27
29
|
(0, class_validator_1.IsOptional)(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-file-upload.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dms/dtos/multi-file-upload.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"multi-file-upload.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dms/dtos/multi-file-upload.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAyG;AACzG,uEAA2D;AAE3D,MAAa,yBAAyB;CAqBrC;AArBD,8DAqBC;AAlBG;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;yDACK;AAIhB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;iEACa;AAKxB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,0BAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;uDACT;AAIhB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;8DACU;AAIrB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;2DACO;AAGvB,MAAa,iBAAiB;CAM7B;AAND,8CAMC;AAJG;IADC,IAAA,wBAAM,EAAC,4BAAQ,CAAC;;+CACD;AAGhB;IADC,IAAA,4BAAU,GAAE;;kDACC"}
|
|
@@ -82,4 +82,14 @@ __decorate([
|
|
|
82
82
|
(0, class_validator_1.IsOptional)(),
|
|
83
83
|
__metadata("design:type", Boolean)
|
|
84
84
|
], VideoFileUploadOptionsDto.prototype, "preserveOriginalName", void 0);
|
|
85
|
+
__decorate([
|
|
86
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
87
|
+
(0, class_validator_1.IsNumber)(),
|
|
88
|
+
__metadata("design:type", Number)
|
|
89
|
+
], VideoFileUploadOptionsDto.prototype, "userId", void 0);
|
|
90
|
+
__decorate([
|
|
91
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
92
|
+
(0, class_validator_1.IsNumber)(),
|
|
93
|
+
__metadata("design:type", Number)
|
|
94
|
+
], VideoFileUploadOptionsDto.prototype, "organizationId", void 0);
|
|
85
95
|
//# sourceMappingURL=video-file-upload-options.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video-file-upload-options.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dms/dtos/video-file-upload-options.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"video-file-upload-options.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dms/dtos/video-file-upload-options.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAuG;AAEvG,MAAa,yBAAyB;CA+DrC;AA/DD,8DA+DC;AA5DG;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;yDACG;AAIhB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;8DACQ;AAIrB;IAFC,IAAA,0BAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,IAAA,4BAAU,GAAE;;mEACe;AAI5B;IAFC,IAAA,2BAAS,GAAE;IACX,IAAA,4BAAU,GAAE;;2DACM;AAKnB;IAHC,IAAA,yBAAO,GAAE;IACT,IAAA,0BAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,IAAA,4BAAU,GAAE;;uDACG;AAIhB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;wDACE;AAIf;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;8DACQ;AAIrB;IAFC,IAAA,2BAAS,GAAE;IACX,IAAA,4BAAU,GAAE;;oEACe;AAI5B;IAFC,IAAA,2BAAS,GAAE;IACX,IAAA,4BAAU,GAAE;;kEACa;AAI1B;IAFC,IAAA,2BAAS,GAAE;IACX,IAAA,4BAAU,GAAE;;oEACe;AAM5B;IAJC,IAAA,yBAAO,GAAE;IACT,IAAA,0BAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,IAAA,4BAAU,GAAE;IACZ,IAAA,sBAAI,EAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;kEACE;AAIlE;IAFC,IAAA,2BAAS,GAAE;IACX,IAAA,4BAAU,GAAE;;kEACa;AAI1B;IAFC,IAAA,2BAAS,GAAE;IACX,IAAA,4BAAU,GAAE;;uEACkB;AAI/B;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;yDACK;AAIhB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;iEACa"}
|
|
@@ -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":"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"}
|
|
@@ -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 { IsOptional, IsString, IsNumber, IsBoolean, IsArray, IsEnum, Min, Max } from 'class-validator';
|
|
10
|
+
import { IsOptional, IsString, IsNumber, IsBoolean, IsArray, IsEnum, Min, Max, IsNotEmpty } from 'class-validator';
|
|
11
11
|
import { Transform, Type } from 'class-transformer';
|
|
12
12
|
export class AudioFileUploadOptionsDto {
|
|
13
13
|
}
|
|
@@ -112,4 +112,14 @@ __decorate([
|
|
|
112
112
|
Transform(({ value }) => value === 'true' || value === true),
|
|
113
113
|
__metadata("design:type", Boolean)
|
|
114
114
|
], AudioFileUploadOptionsDto.prototype, "preserveOriginalName", void 0);
|
|
115
|
+
__decorate([
|
|
116
|
+
IsNotEmpty(),
|
|
117
|
+
IsNumber(),
|
|
118
|
+
__metadata("design:type", Number)
|
|
119
|
+
], AudioFileUploadOptionsDto.prototype, "userId", void 0);
|
|
120
|
+
__decorate([
|
|
121
|
+
IsNotEmpty(),
|
|
122
|
+
IsNumber(),
|
|
123
|
+
__metadata("design:type", Number)
|
|
124
|
+
], AudioFileUploadOptionsDto.prototype, "organizationId", void 0);
|
|
115
125
|
//# sourceMappingURL=audio-file-upload-options.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audio-file-upload-options.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dms/dtos/audio-file-upload-options.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"audio-file-upload-options.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dms/dtos/audio-file-upload-options.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACnH,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,OAAO,yBAAyB;CA4FrC;AAzFG;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;yDACK;AAOhB;IALC,UAAU,EAAE;IACZ,QAAQ,EAAE;IACV,GAAG,CAAC,CAAC,CAAC;IACN,GAAG,CAAC,GAAG,CAAC,CAAC,4BAA4B;;IACrC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;;8DACE;AAKrB;IAHC,UAAU,EAAE;IACZ,OAAO,EAAE;IACT,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;mEACG;AAK5B;IAHC,UAAU,EAAE;IACZ,SAAS,EAAE;IACX,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,CAAC;;2DAC1C;AAKnB;IAHC,UAAU,EAAE;IACZ,OAAO,EAAE;IACT,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;uDACT;AAIhB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;wDACI;AAIf;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;yDACK;AAIhB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;wDACI;AAIf;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;wDACI;AAOf;IALC,UAAU,EAAE;IACZ,QAAQ,EAAE;IACV,GAAG,CAAC,IAAI,CAAC;IACT,GAAG,CAAC,IAAI,CAAC;IACT,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;;uDACL;AAId;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;8DACU;AAKrB;IAHC,UAAU,EAAE;IACZ,SAAS,EAAE;IACX,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,CAAC;;mEAClC;AAK3B;IAHC,UAAU,EAAE;IACZ,SAAS,EAAE;IACX,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,CAAC;;kEACnC;AAK1B;IAHC,UAAU,EAAE;IACZ,SAAS,EAAE;IACX,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,CAAC;;oEACjC;AAK5B;IAHC,UAAU,EAAE;IACZ,OAAO,EAAE;IACT,MAAM,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;kEACF;AAKhD;IAHC,UAAU,EAAE;IACZ,SAAS,EAAE;IACX,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,CAAC;;kEACnC;AAK1B;IAHC,UAAU,EAAE;IACZ,SAAS,EAAE;IACX,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,CAAC;;uEAC9B;AAK/B;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;yDACK;AAIhB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;iEACa"}
|
|
@@ -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 { IsArray, IsBoolean, IsNumber, IsOptional, IsString } from "class-validator";
|
|
10
|
+
import { IsArray, IsBoolean, IsNotEmpty, IsNumber, IsOptional, IsString } from "class-validator";
|
|
11
11
|
export class DocumentFileUploadOptionsDto {
|
|
12
12
|
}
|
|
13
13
|
__decorate([
|
|
@@ -51,4 +51,14 @@ __decorate([
|
|
|
51
51
|
IsOptional(),
|
|
52
52
|
__metadata("design:type", Boolean)
|
|
53
53
|
], DocumentFileUploadOptionsDto.prototype, "enableVersioning", void 0);
|
|
54
|
+
__decorate([
|
|
55
|
+
IsNotEmpty(),
|
|
56
|
+
IsNumber(),
|
|
57
|
+
__metadata("design:type", Number)
|
|
58
|
+
], DocumentFileUploadOptionsDto.prototype, "userId", void 0);
|
|
59
|
+
__decorate([
|
|
60
|
+
IsNotEmpty(),
|
|
61
|
+
IsNumber(),
|
|
62
|
+
__metadata("design:type", Number)
|
|
63
|
+
], DocumentFileUploadOptionsDto.prototype, "organizationId", void 0);
|
|
54
64
|
//# sourceMappingURL=document-file-upload-options.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-file-upload-options.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dms/dtos/document-file-upload-options.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"document-file-upload-options.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dms/dtos/document-file-upload-options.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEjG,MAAM,OAAO,4BAA4B;CAyCxC;AAtCG;IAFC,QAAQ,EAAE;IACV,UAAU,EAAE;;4DACG;AAIhB;IAFC,QAAQ,EAAE;IACV,UAAU,EAAE;;iEACQ;AAIrB;IAFC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,UAAU,EAAE;;sEACe;AAI5B;IAFC,SAAS,EAAE;IACX,UAAU,EAAE;;8DACM;AAKnB;IAHC,OAAO,EAAE;IACT,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,UAAU,EAAE;;0DACG;AAIhB;IAFC,QAAQ,EAAE;IACV,UAAU,EAAE;;iEACQ;AAIrB;IAFC,SAAS,EAAE;IACX,UAAU,EAAE;;0EACkB;AAI/B;IAFC,SAAS,EAAE;IACX,UAAU,EAAE;;sEACc;AAI3B;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;4DACK;AAIhB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;oEACa"}
|
|
@@ -7,7 +7,8 @@ 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 { Optional } from "@nestjs/common";
|
|
11
|
+
import { IsArray, IsBoolean, IsNotEmpty, IsNumber, IsOptional, IsString } from "class-validator";
|
|
11
12
|
export class ImageFileUploadOptionsDto {
|
|
12
13
|
}
|
|
13
14
|
__decorate([
|
|
@@ -56,4 +57,19 @@ __decorate([
|
|
|
56
57
|
IsOptional(),
|
|
57
58
|
__metadata("design:type", String)
|
|
58
59
|
], ImageFileUploadOptionsDto.prototype, "caption", void 0);
|
|
60
|
+
__decorate([
|
|
61
|
+
Optional(),
|
|
62
|
+
IsString(),
|
|
63
|
+
__metadata("design:type", String)
|
|
64
|
+
], ImageFileUploadOptionsDto.prototype, "description", void 0);
|
|
65
|
+
__decorate([
|
|
66
|
+
IsNotEmpty(),
|
|
67
|
+
IsNumber(),
|
|
68
|
+
__metadata("design:type", Number)
|
|
69
|
+
], ImageFileUploadOptionsDto.prototype, "userId", void 0);
|
|
70
|
+
__decorate([
|
|
71
|
+
IsNotEmpty(),
|
|
72
|
+
IsNumber(),
|
|
73
|
+
__metadata("design:type", Number)
|
|
74
|
+
], ImageFileUploadOptionsDto.prototype, "organizationId", void 0);
|
|
59
75
|
//# sourceMappingURL=image-file-upload-options.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-file-upload-options.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dms/dtos/image-file-upload-options.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"image-file-upload-options.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dms/dtos/image-file-upload-options.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEjG,MAAM,OAAO,yBAAyB;CAiDrC;AA9CG;IAFC,QAAQ,EAAE;IACV,UAAU,EAAE;;yDACG;AAIhB;IAFC,QAAQ,EAAE;IACV,UAAU,EAAE;;8DACQ;AAIrB;IAFC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,UAAU,EAAE;;mEACe;AAI5B;IAFC,SAAS,EAAE;IACX,UAAU,EAAE;;oEACe;AAI5B;IAFC,SAAS,EAAE;IACX,UAAU,EAAE;;6DACQ;AAIrB;IAFC,SAAS,EAAE;IACX,UAAU,EAAE;;2DACM;AAKnB;IAHC,OAAO,EAAE;IACT,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,UAAU,EAAE;;uDACG;AAIhB;IAFC,QAAQ,EAAE;IACV,UAAU,EAAE;;sDACA;AAIb;IAFC,QAAQ,EAAE;IACV,UAAU,EAAE;;0DACI;AAIjB;IAFC,QAAQ,EAAE;IACV,QAAQ,EAAE;;8DACU;AAIrB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;yDACK;AAIhB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;iEACa"}
|
|
@@ -7,17 +7,19 @@ 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 { IsString, IsOptional, IsArray, IsBoolean, IsEnum } from 'class-validator';
|
|
10
|
+
import { IsString, IsOptional, IsArray, IsBoolean, IsEnum, IsNumber, IsNotEmpty } from 'class-validator';
|
|
11
11
|
import { FileType } from '../interfaces/multi-file-upload';
|
|
12
12
|
export class MultiFileUploadOptionsDto {
|
|
13
13
|
}
|
|
14
14
|
__decorate([
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
IsNotEmpty(),
|
|
16
|
+
IsNumber(),
|
|
17
|
+
__metadata("design:type", Number)
|
|
17
18
|
], MultiFileUploadOptionsDto.prototype, "userId", void 0);
|
|
18
19
|
__decorate([
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
IsNotEmpty(),
|
|
21
|
+
IsNumber(),
|
|
22
|
+
__metadata("design:type", Number)
|
|
21
23
|
], MultiFileUploadOptionsDto.prototype, "organizationId", void 0);
|
|
22
24
|
__decorate([
|
|
23
25
|
IsOptional(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-file-upload.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dms/dtos/multi-file-upload.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"multi-file-upload.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dms/dtos/multi-file-upload.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAE3D,MAAM,OAAO,yBAAyB;CAqBrC;AAlBG;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;yDACK;AAIhB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;iEACa;AAKxB;IAHC,UAAU,EAAE;IACZ,OAAO,EAAE;IACT,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;uDACT;AAIhB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;8DACU;AAIrB;IAFC,UAAU,EAAE;IACZ,SAAS,EAAE;;2DACO;AAGvB,MAAM,OAAO,iBAAiB;CAM7B;AAJG;IADC,MAAM,CAAC,QAAQ,CAAC;;+CACD;AAGhB;IADC,UAAU,EAAE;;kDACC"}
|
|
@@ -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 { IsArray, IsBoolean, IsNumber, IsOptional, IsString, IsIn } from "class-validator";
|
|
10
|
+
import { IsArray, IsBoolean, IsNumber, IsOptional, IsString, IsIn, IsNotEmpty } from "class-validator";
|
|
11
11
|
export class VideoFileUploadOptionsDto {
|
|
12
12
|
}
|
|
13
13
|
__decorate([
|
|
@@ -78,4 +78,14 @@ __decorate([
|
|
|
78
78
|
IsOptional(),
|
|
79
79
|
__metadata("design:type", Boolean)
|
|
80
80
|
], VideoFileUploadOptionsDto.prototype, "preserveOriginalName", void 0);
|
|
81
|
+
__decorate([
|
|
82
|
+
IsNotEmpty(),
|
|
83
|
+
IsNumber(),
|
|
84
|
+
__metadata("design:type", Number)
|
|
85
|
+
], VideoFileUploadOptionsDto.prototype, "userId", void 0);
|
|
86
|
+
__decorate([
|
|
87
|
+
IsNotEmpty(),
|
|
88
|
+
IsNumber(),
|
|
89
|
+
__metadata("design:type", Number)
|
|
90
|
+
], VideoFileUploadOptionsDto.prototype, "organizationId", void 0);
|
|
81
91
|
//# sourceMappingURL=video-file-upload-options.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video-file-upload-options.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dms/dtos/video-file-upload-options.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"video-file-upload-options.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dms/dtos/video-file-upload-options.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEvG,MAAM,OAAO,yBAAyB;CA+DrC;AA5DG;IAFC,QAAQ,EAAE;IACV,UAAU,EAAE;;yDACG;AAIhB;IAFC,QAAQ,EAAE;IACV,UAAU,EAAE;;8DACQ;AAIrB;IAFC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,UAAU,EAAE;;mEACe;AAI5B;IAFC,SAAS,EAAE;IACX,UAAU,EAAE;;2DACM;AAKnB;IAHC,OAAO,EAAE;IACT,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,UAAU,EAAE;;uDACG;AAIhB;IAFC,QAAQ,EAAE;IACV,UAAU,EAAE;;wDACE;AAIf;IAFC,QAAQ,EAAE;IACV,UAAU,EAAE;;8DACQ;AAIrB;IAFC,SAAS,EAAE;IACX,UAAU,EAAE;;oEACe;AAI5B;IAFC,SAAS,EAAE;IACX,UAAU,EAAE;;kEACa;AAI1B;IAFC,SAAS,EAAE;IACX,UAAU,EAAE;;oEACe;AAM5B;IAJC,OAAO,EAAE;IACT,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,UAAU,EAAE;IACZ,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;kEACE;AAIlE;IAFC,SAAS,EAAE;IACX,UAAU,EAAE;;kEACa;AAI1B;IAFC,SAAS,EAAE;IACX,UAAU,EAAE;;uEACkB;AAI/B;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;yDACK;AAIhB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;iEACa"}
|
|
@@ -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
|
|
@@ -14,6 +14,7 @@ export interface ImageFile {
|
|
|
14
14
|
status: FileStatus;
|
|
15
15
|
alt?: string;
|
|
16
16
|
caption?: string;
|
|
17
|
+
description?: string;
|
|
17
18
|
tags?: string[];
|
|
18
19
|
metadata?: Record<string, any>;
|
|
19
20
|
userId: number;
|
|
@@ -25,4 +26,5 @@ export interface ImageFile {
|
|
|
25
26
|
updatedAt: Date;
|
|
26
27
|
deletedAt?: Date;
|
|
27
28
|
signedUrl?: string;
|
|
29
|
+
organizationId: number;
|
|
28
30
|
}
|
|
@@ -27,8 +27,8 @@ export interface FileUploadItemResult {
|
|
|
27
27
|
data?: any;
|
|
28
28
|
}
|
|
29
29
|
export interface MultiFileUploadOptions {
|
|
30
|
-
userId:
|
|
31
|
-
organizationId:
|
|
30
|
+
userId: number;
|
|
31
|
+
organizationId: number;
|
|
32
32
|
tags?: string[];
|
|
33
33
|
description?: string;
|
|
34
34
|
isPublic?: boolean;
|