@campxdev/server-shared 1.2.23 → 1.2.24
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/common/interceptors/request.interceptor.d.ts +4 -1
- package/dist/common/interceptors/request.interceptor.d.ts.map +1 -1
- package/dist/common/interceptors/request.interceptor.js +13 -3
- package/dist/common/interceptors/request.interceptor.js.map +1 -1
- package/dist/permissions/check-permission.guard.d.ts +4 -3
- package/dist/permissions/check-permission.guard.d.ts.map +1 -1
- package/dist/permissions/check-permission.guard.js +6 -4
- package/dist/permissions/check-permission.guard.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common';
|
|
2
2
|
import { Reflector } from '@nestjs/core';
|
|
3
|
+
import { Model } from 'mongoose';
|
|
4
|
+
import { GlobalUser } from '../../domain';
|
|
3
5
|
import { SharedService } from '../../shared-module';
|
|
4
6
|
export declare class RequestInterceptor implements NestInterceptor {
|
|
5
7
|
private readonly reflector;
|
|
6
8
|
private readonly sharedService;
|
|
7
|
-
|
|
9
|
+
private readonly globalUserModel;
|
|
10
|
+
constructor(reflector: Reflector, sharedService: SharedService, globalUserModel: Model<GlobalUser>);
|
|
8
11
|
intercept(context: ExecutionContext, next: CallHandler<any>): Promise<import("rxjs").Observable<any>>;
|
|
9
12
|
private hasAuth;
|
|
10
13
|
private checkAuth;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.interceptor.d.ts","sourceRoot":"","sources":["../../../src/common/interceptors/request.interceptor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAGhB,eAAe,EAGhB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAmBpD,qBACa,kBAAmB,YAAW,eAAe;IAEtD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,aAAa;
|
|
1
|
+
{"version":3,"file":"request.interceptor.d.ts","sourceRoot":"","sources":["../../../src/common/interceptors/request.interceptor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAGhB,eAAe,EAGhB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAmBpD,qBACa,kBAAmB,YAAW,eAAe;IAEtD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,aAAa;IACA,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAF7C,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EACE,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC;IAG7E,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC;IA4BjE,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,SAAS;IAoBjB,OAAO,CAAC,aAAa;YASP,eAAe;IAa7B,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,kBAAkB;CAY3B"}
|
|
@@ -8,10 +8,16 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
exports.RequestInterceptor = void 0;
|
|
13
16
|
const common_1 = require("@nestjs/common");
|
|
14
17
|
const core_1 = require("@nestjs/core");
|
|
18
|
+
const mongoose_1 = require("@nestjs/mongoose");
|
|
19
|
+
const mongoose_2 = require("mongoose");
|
|
20
|
+
const domain_1 = require("../../domain");
|
|
15
21
|
const check_permission_guard_1 = require("../../permissions/check-permission.guard");
|
|
16
22
|
const shared_module_1 = require("../../shared-module");
|
|
17
23
|
const utils_1 = require("../../utils");
|
|
@@ -20,9 +26,11 @@ const request_store_1 = require("../store/request-store");
|
|
|
20
26
|
let RequestInterceptor = class RequestInterceptor {
|
|
21
27
|
reflector;
|
|
22
28
|
sharedService;
|
|
23
|
-
|
|
29
|
+
globalUserModel;
|
|
30
|
+
constructor(reflector, sharedService, globalUserModel) {
|
|
24
31
|
this.reflector = reflector;
|
|
25
32
|
this.sharedService = sharedService;
|
|
33
|
+
this.globalUserModel = globalUserModel;
|
|
26
34
|
}
|
|
27
35
|
async intercept(context, next) {
|
|
28
36
|
const data = context.switchToRpc().getData();
|
|
@@ -83,7 +91,7 @@ let RequestInterceptor = class RequestInterceptor {
|
|
|
83
91
|
if (isMicroservice)
|
|
84
92
|
return;
|
|
85
93
|
this.checkAuth();
|
|
86
|
-
const val = await (0, check_permission_guard_1.validateRequestPermission)(permission, this.sharedService.getCheckPermission());
|
|
94
|
+
const val = await (0, check_permission_guard_1.validateRequestPermission)(permission, this.sharedService.getCheckPermission(), this.globalUserModel);
|
|
87
95
|
if (!val) {
|
|
88
96
|
throw new common_1.ForbiddenException('You are not authorized to perform this action');
|
|
89
97
|
}
|
|
@@ -127,8 +135,10 @@ let RequestInterceptor = class RequestInterceptor {
|
|
|
127
135
|
};
|
|
128
136
|
RequestInterceptor = __decorate([
|
|
129
137
|
(0, common_1.Injectable)(),
|
|
138
|
+
__param(2, (0, mongoose_1.InjectModel)(domain_1.GlobalUser.name)),
|
|
130
139
|
__metadata("design:paramtypes", [core_1.Reflector,
|
|
131
|
-
shared_module_1.SharedService
|
|
140
|
+
shared_module_1.SharedService,
|
|
141
|
+
mongoose_2.Model])
|
|
132
142
|
], RequestInterceptor);
|
|
133
143
|
exports.RequestInterceptor = RequestInterceptor;
|
|
134
144
|
//# sourceMappingURL=request.interceptor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.interceptor.js","sourceRoot":"","sources":["../../../src/common/interceptors/request.interceptor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"request.interceptor.js","sourceRoot":"","sources":["../../../src/common/interceptors/request.interceptor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { Model } from 'mongoose';
|
|
1
2
|
import { EntityManager } from 'typeorm';
|
|
2
3
|
import { IRequest } from '../common';
|
|
3
|
-
import { ProfilePermission, User } from '../domain';
|
|
4
|
-
export type CheckFn = (manager: EntityManager, user: User, permission: ProfilePermission, req: IRequest) => Promise<boolean> | boolean;
|
|
4
|
+
import { GlobalUser, ProfilePermission, User } from '../domain';
|
|
5
|
+
export type CheckFn = (manager: EntityManager, user: User, permission: ProfilePermission, req: IRequest, globalUser: GlobalUser) => Promise<boolean> | boolean;
|
|
5
6
|
export type CheckPermissions = {
|
|
6
7
|
[key: string]: CheckFn | boolean;
|
|
7
8
|
};
|
|
8
|
-
export declare function validateRequestPermission(permissionName: string, fns: CheckPermissions): Promise<boolean>;
|
|
9
|
+
export declare function validateRequestPermission(permissionName: string, fns: CheckPermissions, globalUserModel: Model<GlobalUser>): Promise<boolean>;
|
|
9
10
|
//# sourceMappingURL=check-permission.guard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-permission.guard.d.ts","sourceRoot":"","sources":["../../src/permissions/check-permission.guard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAA0C,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"check-permission.guard.d.ts","sourceRoot":"","sources":["../../src/permissions/check-permission.guard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAA0C,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGhE,MAAM,MAAM,OAAO,GAAG,CACpB,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,iBAAiB,EAC7B,GAAG,EAAE,QAAQ,EACb,UAAU,EAAE,UAAU,KACnB,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAEhC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;CAClC,CAAC;AAEF,wBAAsB,yBAAyB,CAC7C,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,gBAAgB,EACrB,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC,GACjC,OAAO,CAAC,OAAO,CAAC,CAqDlB"}
|
|
@@ -5,7 +5,7 @@ const lodash_1 = require("lodash");
|
|
|
5
5
|
const common_1 = require("../common");
|
|
6
6
|
const domain_1 = require("../domain");
|
|
7
7
|
const permissions_1 = require("./permissions");
|
|
8
|
-
async function validateRequestPermission(permissionName, fns) {
|
|
8
|
+
async function validateRequestPermission(permissionName, fns, globalUserModel) {
|
|
9
9
|
const reqUser = (0, common_1.getUserData)();
|
|
10
10
|
if (!reqUser || !reqUser.id)
|
|
11
11
|
return false;
|
|
@@ -15,7 +15,7 @@ async function validateRequestPermission(permissionName, fns) {
|
|
|
15
15
|
return false;
|
|
16
16
|
const user = await (0, common_1.getDataSource)().manager.findOne(domain_1.User, {
|
|
17
17
|
where: { id: reqUser.id },
|
|
18
|
-
relations:
|
|
18
|
+
relations: { profiles: true },
|
|
19
19
|
});
|
|
20
20
|
if (!user)
|
|
21
21
|
return false;
|
|
@@ -49,8 +49,10 @@ async function validateRequestPermission(permissionName, fns) {
|
|
|
49
49
|
const pp = fns?.[permission.groupSlug];
|
|
50
50
|
if (pp === null || pp === undefined)
|
|
51
51
|
return true;
|
|
52
|
-
if (typeof pp === 'function')
|
|
53
|
-
|
|
52
|
+
if (typeof pp === 'function') {
|
|
53
|
+
const globalUser = await globalUserModel.findById(reqUser.userId);
|
|
54
|
+
return pp((0, common_1.getDataSource)().manager, user, profilePermission, req, globalUser);
|
|
55
|
+
}
|
|
54
56
|
if (typeof pp === 'boolean')
|
|
55
57
|
return pp;
|
|
56
58
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-permission.guard.js","sourceRoot":"","sources":["../../src/permissions/check-permission.guard.ts"],"names":[],"mappings":";;;AAAA,mCAA8B;
|
|
1
|
+
{"version":3,"file":"check-permission.guard.js","sourceRoot":"","sources":["../../src/permissions/check-permission.guard.ts"],"names":[],"mappings":"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"}
|