ecrs-auth-core 1.0.42 → 1.0.44

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 (56) hide show
  1. package/README.md +263 -0
  2. package/dist/auth.controller.d.ts +26 -19
  3. package/dist/auth.controller.js +41 -41
  4. package/dist/auth.module.d.ts +9 -9
  5. package/dist/auth.module.js +143 -143
  6. package/dist/auth.service.d.ts +47 -40
  7. package/dist/auth.service.js +185 -168
  8. package/dist/constants/constants.d.ts +1 -1
  9. package/dist/constants/constants.js +4 -4
  10. package/dist/decorators/current-user.decorator.d.ts +1 -1
  11. package/dist/decorators/current-user.decorator.js +9 -9
  12. package/dist/decorators/feature.decorator.d.ts +1 -1
  13. package/dist/decorators/feature.decorator.js +11 -11
  14. package/dist/decorators/has-permission.decorator.d.ts +6 -6
  15. package/dist/decorators/has-permission.decorator.js +8 -8
  16. package/dist/decorators/roles.decorator.d.ts +1 -1
  17. package/dist/decorators/roles.decorator.js +6 -6
  18. package/dist/decorators/route-permission.decorator.d.ts +1 -1
  19. package/dist/decorators/route-permission.decorator.js +11 -11
  20. package/dist/dtos/login.dto.d.ts +4 -4
  21. package/dist/dtos/login.dto.js +7 -7
  22. package/dist/entities/feature.entity.d.ts +9 -9
  23. package/dist/entities/feature.entity.js +48 -48
  24. package/dist/entities/module-route.entity.d.ts +9 -9
  25. package/dist/entities/module-route.entity.js +48 -48
  26. package/dist/entities/module-screen-permission.entity.d.ts +15 -15
  27. package/dist/entities/module-screen-permission.entity.js +44 -44
  28. package/dist/entities/module.entity.d.ts +8 -8
  29. package/dist/entities/module.entity.js +44 -44
  30. package/dist/entities/role.entity.d.ts +7 -7
  31. package/dist/entities/role.entity.js +44 -44
  32. package/dist/entities/user-feature-access.entity.d.ts +19 -19
  33. package/dist/entities/user-feature-access.entity.js +88 -88
  34. package/dist/entities/user-module-access.entity.d.ts +12 -12
  35. package/dist/entities/user-module-access.entity.js +60 -60
  36. package/dist/entities/user.entity.d.ts +25 -24
  37. package/dist/entities/user.entity.js +112 -108
  38. package/dist/guards/feature.guard.d.ts +7 -7
  39. package/dist/guards/feature.guard.js +34 -34
  40. package/dist/guards/module.guard.d.ts +8 -8
  41. package/dist/guards/module.guard.js +36 -36
  42. package/dist/guards/permission.guard.d.ts +7 -7
  43. package/dist/guards/permission.guard.js +41 -41
  44. package/dist/guards/roles.guard.d.ts +7 -7
  45. package/dist/guards/roles.guard.js +34 -34
  46. package/dist/guards/route.guard.d.ts +7 -7
  47. package/dist/guards/route.guard.js +34 -34
  48. package/dist/index.d.ts +23 -23
  49. package/dist/index.js +45 -45
  50. package/dist/interfaces/auth-core-options.interface.d.ts +30 -30
  51. package/dist/interfaces/auth-core-options.interface.js +2 -2
  52. package/dist/jwt/jwt.guard.d.ts +4 -4
  53. package/dist/jwt/jwt.guard.js +18 -18
  54. package/dist/jwt/jwt.strategy.d.ts +14 -14
  55. package/dist/jwt/jwt.strategy.js +42 -42
  56. package/package.json +47 -47
