@saultechitsolutions/gighub-shared-core 1.0.8 → 1.1.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.
@@ -6,6 +6,7 @@ export declare class RolesGuard implements CanActivate {
6
6
  private readonly permissionProvider;
7
7
  private readonly redisService;
8
8
  private readonly contextService;
9
+ private readonly logger;
9
10
  constructor(permissionProvider: PermissionProvider, redisService: RedisService, contextService: RequestContextService);
10
11
  canActivate(context: ExecutionContext): Promise<boolean>;
11
12
  private resolveEndpointPermission;
@@ -11,29 +11,36 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
+ var RolesGuard_1;
14
15
  Object.defineProperty(exports, "__esModule", { value: true });
15
16
  exports.RolesGuard = void 0;
16
17
  const common_1 = require("@nestjs/common");
17
18
  const redis_service_1 = require("../redis/redis.service");
18
19
  const request_context_service_1 = require("../context/request-context.service");
19
- let RolesGuard = class RolesGuard {
20
+ let RolesGuard = RolesGuard_1 = class RolesGuard {
20
21
  constructor(permissionProvider, redisService, contextService) {
21
22
  this.permissionProvider = permissionProvider;
22
23
  this.redisService = redisService;
23
24
  this.contextService = contextService;
25
+ this.logger = new common_1.Logger(RolesGuard_1.name);
24
26
  }
25
27
  async canActivate(context) {
26
28
  const request = context.switchToHttp().getRequest();
27
29
  const user = request.user;
28
30
  const method = request.method;
29
31
  const actualPath = this.normalizePath(`${request.baseUrl}${request.route?.path}`);
32
+ this.logger.debug(`🔒 Checking access: ${method} ${actualPath}`);
30
33
  const endpointPerm = await this.resolveEndpointPermission(method, actualPath);
31
34
  if (!endpointPerm) {
35
+ this.logger.debug(`✅ Public endpoint - access allowed`);
32
36
  return true;
33
37
  }
38
+ this.logger.debug(`🔐 Protected endpoint found: ${endpointPerm.path}`);
34
39
  if (!user) {
40
+ this.logger.warn(`❌ No authenticated user - access denied`);
35
41
  throw new common_1.ForbiddenException('Access denied: insufficient access rights.');
36
42
  }
43
+ this.logger.debug(`👤 User: ${user.email} (Role: ${user.role?.name})`);
37
44
  this.contextService.setContext({
38
45
  userId: String(user.id),
39
46
  userEmail: user.email,
@@ -41,23 +48,33 @@ let RolesGuard = class RolesGuard {
41
48
  roles: user.roleGroupIds?.map(String),
42
49
  });
43
50
  if (endpointPerm.allowedRoleGroups?.length) {
51
+ this.logger.debug(`🔍 Checking role groups: ${endpointPerm.allowedRoleGroups.map(rg => rg.id).join(', ')}`);
44
52
  const hasRoleGroupAccess = this.checkRoleGroupAccess(user, endpointPerm.allowedRoleGroups);
45
53
  if (!hasRoleGroupAccess) {
54
+ this.logger.warn(`❌ User not in required role groups - access denied`);
46
55
  throw new common_1.ForbiddenException('Access denied: insufficient access rights.');
47
56
  }
57
+ this.logger.debug(`✅ Role group check passed`);
48
58
  }
49
59
  if (endpointPerm.allowedRoles?.length) {
60
+ this.logger.debug(`🔍 Checking roles: ${endpointPerm.allowedRoles.map(r => r.id).join(', ')}`);
50
61
  const hasRoleAccess = this.checkRoleAccess(user, endpointPerm.allowedRoles);
51
62
  if (!hasRoleAccess) {
63
+ this.logger.warn(`❌ User role not in allowed roles - access denied`);
52
64
  throw new common_1.ForbiddenException('Access denied: insufficient access rights.');
53
65
  }
66
+ this.logger.debug(`✅ Role check passed`);
54
67
  }
55
68
  if (endpointPerm.requiredPrivileges?.length) {
69
+ this.logger.debug(`🔍 Checking privileges: ${endpointPerm.requiredPrivileges.map(p => p.id).join(', ')}`);
56
70
  const hasPrivilege = await this.checkPrivilegeAccess(user, endpointPerm.requiredPrivileges);
57
71
  if (!hasPrivilege) {
72
+ this.logger.warn(`❌ User lacks required privileges - access denied`);
58
73
  throw new common_1.ForbiddenException('Access denied: insufficient access rights.');
59
74
  }
75
+ this.logger.debug(`✅ Privilege check passed`);
60
76
  }
77
+ this.logger.debug(`✅ All checks passed - access granted`);
61
78
  return true;
62
79
  }
63
80
  async resolveEndpointPermission(method, path) {
@@ -102,7 +119,7 @@ let RolesGuard = class RolesGuard {
102
119
  }
103
120
  };
104
121
  exports.RolesGuard = RolesGuard;
105
- exports.RolesGuard = RolesGuard = __decorate([
122
+ exports.RolesGuard = RolesGuard = RolesGuard_1 = __decorate([
106
123
  (0, common_1.Injectable)(),
107
124
  __param(0, (0, common_1.Inject)('PERMISSION_PROVIDER')),
108
125
  __metadata("design:paramtypes", [Object, redis_service_1.RedisService,
@@ -1 +1 @@
1
- {"version":3,"file":"roles.guard.js","sourceRoot":"","sources":["../../src/guards/roles.guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"roles.guard.js","sourceRoot":"","sources":["../../src/guards/roles.guard.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { DynamicModule } from '@nestjs/common';
2
2
  import { PermissionProvider } from './interfaces/permission-provider.interface';
3
3
  export interface RolesGuardModuleOptions {
4
4
  permissionProvider: new (...args: any[]) => PermissionProvider;
5
+ imports?: any[];
5
6
  }
6
7
  export declare class RolesGuardModule {
7
8
  static forRoot(options: RolesGuardModuleOptions): DynamicModule;
@@ -16,7 +16,11 @@ let RolesGuardModule = RolesGuardModule_1 = class RolesGuardModule {
16
16
  static forRoot(options) {
17
17
  return {
18
18
  module: RolesGuardModule_1,
19
- imports: [redis_module_1.RedisModule, request_context_module_1.RequestContextModule],
19
+ imports: [
20
+ redis_module_1.RedisModule,
21
+ request_context_module_1.RequestContextModule,
22
+ ...(options.imports || []),
23
+ ],
20
24
  providers: [
21
25
  {
22
26
  provide: 'PERMISSION_PROVIDER',
@@ -1 +1 @@
1
- {"version":3,"file":"roles.module.js","sourceRoot":"","sources":["../../src/guards/roles.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA+D;AAC/D,+CAA2C;AAC3C,wDAAoD;AACpD,8EAAyE;AASlE,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IACzB,MAAM,CAAC,OAAO,CAAC,OAAgC;QAC3C,OAAO;YACH,MAAM,EAAE,kBAAgB;YACxB,OAAO,EAAE,CAAC,0BAAW,EAAE,6CAAoB,CAAC;YAC5C,SAAS,EAAE;gBACP;oBACI,OAAO,EAAE,qBAAqB;oBAC9B,QAAQ,EAAE,OAAO,CAAC,kBAAkB;iBACvC;gBACD,wBAAU;aACb;YACD,OAAO,EAAE,CAAC,wBAAU,CAAC;SACxB,CAAC;IACN,CAAC;CACJ,CAAA;AAfY,4CAAgB;2BAAhB,gBAAgB;IAF5B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,gBAAgB,CAe5B"}
1
+ {"version":3,"file":"roles.module.js","sourceRoot":"","sources":["../../src/guards/roles.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA+D;AAC/D,+CAA2C;AAC3C,wDAAoD;AACpD,8EAAyE;AAUlE,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IACzB,MAAM,CAAC,OAAO,CAAC,OAAgC;QAC3C,OAAO;YACH,MAAM,EAAE,kBAAgB;YACxB,OAAO,EAAE;gBACL,0BAAW;gBACX,6CAAoB;gBAEpB,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;aAC7B;YACD,SAAS,EAAE;gBACP;oBACI,OAAO,EAAE,qBAAqB;oBAC9B,QAAQ,EAAE,OAAO,CAAC,kBAAkB;iBACvC;gBACD,wBAAU;aACb;YACD,OAAO,EAAE,CAAC,wBAAU,CAAC;SACxB,CAAC;IACN,CAAC;CACJ,CAAA;AApBY,4CAAgB;2BAAhB,gBAAgB;IAF5B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,gBAAgB,CAoB5B"}
@@ -1,12 +1,9 @@
1
+ import { SASLOptions } from "kafkajs";
1
2
  export interface KafkaConfig {
2
3
  clientId: string;
3
4
  brokers: string[];
4
5
  ssl?: boolean;
5
- sasl?: {
6
- mechanism: 'scram-sha-512';
7
- username: string;
8
- password: string;
9
- };
6
+ sasl?: SASLOptions;
10
7
  autoCreateTopics?: string[];
11
8
  defaultTopicConfig?: {
12
9
  numPartitions?: number;