@lenne.tech/nest-server 8.1.0 → 8.2.0

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 (46) hide show
  1. package/dist/config.env.js +3 -2
  2. package/dist/config.env.js.map +1 -1
  3. package/dist/core/common/decorators/restricted.decorator.d.ts +2 -0
  4. package/dist/core/common/decorators/restricted.decorator.js +10 -7
  5. package/dist/core/common/decorators/restricted.decorator.js.map +1 -1
  6. package/dist/core/common/helpers/input.helper.d.ts +12 -2
  7. package/dist/core/common/helpers/input.helper.js +50 -11
  8. package/dist/core/common/helpers/input.helper.js.map +1 -1
  9. package/dist/core/common/interfaces/service-options.interface.d.ts +6 -0
  10. package/dist/core/common/models/core-model.model.d.ts +1 -1
  11. package/dist/core/common/models/core-model.model.js.map +1 -1
  12. package/dist/core/common/pipes/check-input.pipe.js +1 -1
  13. package/dist/core/common/pipes/check-input.pipe.js.map +1 -1
  14. package/dist/core/common/services/crud.service.js +17 -19
  15. package/dist/core/common/services/crud.service.js.map +1 -1
  16. package/dist/core/common/services/module.service.d.ts +13 -1
  17. package/dist/core/common/services/module.service.js +39 -4
  18. package/dist/core/common/services/module.service.js.map +1 -1
  19. package/dist/core/common/types/ids.type.d.ts +8 -0
  20. package/dist/core/common/types/ids.type.js +3 -0
  21. package/dist/core/common/types/ids.type.js.map +1 -0
  22. package/dist/core/modules/auth/guards/roles.guard.js.map +1 -1
  23. package/dist/core/modules/user/core-user.service.js +38 -35
  24. package/dist/core/modules/user/core-user.service.js.map +1 -1
  25. package/dist/index.d.ts +1 -0
  26. package/dist/index.js +1 -0
  27. package/dist/index.js.map +1 -1
  28. package/dist/server/modules/user/user.model.d.ts +1 -1
  29. package/dist/server/modules/user/user.resolver.d.ts +2 -2
  30. package/dist/server/modules/user/user.resolver.js +30 -14
  31. package/dist/server/modules/user/user.resolver.js.map +1 -1
  32. package/dist/tsconfig.build.tsbuildinfo +1 -1
  33. package/package.json +37 -37
  34. package/src/config.env.ts +3 -2
  35. package/src/core/common/decorators/restricted.decorator.ts +16 -10
  36. package/src/core/common/helpers/input.helper.ts +63 -14
  37. package/src/core/common/interfaces/service-options.interface.ts +19 -1
  38. package/src/core/common/models/core-model.model.ts +1 -1
  39. package/src/core/common/pipes/check-input.pipe.ts +1 -1
  40. package/src/core/common/services/crud.service.ts +17 -22
  41. package/src/core/common/services/module.service.ts +75 -9
  42. package/src/core/common/types/ids.type.ts +7 -0
  43. package/src/core/modules/auth/guards/roles.guard.ts +1 -1
  44. package/src/core/modules/user/core-user.service.ts +42 -44
  45. package/src/index.ts +1 -0
  46. package/src/server/modules/user/user.resolver.ts +26 -20
@@ -93,7 +93,8 @@ const config = {
93
93
  },
94
94
  },
95
95
  };
96
- const envConfig = config[process.env['NODE' + '_ENV'] || 'development'] || config.development;
97
- console.log('Server starts in mode: ', process.env['NODE' + '_ENV'] || 'development');
96
+ const env = process.env['NODE' + '_ENV'] || 'development';
97
+ const envConfig = config[env] || config.development;
98
+ console.log('Configured for: ' + envConfig.env + (env !== envConfig.env ? ' (requested: ' + env + ')' : ''));
98
99
  exports.default = envConfig;
99
100
  //# sourceMappingURL=config.env.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.env.js","sourceRoot":"","sources":["../src/config.env.ts"],"names":[],"mappings":";;AAAA,+BAA4B;AAM5B,MAAM,MAAM,GAAsC;IAIhD,WAAW,EAAE;QACX,KAAK,EAAE;YACL,IAAI,EAAE;gBACJ,IAAI,EAAE;oBACJ,IAAI,EAAE,yBAAyB;oBAC/B,IAAI,EAAE,oBAAoB;iBAC3B;gBACD,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,GAAG;gBACT,MAAM,EAAE,KAAK;aACd;YACD,OAAO,EAAE;gBACP,cAAc,EAAE,wBAAwB;gBACxC,eAAe,EAAE,yBAAyB;aAC3C;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,yBAAyB;gBAChC,IAAI,EAAE,mBAAmB;aAC1B;YACD,gBAAgB,EAAE,yCAAyC;YAC3D,iBAAiB,EAAE,2CAA2C;SAC/D;QACD,GAAG,EAAE,aAAa;QAClB,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,KAAK,EAAE,IAAI;gBACX,aAAa,EAAE,IAAI;aACpB;SACF;QACD,GAAG,EAAE;YACH,MAAM,EAAE,2BAA2B;SACpC;QACD,QAAQ,EAAE;YACR,GAAG,EAAE,qCAAqC;SAC3C;QACD,IAAI,EAAE,IAAI;QACV,YAAY,EAAE;YACZ,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC;YACrC,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;SAChC;QACD,SAAS,EAAE;YACT,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,WAAW,CAAC;YAClC,MAAM,EAAE,KAAK;SACd;KACF;IAKD,UAAU,EAAE;QACV,KAAK,EAAE;YACL,IAAI,EAAE;gBACJ,IAAI,EAAE;oBACJ,IAAI,EAAE,yBAAyB;oBAC/B,IAAI,EAAE,oBAAoB;iBAC3B;gBACD,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,GAAG;gBACT,MAAM,EAAE,KAAK;aACd;YACD,OAAO,EAAE;gBACP,cAAc,EAAE,wBAAwB;gBACxC,eAAe,EAAE,yBAAyB;aAC3C;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,yBAAyB;gBAChC,IAAI,EAAE,mBAAmB;aAC1B;YACD,gBAAgB,EAAE,yCAAyC;YAC3D,iBAAiB,EAAE,2CAA2C;SAC/D;QACD,GAAG,EAAE,YAAY;QACjB,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,KAAK,EAAE,KAAK;gBACZ,aAAa,EAAE,IAAI;aACpB;SACF;QACD,GAAG,EAAE;YACH,MAAM,EAAE,4BAA4B;SACrC;QACD,QAAQ,EAAE;YACR,GAAG,EAAE,sCAAsC;SAC5C;QACD,IAAI,EAAE,IAAI;QACV,YAAY,EAAE;YACZ,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC;YACrC,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;SAChC;QACD,SAAS,EAAE;YACT,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,WAAW,CAAC;YAClC,MAAM,EAAE,KAAK;SACd;KACF;CACF,CAAC;AAOF,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,aAAa,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC;AAC9F,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,aAAa,CAAC,CAAC;AAKtF,kBAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"config.env.js","sourceRoot":"","sources":["../src/config.env.ts"],"names":[],"mappings":";;AAAA,+BAA4B;AAM5B,MAAM,MAAM,GAAsC;IAIhD,WAAW,EAAE;QACX,KAAK,EAAE;YACL,IAAI,EAAE;gBACJ,IAAI,EAAE;oBACJ,IAAI,EAAE,yBAAyB;oBAC/B,IAAI,EAAE,oBAAoB;iBAC3B;gBACD,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,GAAG;gBACT,MAAM,EAAE,KAAK;aACd;YACD,OAAO,EAAE;gBACP,cAAc,EAAE,wBAAwB;gBACxC,eAAe,EAAE,yBAAyB;aAC3C;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,yBAAyB;gBAChC,IAAI,EAAE,mBAAmB;aAC1B;YACD,gBAAgB,EAAE,yCAAyC;YAC3D,iBAAiB,EAAE,2CAA2C;SAC/D;QACD,GAAG,EAAE,aAAa;QAClB,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,KAAK,EAAE,IAAI;gBACX,aAAa,EAAE,IAAI;aACpB;SACF;QACD,GAAG,EAAE;YACH,MAAM,EAAE,2BAA2B;SACpC;QACD,QAAQ,EAAE;YACR,GAAG,EAAE,qCAAqC;SAC3C;QACD,IAAI,EAAE,IAAI;QACV,YAAY,EAAE;YACZ,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC;YACrC,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;SAChC;QACD,SAAS,EAAE;YACT,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,WAAW,CAAC;YAClC,MAAM,EAAE,KAAK;SACd;KACF;IAKD,UAAU,EAAE;QACV,KAAK,EAAE;YACL,IAAI,EAAE;gBACJ,IAAI,EAAE;oBACJ,IAAI,EAAE,yBAAyB;oBAC/B,IAAI,EAAE,oBAAoB;iBAC3B;gBACD,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,GAAG;gBACT,MAAM,EAAE,KAAK;aACd;YACD,OAAO,EAAE;gBACP,cAAc,EAAE,wBAAwB;gBACxC,eAAe,EAAE,yBAAyB;aAC3C;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,yBAAyB;gBAChC,IAAI,EAAE,mBAAmB;aAC1B;YACD,gBAAgB,EAAE,yCAAyC;YAC3D,iBAAiB,EAAE,2CAA2C;SAC/D;QACD,GAAG,EAAE,YAAY;QACjB,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,KAAK,EAAE,KAAK;gBACZ,aAAa,EAAE,IAAI;aACpB;SACF;QACD,GAAG,EAAE;YACH,MAAM,EAAE,4BAA4B;SACrC;QACD,QAAQ,EAAE;YACR,GAAG,EAAE,sCAAsC;SAC5C;QACD,IAAI,EAAE,IAAI;QACV,YAAY,EAAE;YACZ,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC;YACrC,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;SAChC;QACD,SAAS,EAAE;YACT,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,WAAW,CAAC;YAClC,MAAM,EAAE,KAAK;SACd;KACF;CACF,CAAC;AAOF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,aAAa,CAAC;AAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC;AACpD,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAK7G,kBAAe,SAAS,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import 'reflect-metadata';
