@punks/backend-entity-manager 0.0.68 → 0.0.69

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,