@punks/backend-entity-manager 0.0.68 → 0.0.70

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/dist/cjs/index.js CHANGED
@@ -5,6 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var backendCore = require('@punks/backend-core');
6
6
  var common = require('@nestjs/common');
7
7
  var swagger = require('@nestjs/swagger');
8
+ var core = require('@nestjs/core');
8
9
  var async_hooks = require('async_hooks');
9
10
  var bcrypt = require('bcrypt');
10
11
  var constants = require('@nestjs/common/constants');
@@ -13,7 +14,6 @@ var metadataScanner = require('@nestjs/core/metadata-scanner');
13
14
  var jwt = require('@nestjs/jwt');
14
15
  var eventEmitter = require('@nestjs/event-emitter');
15
16
  var typeorm = require('typeorm');
16
- var core = require('@nestjs/core');
17
17
  var clientSes = require('@aws-sdk/client-ses');
18
18
  var require$$2 = require('fs');
19
19
  var mail = require('@sendgrid/mail');
@@ -375,6 +375,59 @@ const AuthenticationEvents = {
375
375
  UserPasswordResetCompleted: `${AUTHENTICATION_EVENTS_NAMESPACE}:user.passwordResetCompleted`,
376
376
  };
377
377
 
378
+ exports.AuthGuard = class AuthGuard {
379
+ constructor(reflector) {
380
+ this.reflector = reflector;
381
+ }
382
+ canActivate(context) {
383
+ const isPublic = this.getIsPublic(context);
384
+ if (isPublic) {
385
+ return true;
386
+ }
387
+ const auth = this.getCurrentAuth(context);
388
+ const allowedRoles = this.getAllowedRoles(context);
389
+ if (allowedRoles) {
390
+ return this.isRoleMatching(allowedRoles, auth?.roles ?? []);
391
+ }
392
+ const isForAllAuthenticated = this.getIsForAllAuthenticated(context);
393
+ if (isForAllAuthenticated) {
394
+ return !!auth?.user;
395
+ }
396
+ return false;
397
+ }
398
+ isRoleMatching(allowedRoles, userRoles) {
399
+ return userRoles.some((role) => allowedRoles.includes(role.uid));
400
+ }
401
+ getIsForAllAuthenticated(context) {
402
+ return this.getMetadata(AuthenticationGuardsSymbols.Authenticated, context);
403
+ }
404
+ getIsPublic(context) {
405
+ return this.getMetadata(AuthenticationGuardsSymbols.Public, context);
406
+ }
407
+ getAllowedRoles(context) {
408
+ return this.getMetadata(AuthenticationGuardsSymbols.Roles, context);
409
+ }
410
+ getCurrentAuth(context) {
411
+ const request = context.switchToHttp()?.getRequest();
412
+ return request?.auth?.user
413
+ ? {
414
+ user: request.auth.user,
415
+ roles: request.auth.roles,
416
+ }
417
+ : undefined;
418
+ }
419
+ getMetadata(symbol, context) {
420
+ return this.reflector.getAllAndOverride(symbol, [
421
+ context.getHandler(),
422
+ context.getClass(),
423
+ ]);
424
+ }
425
+ };
426
+ exports.AuthGuard = __decorate([
427
+ common.Injectable(),
428
+ __metadata("design:paramtypes", [core.Reflector])
429
+ ], exports.AuthGuard);
430
+
378
431
  const asyncLocalStorage = new async_hooks.AsyncLocalStorage();
379
432
 
380
433
  exports.AppSessionService = class AppSessionService {
@@ -20059,6 +20112,7 @@ const ModuleData$2 = {
20059
20112
  providers: [
20060
20113
  AuthenticationServicesResolver,
20061
20114
  AuthenticationInitializer,
20115
+ exports.AuthGuard,
20062
20116
  ...Services$2,
20063
20117
  ...UserHandlers,
20064
20118
  ...AuthenticationProviders,
@@ -20349,6 +20403,9 @@ class NestTypeOrmEntitySeeder extends TypeOrmEntitySeeder {
20349
20403
 
20350
20404
  class AppExceptionsFilterBase {
20351
20405
  catch(exception, host) {
20406
+ if (exception instanceof common.HttpException) {
20407
+ return;
20408
+ }
20352
20409
  const ctx = host.switchToHttp();
20353
20410
  const response = ctx.getResponse();
20354
20411
  const request = ctx.getRequest();