@@ -1,34 +1,34 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.FeatureGuard = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const core_1 = require("@nestjs/core");
15
- let FeatureGuard = class FeatureGuard {
16
- constructor(reflector) {
17
- this.reflector = reflector;
18
- }
19
- canActivate(context) {
20
- const permission = this.reflector.get('feature_permission', context.getHandler());
21
- const feature = this.reflector.get('feature_name', context.getHandler());
22
- if (!permission || !feature)
23
- return true;
24
- const { user } = context.switchToHttp().getRequest();
25
- const userFeatures = user?.permissions?.features || {};
26
- const featurePermissions = userFeatures[feature] || [];
27
- return featurePermissions.includes(permission);
28
- }
29
- };
30
- exports.FeatureGuard = FeatureGuard;
31
- exports.FeatureGuard = FeatureGuard = __decorate([
32
- (0, common_1.Injectable)(),
33
- __metadata("design:paramtypes", [core_1.Reflector])
34
- ], FeatureGuard);
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.FeatureGuard = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const core_1 = require("@nestjs/core");
15
+ let FeatureGuard = class FeatureGuard {
16
+ constructor(reflector) {
17
+ this.reflector = reflector;
18
+ }
19
+ canActivate(context) {
20
+ const permission = this.reflector.get('feature_permission', context.getHandler());
21
+ const feature = this.reflector.get('feature_name', context.getHandler());
22
+ if (!permission || !feature)
23
+ return true;
24
+ const { user } = context.switchToHttp().getRequest();
25
+ const userFeatures = user?.permissions?.features || {};
26
+ const featurePermissions = userFeatures[feature] || [];
27
+ return featurePermissions.includes(permission);
28
+ }
29
+ };
30
+ exports.FeatureGuard = FeatureGuard;
31
+ exports.FeatureGuard = FeatureGuard = __decorate([
32
+ (0, common_1.Injectable)(),
33
+ __metadata("design:paramtypes", [core_1.Reflector])
34
+ ], FeatureGuard);
@@ -1,8 +1,8 @@
1
- import { CanActivate, ExecutionContext } from '@nestjs/common';
2
- export declare class ModuleGuard implements CanActivate {
3
- private readonly config;
4
- constructor(config: {
5
- moduleId: number;
6
- });
7
- canActivate(context: ExecutionContext): boolean;
8
- }
1
+ import { CanActivate, ExecutionContext } from '@nestjs/common';
2
+ export declare class ModuleGuard implements CanActivate {
3
+ private readonly config;
4
+ constructor(config: {
5
+ moduleId: number;
6
+ });
7
+ canActivate(context: ExecutionContext): boolean;
8
+ }
@@ -1,36 +1,36 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.ModuleGuard = void 0;
16
- const common_1 = require("@nestjs/common");
17
- let ModuleGuard = class ModuleGuard {
18
- constructor(config) {
19
- this.config = config;
20
- }
21
- canActivate(context) {
22
- const request = context.switchToHttp().getRequest();
23
- const user = request.user;
24
- // SuperAdmin can bypass module checks
25
- const isSuperAdmin = user.roleId === 1;
26
- if (isSuperAdmin)
27
- return true;
28
- return user.moduleId === this.config.moduleId;
29
- }
30
- };
31
- exports.ModuleGuard = ModuleGuard;
32
- exports.ModuleGuard = ModuleGuard = __decorate([
33
- (0, common_1.Injectable)(),
34
- __param(0, (0, common_1.Inject)('MODULE_CONFIG')),
35
- __metadata("design:paramtypes", [Object])
36
- ], ModuleGuard);
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ModuleGuard = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ let ModuleGuard = class ModuleGuard {
18
+ constructor(config) {
19
+ this.config = config;
20
+ }
21
+ canActivate(context) {
22
+ const request = context.switchToHttp().getRequest();
23
+ const user = request.user;
24
+ // SuperAdmin can bypass module checks
25
+ const isSuperAdmin = user.roleId === 1;
26
+ if (isSuperAdmin)
27
+ return true;
28
+ return user.moduleId === this.config.moduleId;
29
+ }
30
+ };
31
+ exports.ModuleGuard = ModuleGuard;
32
+ exports.ModuleGuard = ModuleGuard = __decorate([
33
+ (0, common_1.Injectable)(),
34
+ __param(0, (0, common_1.Inject)('MODULE_CONFIG')),
35
+ __metadata("design:paramtypes", [Object])
36
+ ], ModuleGuard);
@@ -1,7 +1,7 @@
1
- import { CanActivate, ExecutionContext } from '@nestjs/common';
2
- import { Reflector } from '@nestjs/core';
3
- export declare class PermissionGuard implements CanActivate {
4
- private readonly reflector;
5
- constructor(reflector: Reflector);
6
- canActivate(context: ExecutionContext): boolean;
7
- }
1
+ import { CanActivate, ExecutionContext } from '@nestjs/common';
2
+ import { Reflector } from '@nestjs/core';
3
+ export declare class PermissionGuard implements CanActivate {
4
+ private readonly reflector;
5
+ constructor(reflector: Reflector);
6
+ canActivate(context: ExecutionContext): boolean;
7
+ }
@@ -1,41 +1,41 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.PermissionGuard = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const core_1 = require("@nestjs/core");
15
- let PermissionGuard = class PermissionGuard {
16
- constructor(reflector) {
17
- this.reflector = reflector;
18
- }
19
- canActivate(context) {
20
- const permissionMeta = this.reflector.get('combined_permission', context.getHandler());
21
- if (!permissionMeta)
22
- return true;
23
- const request = context.switchToHttp().getRequest();
24
- const user = request.user;
25
- const { type, permission, name } = permissionMeta;
26
- if (type === 'feature') {
27
- const perms = user?.permissions?.features?.[name] || [];
28
- return perms.includes(permission);
29
- }
30
- if (type === 'route') {
31
- const perms = user?.permissions?.routes?.[name] || [];
32
- return perms.includes(permission);
33
- }
34
- return false;
35
- }
36
- };
37
- exports.PermissionGuard = PermissionGuard;
38
- exports.PermissionGuard = PermissionGuard = __decorate([
39
- (0, common_1.Injectable)(),
40
- __metadata("design:paramtypes", [core_1.Reflector])
41
- ], PermissionGuard);
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.PermissionGuard = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const core_1 = require("@nestjs/core");
15
+ let PermissionGuard = class PermissionGuard {
16
+ constructor(reflector) {
17
+ this.reflector = reflector;
18
+ }
19
+ canActivate(context) {
20
+ const permissionMeta = this.reflector.get('combined_permission', context.getHandler());
21
+ if (!permissionMeta)
22
+ return true;
23
+ const request = context.switchToHttp().getRequest();
24
+ const user = request.user;
25
+ const { type, permission, name } = permissionMeta;
26
+ if (type === 'feature') {
27
+ const perms = user?.permissions?.features?.[name] || [];
28
+ return perms.includes(permission);
29
+ }
30
+ if (type === 'route') {
31
+ const perms = user?.permissions?.routes?.[name] || [];
32
+ return perms.includes(permission);
33
+ }
34
+ return false;
35
+ }
36
+ };
37
+ exports.PermissionGuard = PermissionGuard;
38
+ exports.PermissionGuard = PermissionGuard = __decorate([
39
+ (0, common_1.Injectable)(),
40
+ __metadata("design:paramtypes", [core_1.Reflector])
41
+ ], PermissionGuard);
@@ -1,7 +1,7 @@
1
- import { CanActivate, ExecutionContext } from '@nestjs/common';
2
- import { Reflector } from '@nestjs/core';
3
- export declare class RolesGuard implements CanActivate {
4
- private readonly reflector;
5
- constructor(reflector: Reflector);
6
- canActivate(context: ExecutionContext): boolean;
7
- }
1
+ import { CanActivate, ExecutionContext } from '@nestjs/common';
2
+ import { Reflector } from '@nestjs/core';
3
+ export declare class RolesGuard implements CanActivate {
4
+ private readonly reflector;
5
+ constructor(reflector: Reflector);
6
+ canActivate(context: ExecutionContext): boolean;
7
+ }
@@ -1,34 +1,34 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.RolesGuard = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const core_1 = require("@nestjs/core");
15
- let RolesGuard = class RolesGuard {
16
- constructor(reflector) {
17
- this.reflector = reflector;
18
- }
19
- canActivate(context) {
20
- const requiredRoles = this.reflector.getAllAndOverride('roles', [
21
- context.getHandler(),
22
- context.getClass(),
23
- ]);
24
- if (!requiredRoles || requiredRoles.length === 0)
25
- return true;
26
- const { user } = context.switchToHttp().getRequest();
27
- return requiredRoles.includes(user.roleId?.toString());
28
- }
29
- };
30
- exports.RolesGuard = RolesGuard;
31
- exports.RolesGuard = RolesGuard = __decorate([
32
- (0, common_1.Injectable)(),
33
- __metadata("design:paramtypes", [core_1.Reflector])
34
- ], RolesGuard);
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RolesGuard = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const core_1 = require("@nestjs/core");
15
+ let RolesGuard = class RolesGuard {
16
+ constructor(reflector) {
17
+ this.reflector = reflector;
18
+ }
19
+ canActivate(context) {
20
+ const requiredRoles = this.reflector.getAllAndOverride('roles', [
21
+ context.getHandler(),
22
+ context.getClass(),
23
+ ]);
24
+ if (!requiredRoles || requiredRoles.length === 0)
25
+ return true;
26
+ const { user } = context.switchToHttp().getRequest();
27
+ return requiredRoles.includes(user.roleId?.toString());
28
+ }
29
+ };
30
+ exports.RolesGuard = RolesGuard;
31
+ exports.RolesGuard = RolesGuard = __decorate([
32
+ (0, common_1.Injectable)(),
33
+ __metadata("design:paramtypes", [core_1.Reflector])
34
+ ], RolesGuard);
@@ -1,7 +1,7 @@
1
- import { CanActivate, ExecutionContext } from '@nestjs/common';
2
- import { Reflector } from '@nestjs/core';
3
- export declare class RouteGuard implements CanActivate {
4
- private readonly reflector;
5
- constructor(reflector: Reflector);
6
- canActivate(context: ExecutionContext): boolean;
7
- }
1
+ import { CanActivate, ExecutionContext } from '@nestjs/common';
2
+ import { Reflector } from '@nestjs/core';
3
+ export declare class RouteGuard implements CanActivate {
4
+ private readonly reflector;
5
+ constructor(reflector: Reflector);
6
+ canActivate(context: ExecutionContext): boolean;
7
+ }
@@ -1,34 +1,34 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.RouteGuard = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const core_1 = require("@nestjs/core");
15
- let RouteGuard = class RouteGuard {
16
- constructor(reflector) {
17
- this.reflector = reflector;
18
- }
19
- canActivate(context) {
20
- const permission = this.reflector.get('route_permission', context.getHandler());
21
- const route = this.reflector.get('route_name', context.getHandler());
22
- if (!permission || !route)
23
- return true;
24
- const request = context.switchToHttp().getRequest();
25
- const user = request.user;
26
- const routeAccess = user?.permissions?.routes?.[route] || [];
27
- return routeAccess.includes(permission);
28
- }
29
- };
30
- exports.RouteGuard = RouteGuard;
31
- exports.RouteGuard = RouteGuard = __decorate([
32
- (0, common_1.Injectable)(),
33
- __metadata("design:paramtypes", [core_1.Reflector])
34
- ], RouteGuard);
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RouteGuard = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const core_1 = require("@nestjs/core");
15
+ let RouteGuard = class RouteGuard {
16
+ constructor(reflector) {
17
+ this.reflector = reflector;
18
+ }
19
+ canActivate(context) {
20
+ const permission = this.reflector.get('route_permission', context.getHandler());
21
+ const route = this.reflector.get('route_name', context.getHandler());
22
+ if (!permission || !route)
23
+ return true;
24
+ const request = context.switchToHttp().getRequest();
25
+ const user = request.user;
26
+ const routeAccess = user?.permissions?.routes?.[route] || [];
27
+ return routeAccess.includes(permission);
28
+ }
29
+ };
30
+ exports.RouteGuard = RouteGuard;
31
+ exports.RouteGuard = RouteGuard = __decorate([
32
+ (0, common_1.Injectable)(),
33
+ __metadata("design:paramtypes", [core_1.Reflector])
34
+ ], RouteGuard);
package/dist/index.d.ts CHANGED
@@ -1,23 +1,23 @@
1
- export * from './auth.module';
2
- export * from './auth.service';
3
- export * from './decorators/current-user.decorator';
4
- export * from './decorators/feature.decorator';
5
- export * from './decorators/has-permission.decorator';
6
- export * from './decorators/roles.decorator';
7
- export * from './decorators/route-permission.decorator';
8
- export * from './guards/module.guard';
9
- export * from './guards/roles.guard';
10
- export * from './guards/feature.guard';
11
- export * from './guards/route.guard';
12
- export * from './guards/permission.guard';
13
- export * from './jwt/jwt.guard';
14
- export * from './jwt/jwt.strategy';
15
- export * from './interfaces/auth-core-options.interface';
16
- export * from './entities/user.entity';
17
- export * from './entities/role.entity';
18
- export * from './entities/module.entity';
19
- export * from './entities/feature.entity';
20
- export * from './entities/module-route.entity';
21
- export * from './entities/user-feature-access.entity';
22
- export * from './entities/user-module-access.entity';
23
- export * from './entities/module-screen-permission.entity';
1
+ export * from './auth.module';
2
+ export * from './auth.service';
3
+ export * from './decorators/current-user.decorator';
4
+ export * from './decorators/feature.decorator';
5
+ export * from './decorators/has-permission.decorator';
6
+ export * from './decorators/roles.decorator';
7
+ export * from './decorators/route-permission.decorator';
8
+ export * from './guards/module.guard';
9
+ export * from './guards/roles.guard';
10
+ export * from './guards/feature.guard';
11
+ export * from './guards/route.guard';
12
+ export * from './guards/permission.guard';
13
+ export * from './jwt/jwt.guard';
14
+ export * from './jwt/jwt.strategy';
15
+ export * from './interfaces/auth-core-options.interface';
16
+ export * from './entities/user.entity';
17
+ export * from './entities/role.entity';
18
+ export * from './entities/module.entity';
19
+ export * from './entities/feature.entity';
20
+ export * from './entities/module-route.entity';
21
+ export * from './entities/user-feature-access.entity';
22
+ export * from './entities/user-module-access.entity';
23
+ export * from './entities/module-screen-permission.entity';
package/dist/index.js CHANGED
@@ -1,45 +1,45 @@
1
- "use strict";
2
- // src/index.ts
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
16
- };
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- __exportStar(require("./auth.module"), exports);
19
- __exportStar(require("./auth.service"), exports);
20
- // Decorators
21
- __exportStar(require("./decorators/current-user.decorator"), exports);
22
- __exportStar(require("./decorators/feature.decorator"), exports);
23
- __exportStar(require("./decorators/has-permission.decorator"), exports);
24
- __exportStar(require("./decorators/roles.decorator"), exports);
25
- __exportStar(require("./decorators/route-permission.decorator"), exports);
26
- // Guards
27
- __exportStar(require("./guards/module.guard"), exports);
28
- __exportStar(require("./guards/roles.guard"), exports);
29
- __exportStar(require("./guards/feature.guard"), exports);
30
- __exportStar(require("./guards/route.guard"), exports);
31
- __exportStar(require("./guards/permission.guard"), exports);
32
- // JWT
33
- __exportStar(require("./jwt/jwt.guard"), exports);
34
- __exportStar(require("./jwt/jwt.strategy"), exports);
35
- // Interfaces
36
- __exportStar(require("./interfaces/auth-core-options.interface"), exports);
37
- // ✅ Entities
38
- __exportStar(require("./entities/user.entity"), exports);
39
- __exportStar(require("./entities/role.entity"), exports);
40
- __exportStar(require("./entities/module.entity"), exports);
41
- __exportStar(require("./entities/feature.entity"), exports);
42
- __exportStar(require("./entities/module-route.entity"), exports);
43
- __exportStar(require("./entities/user-feature-access.entity"), exports);
44
- __exportStar(require("./entities/user-module-access.entity"), exports);
45
- __exportStar(require("./entities/module-screen-permission.entity"), exports);
1
+ "use strict";
2
+ // src/index.ts
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ __exportStar(require("./auth.module"), exports);
19
+ __exportStar(require("./auth.service"), exports);
20
+ // Decorators
21
+ __exportStar(require("./decorators/current-user.decorator"), exports);
22
+ __exportStar(require("./decorators/feature.decorator"), exports);
23
+ __exportStar(require("./decorators/has-permission.decorator"), exports);
24
+ __exportStar(require("./decorators/roles.decorator"), exports);
25
+ __exportStar(require("./decorators/route-permission.decorator"), exports);
26
+ // Guards
27
+ __exportStar(require("./guards/module.guard"), exports);
28
+ __exportStar(require("./guards/roles.guard"), exports);
29
+ __exportStar(require("./guards/feature.guard"), exports);
30
+ __exportStar(require("./guards/route.guard"), exports);
31
+ __exportStar(require("./guards/permission.guard"), exports);
32
+ // JWT
33
+ __exportStar(require("./jwt/jwt.guard"), exports);
34
+ __exportStar(require("./jwt/jwt.strategy"), exports);
35
+ // Interfaces
36
+ __exportStar(require("./interfaces/auth-core-options.interface"), exports);
37
+ // ✅ Entities
38
+ __exportStar(require("./entities/user.entity"), exports);
39
+ __exportStar(require("./entities/role.entity"), exports);
40
+ __exportStar(require("./entities/module.entity"), exports);
41
+ __exportStar(require("./entities/feature.entity"), exports);
42
+ __exportStar(require("./entities/module-route.entity"), exports);
43
+ __exportStar(require("./entities/user-feature-access.entity"), exports);
44
+ __exportStar(require("./entities/user-module-access.entity"), exports);
45
+ __exportStar(require("./entities/module-screen-permission.entity"), exports);
@@ -1,30 +1,30 @@
1
- import { Repository } from 'typeorm';
2
- import { User } from '../entities/user.entity';
3
- import { Role } from '../entities/role.entity';
4
- import { Module } from '../entities/module.entity';
5
- import { Feature } from '../entities/feature.entity';
6
- import { ModuleRoute } from '../entities/module-route.entity';
7
- import { UserFeatureAccess } from '../entities/user-feature-access.entity';
8
- import { UserModuleAccess } from '../entities/user-module-access.entity';
9
- import { ModuleScreenPermission } from '../entities/module-screen-permission.entity';
10
- export interface Repositories {
11
- userRepo: Repository<User>;
12
- roleRepo: Repository<Role>;
13
- moduleRepo: Repository<Module>;
14
- featureAccessRepo: Repository<UserFeatureAccess>;
15
- screenPermissionRepo: Repository<ModuleScreenPermission>;
16
- featureRepo: Repository<Feature>;
17
- routeRepo: Repository<ModuleRoute>;
18
- moduleAccessRepo: Repository<UserModuleAccess>;
19
- }
20
- export interface AuthModuleConfig {
21
- enable2FA?: boolean;
22
- tokenIssuer?: string;
23
- [key: string]: any;
24
- }
25
- export interface AuthCoreOptions {
26
- jwtSecret: string;
27
- jwtExpiresIn: string;
28
- repositories: Repositories;
29
- moduleConfig?: AuthModuleConfig;
30
- }
1
+ import { Repository } from 'typeorm';
2
+ import { User } from '../entities/user.entity';
3
+ import { Role } from '../entities/role.entity';
4
+ import { Module } from '../entities/module.entity';
5
+ import { Feature } from '../entities/feature.entity';
6
+ import { ModuleRoute } from '../entities/module-route.entity';
7
+ import { UserFeatureAccess } from '../entities/user-feature-access.entity';
8
+ import { UserModuleAccess } from '../entities/user-module-access.entity';
9
+ import { ModuleScreenPermission } from '../entities/module-screen-permission.entity';
10
+ export interface Repositories {
11
+ userRepo: Repository<User>;
12
+ roleRepo: Repository<Role>;
13
+ moduleRepo: Repository<Module>;
14
+ featureAccessRepo: Repository<UserFeatureAccess>;
15
+ screenPermissionRepo: Repository<ModuleScreenPermission>;
16
+ featureRepo: Repository<Feature>;
17
+ routeRepo: Repository<ModuleRoute>;
18
+ moduleAccessRepo: Repository<UserModuleAccess>;
19
+ }
20
+ export interface AuthModuleConfig {
21
+ enable2FA?: boolean;
22
+ tokenIssuer?: string;
23
+ [key: string]: any;
24
+ }
25
+ export interface AuthCoreOptions {
26
+ jwtSecret: string;
27
+ jwtExpiresIn: string;
28
+ repositories: Repositories;
29
+ moduleConfig?: AuthModuleConfig;
30
+ }