@aldb2b/common 1.0.155 → 1.0.156

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.
@@ -5,9 +5,7 @@ export declare namespace AuthorizeUser {
5
5
  data: Data;
6
6
  }
7
7
  interface Data {
8
- path: string;
9
- method: string;
10
8
  cognitoUserId: string;
11
- eventId?: string;
9
+ eventId: string;
12
10
  }
13
11
  }
@@ -7,4 +7,6 @@ export declare class AuthorizerMiddleware implements NestMiddleware {
7
7
  constructor(client: ClientProxy);
8
8
  use(request: Request, response: Response, next: NextFunction): Promise<void>;
9
9
  private getHeaderParam;
10
+ private isPermitted;
11
+ private getUserPermissions;
10
12
  }
@@ -17,7 +17,7 @@ const common_1 = require("@nestjs/common");
17
17
  const microservices_1 = require("@nestjs/microservices");
18
18
  const rxjs_1 = require("rxjs");
19
19
  const redis_1 = require("redis");
20
- const subjects_1 = require("../events/subjects");
20
+ const subjects_1 = require("src/events/subjects");
21
21
  class RedisClient {
22
22
  constructor() {
23
23
  this.redisClient = redis_1.createClient({
@@ -39,6 +39,15 @@ class RedisClient {
39
39
  console.log('REDIS GET DATA ERROR--------', err);
40
40
  }
41
41
  }
42
+ async getAllKeys() {
43
+ try {
44
+ await this.connectToRedis();
45
+ return this.redisClient.keys('*');
46
+ }
47
+ catch (err) {
48
+ console.log('REDIS GET DATA ERROR--------', err);
49
+ }
50
+ }
42
51
  async setData(key, value) {
43
52
  try {
44
53
  await this.connectToRedis();
@@ -55,42 +64,52 @@ let AuthorizerMiddleware = class AuthorizerMiddleware {
55
64
  this.cachManager = new RedisClient();
56
65
  }
57
66
  async use(request, response, next) {
58
- const campaignUser = {
67
+ const user = {
59
68
  subject: subjects_1.Subjects.AuthorizeUser,
60
69
  data: {
61
- path: request.route.path,
62
- method: request.method,
63
70
  cognitoUserId: this.getHeaderParam(request.headers, 'x-cognito-userid'),
64
71
  eventId: this.getHeaderParam(request.headers, 'event-id'),
65
72
  },
66
73
  };
67
- const redisResponse = await this.cachManager.getData(JSON.stringify(campaignUser.data));
74
+ const redisResponse = await this.cachManager.getData(JSON.stringify(user.data));
68
75
  let resp;
69
76
  if (redisResponse) {
70
77
  resp = JSON.parse(redisResponse);
71
- console.log('FROM REDIS--------------------');
78
+ console.log('FROM REDIS--------------------', redisResponse);
79
+ await this.isPermitted(resp.type, resp.role, request.method, request.route.path);
72
80
  }
73
81
  else {
74
- resp = await rxjs_1.firstValueFrom(this.client.send(campaignUser.subject, campaignUser.data));
82
+ resp = await rxjs_1.firstValueFrom(this.client.send(user.subject, user.data));
75
83
  console.log('FROM MESSAGE BROKER--------------------', resp);
76
- await this.cachManager.setData(JSON.stringify(campaignUser.data), JSON.stringify(resp));
77
- }
78
- if (resp.isAuthorized === false) {
79
- throw new common_1.UnauthorizedException();
80
- }
81
- else {
82
- request.headers.id = resp.id;
83
- request.headers.type = resp.type;
84
- request.headers.role = resp.role;
85
- request.headers.email = resp.email;
86
- request.headers.company = resp.company;
87
- request.headers.contactId = resp.contactId;
84
+ if (resp.isAuthorized === false) {
85
+ throw new common_1.UnauthorizedException();
86
+ }
87
+ else {
88
+ await this.cachManager.setData(JSON.stringify(user.data), JSON.stringify(resp));
89
+ }
88
90
  }
91
+ request.headers.id = resp.id;
92
+ request.headers.type = resp.type;
93
+ request.headers.role = resp.role;
94
+ request.headers.email = resp.email;
95
+ request.headers.company = resp.company;
96
+ request.headers.contactId = resp.contactId;
89
97
  next();
90
98
  }
91
99
  getHeaderParam(headers, param) {
92
100
  return Array.isArray(headers[param]) ? headers[param][0] : headers[param];
93
101
  }
102
+ async isPermitted(type, role, method, path) {
103
+ const permissions = await this.getUserPermissions(type, role);
104
+ const permission = permissions.find(item => item.type === method && item.route === path);
105
+ if (!permission || !permission.isAllowed) {
106
+ throw new common_1.UnauthorizedException();
107
+ }
108
+ }
109
+ async getUserPermissions(type, role) {
110
+ let cachedPermissions = await this.cachManager.getData(`${type}-${role}`);
111
+ return JSON.parse(cachedPermissions);
112
+ }
94
113
  };
95
114
  AuthorizerMiddleware = __decorate([
96
115
  common_1.Injectable(),
@@ -1 +1 @@
1
- {"version":3,"file":"authorizer.middleware.js","sourceRoot":"","sources":["../../src/middlewares/authorizer.middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authorizer.middleware.js","sourceRoot":"","sources":["../../src/middlewares/authorizer.middleware.ts"],"names":[],"mappings":"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"}
@@ -192,8 +192,8 @@
192
192
  "affectsGlobalScope": false
193
193
  },
194
194
  "../src/events/authorize-user.interface.ts": {
195
- "version": "83ee0804667fa74aa6a417e9de91a85074667710b7748add5db22a6771b0d647",
196
- "signature": "464d9fdb13bb22d8fe2a5115068a64a7f7a48263089baabd912c2ab43fbb335f",
195
+ "version": "da1d824ffa99ff9d3982cc963de94e84c9892e328e3262bcd55736d1d94a0655",
196
+ "signature": "e29ec6361fb4732f0ee7e7445bc5ffcb6cbf11e26c2c0d3e7e79987e31a30b91",
197
197
  "affectsGlobalScope": false
198
198
  },
199
199
  "../src/events/attendee-contact.interface.ts": {
@@ -6227,8 +6227,8 @@
6227
6227
  "affectsGlobalScope": false
6228
6228
  },
6229
6229
  "../src/middlewares/authorizer.middleware.ts": {
6230
- "version": "4aea7077047232eeac1e0256c1652dfc33c2bffb2dac9fb544dec6f361f05183",
6231
- "signature": "bda73204fc777d21be42b1484548a1fe3e5e01ac1f8bad2abacda825ee5a6da5",
6230
+ "version": "aa473abf6c36f836fd71ccdc411c4002b817365fe7930531fe36441a6f693bde",
6231
+ "signature": "1c5d65c5ec5568c3946d80a9e2b43427afdbddcbbf889ec56985b5209cdaab7c",
6232
6232
  "affectsGlobalScope": false
6233
6233
  },
6234
6234
  "../src/utils/create-default-directories.ts": {
@@ -11412,8 +11412,9 @@
11412
11412
  "../node_modules/@types/express/index.d.ts",
11413
11413
  "../node_modules/redis/dist/index.d.ts",
11414
11414
  "../node_modules/rxjs/dist/types/index.d.ts",
11415
- "../src/events/authorize-user.interface.ts",
11416
- "../src/events/subjects.ts"
11415
+ "../src/events/subjects.ts",
11416
+ "../src/types/user-role.enum.ts",
11417
+ "../src/types/user-type.enum.ts"
11417
11418
  ],
11418
11419
  "../src/types/default-visibility.interface.ts": [
11419
11420
  "../src/types/analytic-group.interface.ts",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aldb2b/common",
3
- "version": "1.0.155",
3
+ "version": "1.0.156",
4
4
  "description": "",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",