@nest-boot/auth 7.9.5 → 7.10.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.
@@ -13,6 +13,12 @@ export declare class AuthGuard implements CanActivate {
13
13
  * @param reflector - NestJS reflector for reading route metadata
14
14
  */
15
15
  constructor(reflector: Reflector);
16
+ /**
17
+ * Determines whether the current route is marked as public.
18
+ * @param context - The execution context of the current request
19
+ * @returns True when authentication should be skipped
20
+ */
21
+ protected isPublic(context: ExecutionContext): boolean;
16
22
  /**
17
23
  * Determines whether the current request is allowed to proceed.
18
24
  * @param context - The execution context of the current request
@@ -29,16 +29,24 @@ let AuthGuard = class AuthGuard {
29
29
  constructor(reflector) {
30
30
  this.reflector = reflector;
31
31
  }
32
+ /**
33
+ * Determines whether the current route is marked as public.
34
+ * @param context - The execution context of the current request
35
+ * @returns True when authentication should be skipped
36
+ */
37
+ isPublic(context) {
38
+ return !!this.reflector.getAllAndOverride(auth_constants_1.IS_PUBLIC_KEY, [
39
+ context.getHandler(),
40
+ context.getClass(),
41
+ ]);
42
+ }
32
43
  /**
33
44
  * Determines whether the current request is allowed to proceed.
34
45
  * @param context - The execution context of the current request
35
46
  * @returns A NestJS guard activation result
36
47
  */
37
48
  canActivate(context) {
38
- if (this.reflector.getAllAndOverride(auth_constants_1.IS_PUBLIC_KEY, [
39
- context.getHandler(),
40
- context.getClass(),
41
- ])) {
49
+ if (this.isPublic(context)) {
42
50
  return true;
43
51
  }
44
52
  return !!request_context_1.RequestContext.get(session_entity_1.BaseSession);
@@ -1 +1 @@
1
- {"version":3,"file":"auth.guard.js","sourceRoot":"","sources":["../src/auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gEAA4D;AAC5D,2CAIwB;AACxB,uCAAyC;AAEzC,qDAAiD;AACjD,8DAAwD;AAExD;;;;;;GAMG;AAEI,IAAM,SAAS,GAAf,MAAM,SAAS;IACpB;;OAEG;IACH,YAA+B,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAEvD;;;;OAIG;IACH,WAAW,CACT,OAAyB;QAEzB,IACE,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAU,8BAAa,EAAE;YACvD,OAAO,CAAC,UAAU,EAAE;YACpB,OAAO,CAAC,QAAQ,EAAE;SACnB,CAAC,EACF,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,CAAC,CAAC,gCAAc,CAAC,GAAG,CAAC,4BAAW,CAAC,CAAC;IAC3C,CAAC;CACF,CAAA;AAzBY,8BAAS;oBAAT,SAAS;IADrB,IAAA,mBAAU,GAAE;qCAK+B,gBAAS;GAJxC,SAAS,CAyBrB"}
1
+ {"version":3,"file":"auth.guard.js","sourceRoot":"","sources":["../src/auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gEAA4D;AAC5D,2CAIwB;AACxB,uCAAyC;AAEzC,qDAAiD;AACjD,8DAAwD;AAExD;;;;;;GAMG;AAEI,IAAM,SAAS,GAAf,MAAM,SAAS;IACpB;;OAEG;IACH,YAA+B,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAEvD;;;;OAIG;IACO,QAAQ,CAAC,OAAyB;QAC1C,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,8BAAa,EAAE;YACvD,OAAO,CAAC,UAAU,EAAE;YACpB,OAAO,CAAC,QAAQ,EAAE;SACnB,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,WAAW,CACT,OAAyB;QAEzB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,CAAC,CAAC,gCAAc,CAAC,GAAG,CAAC,4BAAW,CAAC,CAAC;IAC3C,CAAC;CACF,CAAA;AAhCY,8BAAS;oBAAT,SAAS;IADrB,IAAA,mBAAU,GAAE;qCAK+B,gBAAS;GAJxC,SAAS,CAgCrB"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const rxjs_1 = require("rxjs");
4
+ const auth_constants_1 = require("./auth.constants");
4
5
  const auth_guard_1 = require("./auth.guard");
5
6
  class PromiseAuthGuard extends auth_guard_1.AuthGuard {
6
7
  canActivate(_context) {
@@ -12,10 +13,33 @@ class ObservableAuthGuard extends auth_guard_1.AuthGuard {
12
13
  return (0, rxjs_1.of)(true);
13
14
  }
14
15
  }
16
+ class PublicAwareAuthGuard extends auth_guard_1.AuthGuard {
17
+ isContextPublic(context) {
18
+ return this.isPublic(context);
19
+ }
20
+ }
15
21
  describe("AuthGuard", () => {
16
22
  it("allows subclasses to return the full CanActivate result type", () => {
17
23
  expect(PromiseAuthGuard).toBeDefined();
18
24
  expect(ObservableAuthGuard).toBeDefined();
19
25
  });
26
+ it("allows subclasses to reuse the public route metadata lookup", () => {
27
+ const handler = () => undefined;
28
+ class TestController {
29
+ }
30
+ const context = {
31
+ getClass: jest.fn(() => TestController),
32
+ getHandler: jest.fn(() => handler),
33
+ };
34
+ const getAllAndOverride = jest.fn(() => true);
35
+ const guard = new PublicAwareAuthGuard({
36
+ getAllAndOverride,
37
+ });
38
+ expect(guard.isContextPublic(context)).toBe(true);
39
+ expect(getAllAndOverride).toHaveBeenCalledWith(auth_constants_1.IS_PUBLIC_KEY, [
40
+ handler,
41
+ TestController,
42
+ ]);
43
+ });
20
44
  });
21
45
  //# sourceMappingURL=auth.guard.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.guard.spec.js","sourceRoot":"","sources":["../src/auth.guard.spec.ts"],"names":[],"mappings":";;AACA,+BAA0B;AAE1B,6CAAyC;AAEzC,MAAM,gBAAiB,SAAQ,sBAAS;IAC7B,WAAW,CAClB,QAA0B;QAE1B,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,mBAAoB,SAAQ,sBAAS;IAChC,WAAW,CAClB,QAA0B;QAE1B,OAAO,IAAA,SAAE,EAAC,IAAI,CAAC,CAAC;IAClB,CAAC;CACF;AAED,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,CAAC,mBAAmB,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"auth.guard.spec.js","sourceRoot":"","sources":["../src/auth.guard.spec.ts"],"names":[],"mappings":";;AAEA,+BAA0B;AAE1B,qDAAiD;AACjD,6CAAyC;AAEzC,MAAM,gBAAiB,SAAQ,sBAAS;IAC7B,WAAW,CAClB,QAA0B;QAE1B,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,mBAAoB,SAAQ,sBAAS;IAChC,WAAW,CAClB,QAA0B;QAE1B,OAAO,IAAA,SAAE,EAAC,IAAI,CAAC,CAAC;IAClB,CAAC;CACF;AAED,MAAM,oBAAqB,SAAQ,sBAAS;IAC1C,eAAe,CAAC,OAAyB;QACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;CACF;AAED,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,CAAC,mBAAmB,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC;QAChC,MAAM,cAAc;SAAG;QAEvB,MAAM,OAAO,GAAG;YACd,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC;YACvC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;SACJ,CAAC;QAEjC,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAI,oBAAoB,CAAC;YACrC,iBAAiB;SACM,CAAC,CAAC;QAE3B,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC,8BAAa,EAAE;YAC5D,OAAO;YACP,cAAc;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}