exguard-backend 1.0.11 → 1.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "exguard-backend",
3
- "version": "1.0.11",
3
+ "version": "1.0.13",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -201,6 +201,17 @@ export class ExGuardNestGuard implements CanActivate {
201
201
  @Injectable()
202
202
  export class ExGuardPermissionGuard extends ExGuardNestGuard {
203
203
  public async checkPermissions(context: GuardContext) {
204
+ // Check if user has any read permission (more flexible)
205
+ const user = context.request.user;
206
+ const hasReadPermission = user?.permissions?.some(perm =>
207
+ perm.includes('read') || perm === 'read'
208
+ );
209
+
210
+ if (hasReadPermission) {
211
+ return { allowed: true, user };
212
+ }
213
+
214
+ // Fallback to specific 'read' permission
204
215
  return this.exGuard.requirePermissions(context, ['read']);
205
216
  }
206
217
  }
@@ -343,7 +354,8 @@ function createExampleController() {
343
354
  Post,
344
355
  Body,
345
356
  UseGuards,
346
- Request
357
+ Request,
358
+ ForbiddenException
347
359
  } from '@nestjs/common';
348
360
  import {
349
361
  RequirePermissions,
@@ -363,7 +375,18 @@ export class EventsController {
363
375
  @Get()
364
376
  async getEvents(@Request() req) {
365
377
  console.log('User accessing events:', req.user);
366
- return { success: true, data: [] };
378
+ console.log('User permissions:', req.user?.permissions);
379
+
380
+ return {
381
+ success: true,
382
+ data: [],
383
+ user: {
384
+ id: req.user?.id,
385
+ permissions: req.user?.permissions,
386
+ roles: req.user?.roles
387
+ },
388
+ message: 'Events retrieved successfully'
389
+ };
367
390
  }
368
391
 
369
392
  @Post()
@@ -373,6 +396,20 @@ export class EventsController {
373
396
  return { success: true, data: createEventDto };
374
397
  }
375
398
 
399
+ @Get('debug')
400
+ async getDebugInfo(@Request() req) {
401
+ // Debug endpoint to check user permissions
402
+ return {
403
+ success: true,
404
+ user: req.user,
405
+ permissions: req.user?.permissions || [],
406
+ roles: req.user?.roles || [],
407
+ modules: req.user?.modules || [],
408
+ fieldOffices: req.user?.fieldOffices || [],
409
+ message: 'Debug information'
410
+ };
411
+ }
412
+
376
413
  @Get('admin')
377
414
  @RequireRoles(['Admin']) // Using decorator
378
415
  @UseGuards(createRoleGuard(['Admin']))