2
+ import { IdsType } from '../types/ids.type';
2
3
  export declare const Restricted: (...roles: string[]) => PropertyDecorator;
3
4
  export declare const getRestricted: (object: unknown, propertyKey: string) => any;
4
5
  export declare const checkRestricted: (data: any, user: {
@@ -6,5 +7,6 @@ export declare const checkRestricted: (data: any, user: {
6
7
  hasRole: (roles: string[]) => boolean;
7
8
  }, options?: {
8
9
  ignoreUndefined?: boolean;
10
+ ownerIds?: IdsType;
9
11
  throwError?: boolean;
10
12
  }, processedObjects?: any[]) => any;
@@ -4,6 +4,7 @@ exports.checkRestricted = exports.getRestricted = exports.Restricted = void 0;
4
4
  require("reflect-metadata");
5
5
  const common_1 = require("@nestjs/common");
6
6
  const role_enum_1 = require("../enums/role.enum");
7
+ const db_helper_1 = require("../helpers/db.helper");
7
8
  const restrictedMetaKey = Symbol('restricted');
8
9
  const Restricted = (...roles) => {
9
10
  return Reflect.metadata(restrictedMetaKey, roles);
@@ -23,7 +24,7 @@ const checkRestricted = (data, user, options = {}, processedObjects = []) => {
23
24
  }
24
25
  processedObjects.push(data);
25
26
  if (Array.isArray(data)) {
26
- return data.map((item) => (0, exports.checkRestricted)(item, user, options, processedObjects));
27
+ return data.map((item) => (0, exports.checkRestricted)(item, user, config, processedObjects));
27
28
  }
28
29
  for (const propertyKey of Object.keys(data)) {
29
30
  if (data[propertyKey] === undefined && config.ignoreUndefined) {
@@ -33,12 +34,14 @@ const checkRestricted = (data, user, options = {}, processedObjects = []) => {
33
34
  if (roles && roles.some((value) => !!value)) {
34
35
  if (!user || !user.hasRole(roles)) {
35
36
  if (user && roles.includes(role_enum_1.RoleEnum.OWNER)) {
36
- const userId = user.id.toString();
37
- if (!data.ownerIds ||
38
- !(data.ownerIds === userId ||
39
- (Array.isArray(data.ownerIds) &&
40
- data.ownerIds.some((item) => (item.id ? item.id.toString() === userId : item.toString() === userId))))) {
37
+ const userId = (0, db_helper_1.getStringIds)(user);
38
+ const ownerIds = config.ownerIds ? (0, db_helper_1.getStringIds)(config.ownerIds) : null;
39
+ if (!ownerIds ||
40
+ !(ownerIds === userId || (Array.isArray(ownerIds) && ownerIds.includes(userId)))) {
41
41
  if (config.throwError) {
42
+ if (!config.ownerIds) {
43
+ throw new common_1.UnauthorizedException('Lack of ownerIds to verify ownership of ' + propertyKey);
44
+ }
42
45
  throw new common_1.UnauthorizedException('Current user is not allowed to set ' + propertyKey);
43
46
  }
44
47
  continue;
@@ -52,7 +55,7 @@ const checkRestricted = (data, user, options = {}, processedObjects = []) => {
52
55
  }
53
56
  }
54
57
  }
55
- data[propertyKey] = (0, exports.checkRestricted)(data[propertyKey], user, options, processedObjects);
58
+ data[propertyKey] = (0, exports.checkRestricted)(data[propertyKey], user, config, processedObjects);
56
59
  }
57
60
  return data;
58
61
  };
@@ -1 +1 @@
1
- {"version":3,"file":"restricted.decorator.js","sourceRoot":"","sources":["../../../../src/core/common/decorators/restricted.decorator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"restricted.decorator.js","sourceRoot":"","sources":["../../../../src/core/common/decorators/restricted.decorator.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAC1B,2CAAuD;AACvD,kDAA8C;AAC9C,oDAAoD;AAMpD,MAAM,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAUxC,MAAM,UAAU,GAAG,CAAC,GAAG,KAAe,EAAqB,EAAE;IAClE,OAAO,OAAO,CAAC,QAAQ,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;AACpD,CAAC,CAAC;AAFW,QAAA,UAAU,cAErB;AAKK,MAAM,aAAa,GAAG,CAAC,MAAe,EAAE,WAAmB,EAAE,EAAE;IACpE,OAAO,OAAO,CAAC,WAAW,CAAC,iBAAiB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AACrE,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB;AAOK,MAAM,eAAe,GAAG,CAC7B,IAAS,EACT,IAAwD,EACxD,UAAmF,EAAE,EACrF,mBAA0B,EAAE,EAC5B,EAAE;IACF,MAAM,MAAM,mBACV,eAAe,EAAE,IAAI,EACrB,UAAU,EAAE,IAAI,IACb,OAAO,CACX,CAAC;IAGF,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QACrC,OAAO,IAAI,CAAC;KACb;IAGD,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACnC,OAAO,IAAI,CAAC;KACb;IACD,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAG5B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAEvB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,uBAAe,EAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;KAClF;IAGD,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAE3C,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,eAAe,EAAE;YAC7D,SAAS;SACV;QAGD,MAAM,KAAK,GAAG,IAAA,qBAAa,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAG/C,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;YAE3C,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAEjC,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,oBAAQ,CAAC,KAAK,CAAC,EAAE;oBAC1C,MAAM,MAAM,GAAG,IAAA,wBAAY,EAAC,IAAI,CAAC,CAAC;oBAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAA,wBAAY,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBAExE,IAEE,CAAC,QAAQ;wBAET,CAAC,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAChF;wBAEA,IAAI,MAAM,CAAC,UAAU,EAAE;4BACrB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;gCACpB,MAAM,IAAI,8BAAqB,CAAC,0CAA0C,GAAG,WAAW,CAAC,CAAC;6BAC3F;4BACD,MAAM,IAAI,8BAAqB,CAAC,qCAAqC,GAAG,WAAW,CAAC,CAAC;yBACtF;wBACD,SAAS;qBACV;iBACF;qBAAM;oBAEL,IAAI,MAAM,CAAC,UAAU,EAAE;wBACrB,MAAM,IAAI,8BAAqB,CAAC,qCAAqC,GAAG,WAAW,CAAC,CAAC;qBACtF;oBACD,SAAS;iBACV;aACF;SACF;QAGD,IAAI,CAAC,WAAW,CAAC,GAAG,IAAA,uBAAe,EAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;KACxF;IAGD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AA/EW,QAAA,eAAe,mBA+E1B"}
@@ -1,8 +1,13 @@
1
+ import { IdsType } from '../types/ids.type';
1
2
  export default class InputHelper {
2
3
  static check(value: any, user: {
3
4
  id: any;
4
5
  hasRole: (roles: string[]) => boolean;
5
- }, metatype?: any): Promise<any>;
6
+ }, options?: {
7
+ metatype?: any;
8
+ ownerIds?: IdsType;
9
+ roles?: string | string[];
10
+ }): Promise<any>;
6
11
  static errorFunction(caller: (...params: any[]) => any, message?: string): void;
7
12
  static isArray(parameter: any, falseFunction?: (...params: any[]) => any): boolean;
8
13
  static isBasicType(metatype: any, falseFunction?: (...params: any[]) => any): boolean;
@@ -27,7 +32,12 @@ export default class InputHelper {
27
32
  export declare function check(value: any, user: {
28
33
  id: any;
29
34
  hasRole: (roles: string[]) => boolean;
30
- }, metatype?: any): Promise<any>;
35
+ }, options?: {
36
+ metatype?: any;
37
+ ownerIds?: IdsType;
38
+ roles?: string | string[];
39
+ throwError?: boolean;
40
+ }): Promise<any>;
31
41
  export declare function errorFunction(caller: (...params: any[]) => any, message?: string): void;
32
42
  export declare function isArray(parameter: any, falseFunction?: (...params: any[]) => any): boolean;
33
43
  export declare function isBasicType(metatype: any, falseFunction?: (...params: any[]) => any): boolean;
@@ -6,9 +6,11 @@ const class_transformer_1 = require("class-transformer");
6
6
  const class_validator_1 = require("class-validator");
7
7
  const _ = require("lodash");
8
8
  const restricted_decorator_1 = require("../decorators/restricted.decorator");
9
+ const role_enum_1 = require("../enums/role.enum");
10
+ const db_helper_1 = require("./db.helper");
9
11
  class InputHelper {
10
- static async check(value, user, metatype) {
11
- return check(value, user, metatype);
12
+ static async check(value, user, options) {
13
+ return check(value, user, options);
12
14
  }
13
15
  static errorFunction(caller, message = 'Required parameter is missing or invalid') {
14
16
  return errorFunction(caller, message);
@@ -72,23 +74,60 @@ class InputHelper {
72
74
  }
73
75
  }
74
76
  exports.default = InputHelper;
75
- async function check(value, user, metatype) {
76
- if (typeof value !== 'object' || !metatype || isBasicType(metatype)) {
77
+ async function check(value, user, options) {
78
+ var _a;
79
+ const config = Object.assign({ throwError: true }, options);
80
+ if (((_a = config.roles) === null || _a === void 0 ? void 0 : _a.length) && config.throwError) {
81
+ let roles = config.roles;
82
+ if (!Array.isArray(roles)) {
83
+ roles = [roles];
84
+ }
85
+ let valid = false;
86
+ if (roles.includes(role_enum_1.RoleEnum.USER) && (user === null || user === void 0 ? void 0 : user.id)) {
87
+ valid = true;
88
+ }
89
+ else if (user.hasRole(roles)) {
90
+ valid = true;
91
+ }
92
+ else if (roles.includes(role_enum_1.RoleEnum.OWNER) && (user === null || user === void 0 ? void 0 : user.id) && config.ownerIds) {
93
+ let ownerIds = (0, db_helper_1.getStringIds)(config.ownerIds);
94
+ if (!Array.isArray(ownerIds)) {
95
+ ownerIds = [ownerIds];
96
+ }
97
+ valid = ownerIds.includes((0, db_helper_1.getStringIds)(user.id));
98
+ }
99
+ if (!valid) {
100
+ throw new common_1.UnauthorizedException('Missing rights');
101
+ }
102
+ }
103
+ if (typeof value !== 'object') {
104
+ return value;
105
+ }
106
+ if (Array.isArray(value)) {
107
+ for (const [key, item] of Object.entries(value)) {
108
+ value[key] = await check(item, user, config);
109
+ }
77
110
  return value;
78
111
  }
79
- if (!(value instanceof metatype)) {
80
- if (metatype === null || metatype === void 0 ? void 0 : metatype.map) {
81
- value = metatype === null || metatype === void 0 ? void 0 : metatype.map(value);
112
+ const metatype = config.metatype;
113
+ if (metatype) {
114
+ if (isBasicType(metatype)) {
115
+ return value;
82
116
  }
83
- else {
84
- value = (0, class_transformer_1.plainToInstance)(metatype, value);
117
+ if (!(value instanceof metatype)) {
118
+ if (metatype === null || metatype === void 0 ? void 0 : metatype.map) {
119
+ value = metatype === null || metatype === void 0 ? void 0 : metatype.map(value);
120
+ }
121
+ else {
122
+ value = (0, class_transformer_1.plainToInstance)(metatype, value);
123
+ }
85
124
  }
86
125
  }
87
126
  const errors = await (0, class_validator_1.validate)(value);
88
- if (errors.length > 0) {
127
+ if (errors.length > 0 && config.throwError) {
89
128
  throw new common_1.BadRequestException('Validation failed');
90
129
  }
91
- value = (0, restricted_decorator_1.checkRestricted)(value, user);
130
+ value = (0, restricted_decorator_1.checkRestricted)(value, user, config);
92
131
  return value;
93
132
  }
94
133
  exports.check = check;
@@ -1 +1 @@
1
- {"version":3,"file":"input.helper.js","sourceRoot":"","sources":["../../../../src/core/common/helpers/input.helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"input.helper.js","sourceRoot":"","sources":["../../../../src/core/common/helpers/input.helper.ts"],"names":[],"mappings":";;;AAAA,2CAA4E;AAC5E,yDAAoD;AACpD,qDAA2C;AAC3C,4BAA4B;AAC5B,6EAAqE;AACrE,kDAA8C;AAE9C,2CAA2C;AAM3C,MAAqB,WAAW;IAIvB,MAAM,CAAC,KAAK,CAAC,KAAK,CACvB,KAAU,EACV,IAAwD,EACxD,OAA2E;QAE3E,OAAO,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAGM,MAAM,CAAC,aAAa,CAAC,MAA0B,EAAE,OAAO,GAAG,0CAA0C;QAC1G,OAAO,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAKM,MAAM,CAAC,OAAO,CAAC,SAAc,EAAE,gBAAoC,aAAa;QACrF,OAAO,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAC3C,CAAC;IAKM,MAAM,CAAC,WAAW,CAAC,QAAa,EAAE,gBAAoC,WAAW;QACtF,OAAO,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC9C,CAAC;IAKM,MAAM,CAAC,SAAS,CACrB,SAAiB,EACjB,GAAW,EACX,GAAW,EACX,gBAAoC,aAAa;QAEjD,OAAO,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;IACvD,CAAC;IAKM,MAAM,CAAC,MAAM,CAAC,SAAe,EAAE,gBAAoC,aAAa;QACrF,OAAO,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAC1C,CAAC;IAKM,MAAM,CAAC,OAAO,CAAC,SAAiB,EAAE,gBAAoC,aAAa;QACxF,OAAO,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAC3C,CAAC;IAKM,MAAM,CAAC,OAAO,CAAC,SAAc,EAAE,gBAAoC,aAAa;QACrF,OAAO,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAC3C,CAAC;IAKM,MAAM,CAAC,MAAM,CAAC,SAAc,EAAE,gBAAoC,aAAa;QACpF,OAAO,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAC1C,CAAC;IAKM,MAAM,CAAC,UAAU,CAAC,SAA6B,EAAE,gBAAoC,aAAa;QACvG,OAAO,UAAU,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAC9C,CAAC;IAKM,MAAM,CAAC,SAAS,CACrB,SAAiB,EACjB,OAAe,EACf,gBAAoC,aAAa;QAEjD,OAAO,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IACtD,CAAC;IAKM,MAAM,CAAC,OAAO,CACnB,SAAiB,EACjB,OAAe,EACf,gBAAoC,aAAa;QAEjD,OAAO,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IACpD,CAAC;IAKM,MAAM,CAAC,eAAe,CAAC,SAAc,EAAE,gBAAoC,aAAa;QAC7F,OAAO,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACpD,CAAC;IAKM,MAAM,CAAC,gBAAgB,CAAC,SAAc,EAAE,gBAAoC,aAAa;QAC9F,OAAO,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACpD,CAAC;IAKM,MAAM,CAAC,gBAAgB,CAAC,SAAiB,EAAE,gBAAoC,aAAa;QACjG,OAAO,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACpD,CAAC;IAKM,MAAM,CAAC,QAAQ,CAAC,SAAiB,EAAE,gBAAoC,aAAa;QACzF,OAAO,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAC5C,CAAC;IAKM,MAAM,CAAC,QAAQ,CAAC,SAAc,EAAE,gBAAoC,aAAa;QACtF,OAAO,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAC5C,CAAC;IAKM,MAAM,CAAC,MAAM,CAAC,SAAc,EAAE,gBAAoC,aAAa;QACpF,OAAO,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAC1C,CAAC;IAKM,MAAM,CAAC,QAAQ,CAAC,SAAiB,EAAE,gBAAoC,aAAa;QACzF,OAAO,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAC5C,CAAC;IAKM,MAAM,CAAC,WAAW;QACvB,OAAO,WAAW,EAAE,CAAC;IACvB,CAAC;IAMM,MAAM,CAAC,GAAG,CAAI,MAAkB,EAAE,IAAiB,EAAE,SAAS,GAAG,IAAI;QAC1E,OAAO,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;CACF;AAnKD,8BAmKC;AAKM,KAAK,UAAU,KAAK,CACzB,KAAU,EACV,IAAwD,EACxD,OAAiG;;IAEjG,MAAM,MAAM,mBACV,UAAU,EAAE,IAAI,IACb,OAAO,CACX,CAAC;IAGF,IAAI,CAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,MAAM,KAAI,MAAM,CAAC,UAAU,EAAE;QAC7C,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACzB,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;SACjB;QACD,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,KAAK,CAAC,QAAQ,CAAC,oBAAQ,CAAC,IAAI,CAAC,KAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAA,EAAE;YAC7C,KAAK,GAAG,IAAI,CAAC;SACd;aAAM,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC9B,KAAK,GAAG,IAAI,CAAC;SACd;aAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,oBAAQ,CAAC,KAAK,CAAC,KAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAA,IAAI,MAAM,CAAC,QAAQ,EAAE;YACxE,IAAI,QAAQ,GAAsB,IAAA,wBAAY,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAC5B,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;aACvB;YACD,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAA,wBAAY,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;SAClD;QACD,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,8BAAqB,CAAC,gBAAgB,CAAC,CAAC;SACnD;KACF;IAGD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,KAAK,CAAC;KACd;IAGD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC/C,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;SAC9C;QACD,OAAO,KAAK,CAAC;KACd;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,IAAI,QAAQ,EAAE;QAEZ,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE;YACzB,OAAO,KAAK,CAAC;SACd;QAGD,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC,EAAE;YAChC,IAAK,QAAgB,aAAhB,QAAQ,uBAAR,QAAQ,CAAU,GAAG,EAAE;gBAC1B,KAAK,GAAI,QAAgB,aAAhB,QAAQ,uBAAR,QAAQ,CAAU,GAAG,CAAC,KAAK,CAAC,CAAC;aACvC;iBAAM;gBACL,KAAK,GAAG,IAAA,mCAAe,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;aAC1C;SACF;KACF;IAGD,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAQ,EAAC,KAAK,CAAC,CAAC;IACrC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE;QAC1C,MAAM,IAAI,4BAAmB,CAAC,mBAAmB,CAAC,CAAC;KACpD;IAGD,KAAK,GAAG,IAAA,sCAAe,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7C,OAAO,KAAK,CAAC;AACf,CAAC;AAxED,sBAwEC;AAKD,SAAgB,aAAa,CAAC,MAA0B,EAAE,OAAO,GAAG,0CAA0C;IAC5G,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,KAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,GAAG,CAAC;AACZ,CAAC;AAJD,sCAIC;AAKD,SAAgB,OAAO,CAAC,SAAc,EAAE,gBAAoC,aAAa;IACvF,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAClE,CAAC;AAFD,0BAEC;AAKD,SAAgB,WAAW,CAAC,QAAa,EAAE,gBAAoC,WAAW;IACxF,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC5E,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;AACtE,CAAC;AAHD,kCAGC;AAKD,SAAgB,SAAS,CACvB,SAAiB,EACjB,GAAW,EACX,GAAW,EACX,gBAAoC,aAAa;IAEjD,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,GAAG,GAAG,IAAI,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AAC/G,CAAC;AAPD,8BAOC;AAKD,SAAgB,MAAM,CAAC,SAAe,EAAE,gBAAoC,aAAa;IACvF,OAAO,SAAS,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAClE,CAAC;AAFD,wBAEC;AAKD,SAAgB,OAAO,CAAC,SAAiB,EAAE,gBAAoC,aAAa;IAC1F,MAAM,KAAK,GAAG,8CAA8C,CAAC;IAC7D,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC/D,CAAC;AAHD,0BAGC;AAKD,SAAgB,OAAO,CAAC,SAAc,EAAE,gBAAoC,aAAa;IACvF,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACpD,CAAC;AAFD,0BAEC;AAKD,SAAgB,MAAM,CAAC,SAAc,EAAE,gBAAoC,aAAa;IACtF,OAAO,SAAS,KAAK,IAAI;QACvB,OAAO,SAAS,KAAK,WAAW;QAChC,SAAS,CAAC,IAAI;QACd,SAAS,CAAC,IAAI;QACd,SAAS,CAAC,IAAI;QACd,SAAS,CAAC,IAAI,GAAG,CAAC;QAClB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AATD,wBASC;AAKD,SAAgB,UAAU,CAAC,SAA6B,EAAE,gBAAoC,aAAa;IACzG,OAAO,OAAO,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAC5E,CAAC;AAFD,gCAEC;AAKD,SAAgB,SAAS,CACvB,SAAiB,EACjB,OAAe,EACf,gBAAoC,aAAa;IAEjD,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AAChG,CAAC;AAND,8BAMC;AAKD,SAAgB,OAAO,CACrB,SAAiB,EACjB,OAAe,EACf,gBAAoC,aAAa;IAEjD,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC9F,CAAC;AAND,0BAMC;AAKD,SAAgB,eAAe,CAAC,SAAc,EAAE,gBAAoC,aAAa;IAC/F,OAAO,SAAS,KAAK,IAAI;QACvB,OAAO,SAAS,KAAK,WAAW;QAChC,SAAS,CAAC,WAAW,KAAK,KAAK;QAC/B,SAAS,CAAC,MAAM,GAAG,CAAC;QACpB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;AACrC,CAAC;AAPD,0CAOC;AAKD,SAAgB,gBAAgB,CAAC,SAAc,EAAE,gBAAoC,aAAa;IAChG,OAAO,SAAS,KAAK,IAAI;QACvB,OAAO,SAAS,KAAK,WAAW;QAChC,SAAS,CAAC,WAAW,KAAK,MAAM;QAChC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC;QACnC,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;AACtC,CAAC;AAPD,4CAOC;AAKD,SAAgB,gBAAgB,CAAC,SAAiB,EAAE,gBAAoC,aAAa;IACnG,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;AACxG,CAAC;AAFD,4CAEC;AAKD,SAAgB,QAAQ,CAAC,SAAiB,EAAE,gBAAoC,aAAa;IAC3F,OAAO,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACxE,CAAC;AAFD,4BAEC;AAKD,SAAgB,QAAQ,CAAC,SAAc,EAAE,gBAAoC,aAAa;IACxF,OAAO,SAAS,KAAK,IAAI,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,WAAW,KAAK,MAAM;QAC/F,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAJD,4BAIC;AAKD,SAAgB,MAAM,CAAC,SAAc,EAAE,gBAAoC,aAAa;IACtF,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACpD,CAAC;AAFD,wBAEC;AAKD,SAAgB,QAAQ,CAAC,SAAiB,EAAE,gBAAoC,aAAa;IAC3F,OAAO,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACxE,CAAC;AAFD,4BAEC;AAKD,SAAgB,WAAW;IACzB,OAAO,KAAK,CAAC;AACf,CAAC;AAFD,kCAEC;AAKD,SAAgB,QAAQ,CAAI,MAAkB,EAAE,IAAiB,EAAE,SAAS,GAAG,IAAI;IACjF,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;IAE5B,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC/C,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9D,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,QAAQ,CAAC,CAAC;AACf,CAAC;AAPD,4BAOC;AAKD,SAAgB,WAAW,CAAC,GAAU,EAAE,MAAM,GAAG,KAAK;IACpD,IAAI,IAAI,GAAW,SAAS,CAAC;IAC7B,IAAI,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,CAAA,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IACD,IAAI,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;IACrB,IAAI,MAAM,EAAE;QACV,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;YACtB,IAAI,OAAO,IAAI,KAAK,IAAI,EAAE;gBACxB,OAAO,SAAS,CAAC;aAClB;SACF;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAdD,kCAcC;AAKD,SAAgB,eAAe,CAAC,GAAU,EAAE,MAAM,GAAG,KAAK;IACxD,IAAI,WAAW,GAAW,SAAS,CAAC;IACpC,IAAI,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,CAAA,EAAE;QAChB,OAAO,WAAW,CAAC;KACpB;IACD,IAAI;QACF,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QACjC,IAAI,MAAM,EAAE;YACV,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;gBACtB,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,EAAE;oBACpC,OAAO,SAAS,CAAC;iBAClB;aACF;SACF;KACF;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAlBD,0CAkBC"}
@@ -1,13 +1,17 @@
1
1
  import { Model } from 'mongoose';
2
2
  import { FieldSelection } from '../types/field-selection.type';
3
+ import { IdsType } from '../types/ids.type';
3
4
  export interface ServiceOptions {
4
5
  [key: string]: any;
6
+ checkRights?: boolean;
5
7
  currentUser?: {
6
8
  [key: string]: any;
7
9
  id: string;
8
10
  roles?: string[];
9
11
  };
10
12
  fieldSelection?: FieldSelection;
13
+ inputType?: new (...params: any[]) => any;
14
+ ownerIds?: IdsType;
11
15
  processFieldSelection?: {
12
16
  model?: new (...args: any[]) => any;
13
17
  dbModel?: Model<any>;
@@ -27,4 +31,6 @@ export interface ServiceOptions {
27
31
  targetModel?: new (...args: any[]) => any;
28
32
  };
29
33
  pubSub?: boolean;
34
+ resultType?: new (...params: any[]) => any;
35
+ roles?: string | string[];
30
36
  }
@@ -16,7 +16,7 @@ export declare abstract class CoreModel {
16
16
  item?: T;
17
17
  mapId?: boolean;
18
18
  }): T;
19
- init<T extends CoreModel>(...args: any[]): this;
19
+ init(...args: any[]): this;
20
20
  map(data: Partial<this> | Record<string, any>, options?: {
21
21
  [key: string]: any;
22
22
  cloneDeep?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"core-model.model.js","sourceRoot":"","sources":["../../../../src/core/common/models/core-model.model.ts"],"names":[],"mappings":";;;AAAA,0DAA8C;AAY9C,MAAsB,SAAS;IAItB,MAAM,CAAC,IAAI,CAAuD,GAAG,IAAW;QACrF,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAKM,MAAM,CAAC,GAAG,CAEf,IAAsC,EACtC,UAOI,EAAE;QAEN,MAAM,MAAM,mBACV,IAAI,EAAE,IAAI,IACP,OAAO,CACX,CAAC;QAEF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,IAAI,CAAC;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAUM,MAAM,CAAC,OAAO,CAEnB,IAAsC,EACtC,UAOI,EAAE;QAEN,MAAM,MAAM,mBACV,IAAI,EAAE,IAAI,IACP,OAAO,CACX,CAAC;QAEF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,IAAI,CAAC;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAMM,IAAI,CAAsB,GAAG,IAAW;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAKM,GAAG,CACR,IAAyC,EACzC,UAMI,EAAE;QAEN,MAAM,MAAM,mBACV,SAAS,EAAE,KAAK,EAChB,WAAW,EAAE,KAAK,EAClB,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,KAAK,IACT,OAAO,CACX,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,kBAAG,EAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,kBAAG,EAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3F,CAAC;IAUM,OAAO,CACZ,IAAyC,EACzC,UAMI,EAAE;QAEN,MAAM,MAAM,mBACV,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,KAAK,EAClB,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,KAAK,IACT,OAAO,CACX,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;CACF;AA1HD,8BA0HC"}
1
+ {"version":3,"file":"core-model.model.js","sourceRoot":"","sources":["../../../../src/core/common/models/core-model.model.ts"],"names":[],"mappings":";;;AAAA,0DAA8C;AAY9C,MAAsB,SAAS;IAItB,MAAM,CAAC,IAAI,CAAuD,GAAG,IAAW;QACrF,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAKM,MAAM,CAAC,GAAG,CAEf,IAAsC,EACtC,UAOI,EAAE;QAEN,MAAM,MAAM,mBACV,IAAI,EAAE,IAAI,IACP,OAAO,CACX,CAAC;QAEF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,IAAI,CAAC;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAUM,MAAM,CAAC,OAAO,CAEnB,IAAsC,EACtC,UAOI,EAAE;QAEN,MAAM,MAAM,mBACV,IAAI,EAAE,IAAI,IACP,OAAO,CACX,CAAC;QAEF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,IAAI,CAAC;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAMM,IAAI,CAAC,GAAG,IAAW;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAKM,GAAG,CACR,IAAyC,EACzC,UAMI,EAAE;QAEN,MAAM,MAAM,mBACV,SAAS,EAAE,KAAK,EAChB,WAAW,EAAE,KAAK,EAClB,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,KAAK,IACT,OAAO,CACX,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,kBAAG,EAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,kBAAG,EAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3F,CAAC;IAUM,OAAO,CACZ,IAAyC,EACzC,UAMI,EAAE;QAEN,MAAM,MAAM,mBACV,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,KAAK,EAClB,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,KAAK,IACT,OAAO,CACX,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;CACF;AA1HD,8BA0HC"}
@@ -24,7 +24,7 @@ let CheckInputPipe = class CheckInputPipe {
24
24
  async transform(value, metadata) {
25
25
  const metatype = metadata === null || metadata === void 0 ? void 0 : metadata.metatype;
26
26
  const { user } = (0, context_helper_1.getContextData)(this.context);
27
- return (0, input_helper_1.check)(value, user, metatype);
27
+ return (0, input_helper_1.check)(value, user, { metatype });
28
28
  }
29
29
  };
30
30
  CheckInputPipe = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"check-input.pipe.js","sourceRoot":"","sources":["../../../../src/core/common/pipes/check-input.pipe.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAqF;AACrF,6CAA0C;AAC1C,8DAA2D;AAC3D,0DAAgD;AAUhD,IAAa,cAAc,GAA3B,MAAa,cAAc;IAIzB,YAAgD,OAAO;QAAP,YAAO,GAAP,OAAO,CAAA;IAAG,CAAC;IAK3D,KAAK,CAAC,SAAS,CAAC,KAAU,EAAE,QAA0B;QAEpD,MAAM,QAAQ,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAC;QAGpC,MAAM,EAAE,IAAI,EAAE,GAAQ,IAAA,+BAAc,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAGnD,OAAO,IAAA,oBAAK,EAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;CACF,CAAA;AAnBY,cAAc;IAD1B,IAAA,mBAAU,GAAE;IAKE,WAAA,IAAA,eAAM,EAAC,iBAAO,CAAC,CAAA;;GAJjB,cAAc,CAmB1B;AAnBY,wCAAc"}
1
+ {"version":3,"file":"check-input.pipe.js","sourceRoot":"","sources":["../../../../src/core/common/pipes/check-input.pipe.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAqF;AACrF,6CAA0C;AAC1C,8DAA2D;AAC3D,0DAAgD;AAUhD,IAAa,cAAc,GAA3B,MAAa,cAAc;IAIzB,YAAgD,OAAO;QAAP,YAAO,GAAP,OAAO,CAAA;IAAG,CAAC;IAK3D,KAAK,CAAC,SAAS,CAAC,KAAU,EAAE,QAA0B;QAEpD,MAAM,QAAQ,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAC;QAGpC,MAAM,EAAE,IAAI,EAAE,GAAQ,IAAA,+BAAc,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAGnD,OAAO,IAAA,oBAAK,EAAC,KAAK,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF,CAAA;AAnBY,cAAc;IAD1B,IAAA,mBAAU,GAAE;IAKE,WAAA,IAAA,eAAM,EAAC,iBAAO,CAAC,CAAA;;GAJjB,cAAc,CAmB1B;AAnBY,wCAAc"}
@@ -13,13 +13,11 @@ class CrudService extends module_service_1.ModuleService {
13
13
  }, { input, serviceOptions });
14
14
  }
15
15
  async get(id, serviceOptions) {
16
- return this.process(async (data) => {
17
- const item = await this.mainDbModel.findById(data.input).exec();
18
- if (!item) {
19
- throw new common_1.NotFoundException(`No ${this.mainModelConstructor.name} found with ID: ${id}`);
20
- }
21
- return item;
22
- }, { input: id, serviceOptions });
16
+ const dbObject = await this.mainDbModel.findById(id).exec();
17
+ if (!dbObject) {
18
+ throw new common_1.NotFoundException(`No ${this.mainModelConstructor.name} found with ID: ${id}`);
19
+ }
20
+ return this.process(async () => dbObject, { dbObject, serviceOptions });
23
21
  }
24
22
  async find(filterArgs, serviceOptions) {
25
23
  return this.process(async (data) => {
@@ -36,23 +34,23 @@ class CrudService extends module_service_1.ModuleService {
36
34
  }
37
35
  }
38
36
  async update(id, input, serviceOptions) {
37
+ const dbObject = await this.mainDbModel.findById(id).exec();
38
+ if (!dbObject) {
39
+ throw new common_1.NotFoundException(`No ${this.mainModelConstructor.name} found with ID: ${id}`);
40
+ }
39
41
  return this.process(async (data) => {
40
- const item = await this.mainDbModel.findById(id).exec();
41
- if (!item) {
42
- throw new common_1.NotFoundException(`No ${this.mainModelConstructor.name} found with ID: ${id}`);
43
- }
44
- return await Object.assign(item, data.input).save();
45
- }, { input, serviceOptions });
42
+ return await Object.assign(dbObject, data.input).save();
43
+ }, { dbObject, input, serviceOptions });
46
44
  }
47
45
  async delete(id, serviceOptions) {
46
+ const dbObject = await this.mainDbModel.findById(id).exec();
47
+ if (!dbObject) {
48
+ throw new common_1.NotFoundException(`No ${this.mainModelConstructor.name} found with ID: ${id}`);
49
+ }
48
50
  return this.process(async (data) => {
49
- const item = await this.mainDbModel.findById(id).exec();
50
- if (!item) {
51
- throw new common_1.NotFoundException(`No ${this.mainModelConstructor.name} found with ID: ${id}`);
52
- }
53
51
  await this.mainDbModel.findByIdAndDelete(id).exec();
54
- return item;
55
- }, { input: id, serviceOptions });
52
+ return dbObject;
53
+ }, { dbObject, input: id, serviceOptions });
56
54
  }
57
55
  }
58
56
  exports.CrudService = CrudService;
@@ -1 +1 @@
1
- {"version":3,"file":"crud.service.js","sourceRoot":"","sources":["../../../../src/core/common/services/crud.service.ts"],"names":[],"mappings":";;;AAAA,2CAAmD;AAEnD,4DAAiD;AACjD,4DAAoE;AAGpE,qDAAiD;AAEjD,MAAsB,WAAuC,SAAQ,8BAAgB;IAInF,KAAK,CAAC,MAAM,CAAC,KAAU,EAAE,cAA+B;QACtD,IAAA,qBAAK,EAAC,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,OAAO,CACjB,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,OAAO,IAAI,IAAI,CAAC,WAAW,mBAAM,IAAI,CAAC,KAAK,EAAG,CAAC,IAAI,EAAE,CAAC;QACxD,CAAC,EACD,EAAE,KAAK,EAAE,cAAc,EAAE,CAC1B,CAAC;IACJ,CAAC;IAKD,KAAK,CAAC,GAAG,CAAC,EAAU,EAAE,cAA+B;QACnD,OAAO,IAAI,CAAC,OAAO,CACjB,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YAChE,IAAI,CAAC,IAAI,EAAE;gBACT,MAAM,IAAI,0BAAiB,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,mBAAmB,EAAE,EAAE,CAAC,CAAC;aAC1F;YACD,OAAO,IAAI,CAAC;QACd,CAAC,EACD,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,CAC9B,CAAC;IACJ,CAAC;IAKD,KAAK,CAAC,IAAI,CAAC,UAAuB,EAAE,cAA+B;QACjE,OAAO,IAAI,CAAC,OAAO,CACjB,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,MAAM,WAAW,GAAG,IAAA,wCAAwB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzD,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5E,CAAC,EACD,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,CACtC,CAAC;IACJ,CAAC;IAeD,KAAK,CAAC,IAAI,CAAC,KAA0B,EAAE,cAA+B;QACpE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;SACxC;aAAM;YACL,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;SACzC;IACH,CAAC;IAKD,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,KAAU,EAAE,cAA+B;QAClE,OAAO,IAAI,CAAC,OAAO,CACjB,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACxD,IAAI,CAAC,IAAI,EAAE;gBACT,MAAM,IAAI,0BAAiB,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,mBAAmB,EAAE,EAAE,CAAC,CAAC;aAC1F;YACD,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QACtD,CAAC,EACD,EAAE,KAAK,EAAE,cAAc,EAAE,CAC1B,CAAC;IACJ,CAAC;IAKD,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,cAA+B;QACtD,OAAO,IAAI,CAAC,OAAO,CACjB,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACxD,IAAI,CAAC,IAAI,EAAE;gBACT,MAAM,IAAI,0BAAiB,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,mBAAmB,EAAE,EAAE,CAAC,CAAC;aAC1F;YACD,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC;QACd,CAAC,EACD,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,CAC9B,CAAC;IACJ,CAAC;CACF;AAhGD,kCAgGC"}
1
+ {"version":3,"file":"crud.service.js","sourceRoot":"","sources":["../../../../src/core/common/services/crud.service.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import { Document, Model } from 'mongoose';
1
+ import { Document, Model, Types } from 'mongoose';
2
2
  import { ServiceOptions } from '../interfaces/service-options.interface';
3
3
  import { CoreModel } from '../models/core-model.model';
4
4
  import { FieldSelection } from '../types/field-selection.type';
5
+ import { IdsType } from '../types/ids.type';
5
6
  export declare abstract class ModuleService<T extends CoreModel = any> {
6
7
  protected mainModelConstructor: new (...args: any[]) => T;
7
8
  protected mainDbModel: Model<T & Document>;
@@ -9,12 +10,23 @@ export declare abstract class ModuleService<T extends CoreModel = any> {
9
10
  mainDbModel: Model<T & Document>;
10
11
  mainModelConstructor?: new (...args: any[]) => T;
11
12
  });
13
+ checkRights(input: any, currentUser: {
14
+ id: any;
15
+ hasRole: (roles: string[]) => boolean;
16
+ }, options?: {
17
+ metatype?: any;
18
+ ownerIds?: IdsType;
19
+ roles?: string | string[];
20
+ throwError?: boolean;
21
+ }): Promise<any>;
22
+ abstract get(id: any, ...args: any[]): any;
12
23
  process(serviceFunc: (options?: {
13
24
  [key: string]: any;
14
25
  input?: any;
15
26
  serviceOptions?: ServiceOptions;
16
27
  }) => any, options?: {
17
28
  [key: string]: any;
29
+ dbObject?: string | Types.ObjectId | any;
18
30
  input?: any;
19
31
  serviceOptions?: ServiceOptions;
20
32
  }): Promise<any>;
@@ -1,19 +1,47 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ModuleService = void 0;
4
+ const mongoose_1 = require("mongoose");
4
5
  const db_helper_1 = require("../helpers/db.helper");
6
+ const input_helper_1 = require("../helpers/input.helper");
5
7
  const service_helper_1 = require("../helpers/service.helper");
6
8
  class ModuleService {
7
9
  constructor(options) {
8
10
  this.mainDbModel = options === null || options === void 0 ? void 0 : options.mainDbModel;
9
11
  this.mainModelConstructor = options === null || options === void 0 ? void 0 : options.mainModelConstructor;
10
12
  }
13
+ checkRights(input, currentUser, options) {
14
+ const config = Object.assign({ metatype: this.mainModelConstructor }, options);
15
+ return (0, input_helper_1.check)(input, currentUser, config);
16
+ }
11
17
  async process(serviceFunc, options) {
12
- const config = Object.assign({ currentUser: null, fieldSelection: null, processFieldSelection: {}, prepareInput: {}, prepareOutput: {}, pubSub: true }, options === null || options === void 0 ? void 0 : options.serviceOptions);
18
+ var _a;
19
+ const config = Object.assign({ checkRights: true, dbObject: options === null || options === void 0 ? void 0 : options.dbObject, input: options === null || options === void 0 ? void 0 : options.input, processFieldSelection: {}, prepareInput: {}, prepareOutput: {}, pubSub: true }, options === null || options === void 0 ? void 0 : options.serviceOptions);
13
20
  if (config.prepareInput && this.prepareInput) {
14
- await this.prepareInput(options === null || options === void 0 ? void 0 : options.input, config.prepareInput);
21
+ await this.prepareInput(config.input, config.prepareInput);
22
+ }
23
+ let ownerIds = undefined;
24
+ if (config.checkRights && this.checkRights) {
25
+ ownerIds = (0, db_helper_1.getStringIds)(config.ownerIds);
26
+ if (!(ownerIds === null || ownerIds === void 0 ? void 0 : ownerIds.length)) {
27
+ if (config.dbObject) {
28
+ if (typeof config.dbObject === 'string' || config.dbObject instanceof mongoose_1.Types.ObjectId) {
29
+ ownerIds = (_a = (await this.get((0, db_helper_1.getStringIds)(config.dbObject)))) === null || _a === void 0 ? void 0 : _a.ownerIds;
30
+ }
31
+ else {
32
+ ownerIds = config.dbObject.ownerIds;
33
+ }
34
+ }
35
+ }
15
36
  }
16
- const result = await serviceFunc(options);
37
+ if (config.input && config.checkRights && this.checkRights) {
38
+ const opts = { ownerIds, roles: config.roles };
39
+ if (config.inputType) {
40
+ opts.metatype = config.resultType;
41
+ }
42
+ config.input = await this.checkRights(config.input, config.currentUser, opts);
43
+ }
44
+ let result = await serviceFunc(config);
17
45
  if (config.processFieldSelection && config.fieldSelection && this.processFieldSelection) {
18
46
  await this.processFieldSelection(result, config.fieldSelection, config.processFieldSelection);
19
47
  }
@@ -21,7 +49,14 @@ class ModuleService {
21
49
  if (config.processFieldSelection && config.fieldSelection && this.processFieldSelection) {
22
50
  config.prepareOutput.targetModel = null;
23
51
  }
24
- return this.prepareOutput(result, config.prepareOutput);
52
+ result = await this.prepareOutput(result, config.prepareOutput);
53
+ }
54
+ if (config.checkRights && this.checkRights) {
55
+ const opts = { ownerIds, roles: config.roles, throwError: false };
56
+ if (config.resultType) {
57
+ opts.metatype = config.resultType;
58
+ }
59
+ result = await this.checkRights(result, config.currentUser, opts);
25
60
  }
26
61
  return result;
27
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"module.service.js","sourceRoot":"","sources":["../../../../src/core/common/services/module.service.ts"],"names":[],"mappings":";;;AACA,oDAAiD;AACjD,8DAAwE;AAQxE,MAAsB,aAAa;IAcjC,YAAsB,OAGrB;QACC,IAAI,CAAC,WAAW,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,CAAC;QACxC,IAAI,CAAC,oBAAoB,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,oBAAoB,CAAC;IAC5D,CAAC;IAKD,KAAK,CAAC,OAAO,CACX,WAAoG,EACpG,OAA8E;QAG9E,MAAM,MAAM,mBACV,WAAW,EAAE,IAAI,EACjB,cAAc,EAAE,IAAI,EACpB,qBAAqB,EAAE,EAAE,EACzB,YAAY,EAAE,EAAE,EAChB,aAAa,EAAE,EAAE,EACjB,MAAM,EAAE,IAAI,IACT,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,CAC3B,CAAC;QAGF,IAAI,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE;YAC5C,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;SAC9D;QAGD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAG1C,IAAI,MAAM,CAAC,qBAAqB,IAAI,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,qBAAqB,EAAE;YACvF,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,qBAAqB,CAAC,CAAC;SAC/F;QAGD,IAAI,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE;YAE9C,IAAI,MAAM,CAAC,qBAAqB,IAAI,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,qBAAqB,EAAE;gBACvF,MAAM,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;aACzC;YACD,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;SACzD;QAGD,OAAO,MAAM,CAAC;IAChB,CAAC;IAKD,KAAK,CAAC,YAAY,CAAC,KAA0B,EAAE,UAA0B,EAAE;QACzE,OAAO,IAAA,6BAAY,EAAC,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACxE,CAAC;IAKD,KAAK,CAAC,aAAa,CAAC,MAAW,EAAE,UAA0B,EAAE;QAC3D,MAAM,MAAM,mBACV,WAAW,EAAE,IAAI,CAAC,oBAAoB,IACnC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,CAC1B,CAAC;QACF,OAAO,IAAA,8BAAa,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAMD,KAAK,CAAC,qBAAqB,CACzB,IAAS,EACT,eAA+B,EAC/B,UAGI,EAAE;QAEN,MAAM,MAAM,mBACV,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAChC,OAAO,EAAE,IAAI,CAAC,WAAW,IACtB,OAAO,CACX,CAAC;QACF,OAAO,IAAA,qBAAS,EAAC,IAAI,EAAE,eAAe,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACxE,CAAC;CACF;AAvGD,sCAuGC"}
1
+ {"version":3,"file":"module.service.js","sourceRoot":"","sources":["../../../../src/core/common/services/module.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { Types } from 'mongoose';
2
+ export declare type IdsType = string | Types.ObjectId | {
3
+ id?: string | Types.ObjectId;
4
+ _id?: string | Types.ObjectId;
5
+ } | (string | Types.ObjectId | {
6
+ id?: string | Types.ObjectId;
7
+ _id?: string | Types.ObjectId;
8
+ })[];
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ids.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ids.type.js","sourceRoot":"","sources":["../../../../src/core/common/types/ids.type.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"roles.guard.js","sourceRoot":"","sources":["../../../../../src/core/modules/auth/guards/roles.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAqF;AACrF,uCAAyC;AACzC,6CAAsD;AACtD,+DAA2D;AAC3D,6CAAyC;AASzC,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,IAAA,sBAAS,EAAC,KAAK,CAAC;IAI9C,YAA+B,SAAoB;QACjD,KAAK,EAAE,CAAC;QADqB,cAAS,GAAT,SAAS,CAAW;IAEnD,CAAC;IAKD,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO;QAEpC,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAa,OAAO,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC9G,MAAM,KAAK,GAAa,cAAc,CAAC,CAAC,CAAC;YACvC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC9C,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;YACrB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAGtB,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;YAC7C,OAAO,IAAI,CAAC;SACb;QAGD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAEjC,MAAM,IAAI,GAAQ,6BAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;YAGhE,IACE,IAAI;gBACJ,CAAC,KAAK,CAAC,QAAQ,CAAC,oBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,oBAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,EACrG;gBACA,OAAO,IAAI,CAAC;aACb;YAGD,MAAM,IAAI,8BAAqB,EAAE,CAAC;SACnC;QAGD,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,UAAU,CAAC,OAAyB;QAClC,MAAM,GAAG,GAAG,6BAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChD,OAAO,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;IACvF,CAAC;CACF,CAAA;AArDY,UAAU;IADtB,IAAA,mBAAU,GAAE;qCAK+B,gBAAS;GAJxC,UAAU,CAqDtB;AArDY,gCAAU"}
1
+ {"version":3,"file":"roles.guard.js","sourceRoot":"","sources":["../../../../../src/core/modules/auth/guards/roles.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA6F;AAC7F,uCAAyC;AACzC,6CAAsD;AACtD,+DAA2D;AAC3D,6CAAyC;AASzC,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,IAAA,sBAAS,EAAC,KAAK,CAAC;IAI9C,YAA+B,SAAoB;QACjD,KAAK,EAAE,CAAC;QADqB,cAAS,GAAT,SAAS,CAAW;IAEnD,CAAC;IAKD,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO;QAEpC,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAa,OAAO,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC9G,MAAM,KAAK,GAAa,cAAc,CAAC,CAAC,CAAC;YACvC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC9C,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;YACrB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAGtB,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;YAC7C,OAAO,IAAI,CAAC;SACb;QAGD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAEjC,MAAM,IAAI,GAAQ,6BAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;YAGhE,IACE,IAAI;gBACJ,CAAC,KAAK,CAAC,QAAQ,CAAC,oBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,oBAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,EACrG;gBACA,OAAO,IAAI,CAAC;aACb;YAGD,MAAM,IAAI,8BAAqB,EAAE,CAAC;SACnC;QAGD,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,UAAU,CAAC,OAAyB;QAClC,MAAM,GAAG,GAAG,6BAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChD,OAAO,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;IACvF,CAAC;CACF,CAAA;AArDY,UAAU;IADtB,IAAA,mBAAU,GAAE;qCAK+B,gBAAS;GAJxC,UAAU,CAqDtB;AArDY,gCAAU"}