@spinajs/rbac-http 2.0.146 → 2.0.147

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.
@@ -1 +1 @@
1
- {"version":3,"file":"middlewares.d.ts","sourceRoot":"","sources":["../../src/middlewares.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAQ,MAAM,eAAe,CAAC;AAEtD,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtE,qBACa,cAAe,SAAQ,gBAAgB;IAElD,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAGhC,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;IAE9B,OAAO;IAMb,MAAM,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,KAAK,IAAI;IAuBpF,KAAK,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,KAAK,IAAI;CAG3F"}
1
+ {"version":3,"file":"middlewares.d.ts","sourceRoot":"","sources":["../../src/middlewares.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,eAAe,EAAQ,MAAM,eAAe,CAAC;AAEhE,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtE,qBACa,cAAe,SAAQ,gBAAgB;IAElD,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAGhC,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;IAE9B,OAAO;IAMb,MAAM,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,KAAK,IAAI;IA4BpF,KAAK,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,KAAK,IAAI;CAG3F"}
@@ -48,22 +48,24 @@ let RbacMiddleware = class RbacMiddleware extends http_1.ServerMiddleware {
48
48
  before() {
49
49
  return async (req, _res, next) => {
50
50
  try {
51
+ let session = null;
51
52
  if (req.cookies?.ssid) {
52
53
  const ssid = cs.unsign(req.cookies.ssid, this.CoockieSecret);
53
54
  if (ssid) {
54
- const session = await this.SessionProvider.restore(ssid);
55
- if (session) {
56
- req.storage.user = di_1.DI.resolve('RbacUserFactory', [session.Data.get('User')]);
57
- req.storage.session = session;
58
- }
59
- else {
60
- req.storage.user = di_1.DI.resolve('RbacGuestUserFactory');
61
- }
62
- }
63
- else {
64
- req.storage.user = di_1.DI.resolve('RbacGuestUserFactory');
55
+ session = await this.SessionProvider.restore(ssid);
65
56
  }
66
57
  }
58
+ if (session) {
59
+ /**
60
+ * If we have session, try to restore user with data from session
61
+ * otherwise try to create guest
62
+ */
63
+ req.storage.user = di_1.DI.resolve('RbacUserFactory', [session.Data.get('User')]);
64
+ req.storage.session = session;
65
+ }
66
+ else {
67
+ req.storage.user = di_1.DI.resolve('RbacGuestUserFactory');
68
+ }
67
69
  next();
68
70
  }
69
71
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"middlewares.js","sourceRoot":"","sources":["../../src/middlewares.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wCAAsD;AACtD,oCAAyD;AACzD,4BAA0B;AAE1B,0DAAgD;AAChD,qDAAuC;AACvC,wCAAsE;AAG/D,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,uBAAgB;IAO3C,KAAK,CAAC,OAAO;QAClB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,gHAAgH,CAAC,CAAC;SACnI;IACH,CAAC;IAEM,MAAM;QACX,OAAO,KAAK,EAAE,GAAa,EAAE,IAAsB,EAAE,IAA0B,EAAE,EAAE;YACjF,IAAI;gBACF,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE;oBACrB,MAAM,IAAI,GAAmB,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;oBAC7E,IAAI,IAAI,EAAE;wBACR,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wBACzD,IAAI,OAAO,EAAE;4BACX,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,OAAE,CAAC,OAAO,CAAO,iBAAiB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BACnF,GAAG,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;yBAC/B;6BAAM;4BACL,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,OAAE,CAAC,OAAO,CAAO,sBAAsB,CAAC,CAAC;yBAC7D;qBACF;yBAAM;wBACL,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,OAAE,CAAC,OAAO,CAAO,sBAAsB,CAAC,CAAC;qBAC7D;iBACF;gBACD,IAAI,EAAE,CAAC;aACR;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,CAAC,GAAG,CAAC,CAAC;aACX;QACH,CAAC,CAAC;IACJ,CAAC;IACM,KAAK;QACV,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAtCC;IAAC,IAAA,sBAAM,EAAC,oBAAoB,CAAC;;qDACG;AAEhC;IAAC,IAAA,eAAU,GAAE;8BACc,sBAAe;uDAAC;AALhC,cAAc;IAD1B,IAAA,eAAU,EAAC,uBAAgB,CAAC;GAChB,cAAc,CAuC1B;AAvCY,wCAAc"}
1
+ {"version":3,"file":"middlewares.js","sourceRoot":"","sources":["../../src/middlewares.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wCAAgE;AAChE,oCAAyD;AACzD,4BAA0B;AAE1B,0DAAgD;AAChD,qDAAuC;AACvC,wCAAsE;AAG/D,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,uBAAgB;IAO3C,KAAK,CAAC,OAAO;QAClB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,gHAAgH,CAAC,CAAC;SACnI;IACH,CAAC;IAEM,MAAM;QACX,OAAO,KAAK,EAAE,GAAa,EAAE,IAAsB,EAAE,IAA0B,EAAE,EAAE;YACjF,IAAI;gBACF,IAAI,OAAO,GAAa,IAAI,CAAC;gBAC7B,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE;oBACrB,MAAM,IAAI,GAAmB,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;oBAC7E,IAAI,IAAI,EAAE;wBACR,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;qBACpD;iBACF;gBAED,IAAI,OAAO,EAAE;oBACX;;;uBAGG;oBACH,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,OAAE,CAAC,OAAO,CAAO,iBAAiB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACnF,GAAG,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;iBAC/B;qBAAM;oBACL,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,OAAE,CAAC,OAAO,CAAO,sBAAsB,CAAC,CAAC;iBAC7D;gBAED,IAAI,EAAE,CAAC;aACR;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,CAAC,GAAG,CAAC,CAAC;aACX;QACH,CAAC,CAAC;IACJ,CAAC;IACM,KAAK;QACV,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AA3CC;IAAC,IAAA,sBAAM,EAAC,oBAAoB,CAAC;;qDACG;AAEhC;IAAC,IAAA,eAAU,GAAE;8BACc,sBAAe;uDAAC;AALhC,cAAc;IAD1B,IAAA,eAAU,EAAC,uBAAgB,CAAC;GAChB,cAAc,CA4C1B;AA5CY,wCAAc"}
@@ -0,0 +1,9 @@
1
+ import { BasePolicy, IController, IRoute, Request as sRequest } from '@spinajs/http';
2
+ /**
3
+ * Policy to block guests
4
+ */
5
+ export declare class BlockGuest extends BasePolicy {
6
+ isEnabled(_action: IRoute, _instance: IController): boolean;
7
+ execute(req: sRequest): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=AllowGuest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AllowGuest.d.ts","sourceRoot":"","sources":["../../../src/policies/AllowGuest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGrF;;GAEG;AACH,qBAAa,UAAW,SAAQ,UAAU;IACjC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,GAAG,OAAO;IAKrD,OAAO,CAAC,GAAG,EAAE,QAAQ;CAenC"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BlockGuest = void 0;
4
+ const http_1 = require("@spinajs/http");
5
+ const exceptions_1 = require("@spinajs/exceptions");
6
+ /**
7
+ * Policy to block guests
8
+ */
9
+ class BlockGuest extends http_1.BasePolicy {
10
+ isEnabled(_action, _instance) {
11
+ // acl is always on if set
12
+ return true;
13
+ }
14
+ async execute(req) {
15
+ if (!req.storage || !req.storage.user) {
16
+ throw new exceptions_1.Forbidden('user not logged or session expired');
17
+ }
18
+ const user = req.storage.user;
19
+ if (user.IsGuest) {
20
+ // if we disable guest account in config file, throw
21
+ if (!user.IsActive) {
22
+ throw new exceptions_1.Forbidden('guest account is disabled');
23
+ }
24
+ }
25
+ return Promise.resolve();
26
+ }
27
+ }
28
+ exports.BlockGuest = BlockGuest;
29
+ //# sourceMappingURL=AllowGuest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AllowGuest.js","sourceRoot":"","sources":["../../../src/policies/AllowGuest.ts"],"names":[],"mappings":";;;AAAA,wCAAqF;AACrF,oDAAgD;AAEhD;;GAEG;AACH,MAAa,UAAW,SAAQ,iBAAU;IACjC,SAAS,CAAC,OAAe,EAAE,SAAsB;QACtD,0BAA0B;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,GAAa;QAChC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;YACrC,MAAM,IAAI,sBAAS,CAAC,oCAAoC,CAAC,CAAC;SAC3D;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;QAC9B,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,oDAAoD;YACpD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,MAAM,IAAI,sBAAS,CAAC,2BAA2B,CAAC,CAAC;aAClD;SACF;QAED,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF;AArBD,gCAqBC"}
@@ -0,0 +1,9 @@
1
+ import { BasePolicy, IController, IRoute, Request as sRequest } from '@spinajs/http';
2
+ /**
3
+ * Policy to block guests
4
+ */
5
+ export declare class BlockGuest extends BasePolicy {
6
+ isEnabled(_action: IRoute, _instance: IController): boolean;
7
+ execute(req: sRequest): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=BlockGuest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockGuest.d.ts","sourceRoot":"","sources":["../../../src/policies/BlockGuest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGrF;;GAEG;AACH,qBAAa,UAAW,SAAQ,UAAU;IACjC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,GAAG,OAAO;IAKrD,OAAO,CAAC,GAAG,EAAE,QAAQ;CAWnC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BlockGuest = void 0;
4
+ const http_1 = require("@spinajs/http");
5
+ const exceptions_1 = require("@spinajs/exceptions");
6
+ /**
7
+ * Policy to block guests
8
+ */
9
+ class BlockGuest extends http_1.BasePolicy {
10
+ isEnabled(_action, _instance) {
11
+ // acl is always on if set
12
+ return true;
13
+ }
14
+ async execute(req) {
15
+ if (!req.storage || !req.storage.user) {
16
+ throw new exceptions_1.Forbidden('user not logged or session expired');
17
+ }
18
+ if (req.storage.user) {
19
+ throw new exceptions_1.Forbidden('user not logged or session expired');
20
+ }
21
+ return Promise.resolve();
22
+ }
23
+ }
24
+ exports.BlockGuest = BlockGuest;
25
+ //# sourceMappingURL=BlockGuest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockGuest.js","sourceRoot":"","sources":["../../../src/policies/BlockGuest.ts"],"names":[],"mappings":";;;AAAA,wCAAqF;AACrF,oDAAgD;AAEhD;;GAEG;AACH,MAAa,UAAW,SAAQ,iBAAU;IACjC,SAAS,CAAC,OAAe,EAAE,SAAsB;QACtD,0BAA0B;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,GAAa;QAChC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;YACrC,MAAM,IAAI,sBAAS,CAAC,oCAAoC,CAAC,CAAC;SAC3D;QAED,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;YACpB,MAAM,IAAI,sBAAS,CAAC,oCAAoC,CAAC,CAAC;SAC3D;QAED,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF;AAjBD,gCAiBC"}
@@ -1 +1 @@
1
- {"version":3,"file":"middlewares.d.ts","sourceRoot":"","sources":["../../src/middlewares.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAQ,MAAM,eAAe,CAAC;AAEtD,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtE,qBACa,cAAe,SAAQ,gBAAgB;IAElD,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAGhC,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;IAE9B,OAAO;IAMb,MAAM,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,KAAK,IAAI;IAuBpF,KAAK,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,KAAK,IAAI;CAG3F"}
1
+ {"version":3,"file":"middlewares.d.ts","sourceRoot":"","sources":["../../src/middlewares.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,eAAe,EAAQ,MAAM,eAAe,CAAC;AAEhE,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtE,qBACa,cAAe,SAAQ,gBAAgB;IAElD,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAGhC,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;IAE9B,OAAO;IAMb,MAAM,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,KAAK,IAAI;IA4BpF,KAAK,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,KAAK,IAAI;CAG3F"}
@@ -22,22 +22,24 @@ let RbacMiddleware = class RbacMiddleware extends ServerMiddleware {
22
22
  before() {
23
23
  return async (req, _res, next) => {
24
24
  try {
25
+ let session = null;
25
26
  if (req.cookies?.ssid) {
26
27
  const ssid = cs.unsign(req.cookies.ssid, this.CoockieSecret);
27
28
  if (ssid) {
28
- const session = await this.SessionProvider.restore(ssid);
29
- if (session) {
30
- req.storage.user = DI.resolve('RbacUserFactory', [session.Data.get('User')]);
31
- req.storage.session = session;
32
- }
33
- else {
34
- req.storage.user = DI.resolve('RbacGuestUserFactory');
35
- }
36
- }
37
- else {
38
- req.storage.user = DI.resolve('RbacGuestUserFactory');
29
+ session = await this.SessionProvider.restore(ssid);
39
30
  }
40
31
  }
32
+ if (session) {
33
+ /**
34
+ * If we have session, try to restore user with data from session
35
+ * otherwise try to create guest
36
+ */
37
+ req.storage.user = DI.resolve('RbacUserFactory', [session.Data.get('User')]);
38
+ req.storage.session = session;
39
+ }
40
+ else {
41
+ req.storage.user = DI.resolve('RbacGuestUserFactory');
42
+ }
41
43
  next();
42
44
  }
43
45
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"middlewares.js","sourceRoot":"","sources":["../../src/middlewares.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,eAAe,EAAQ,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAuB,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAG/D,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,gBAAgB;IAO3C,KAAK,CAAC,OAAO;QAClB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,gHAAgH,CAAC,CAAC;SACnI;IACH,CAAC;IAEM,MAAM;QACX,OAAO,KAAK,EAAE,GAAa,EAAE,IAAsB,EAAE,IAA0B,EAAE,EAAE;YACjF,IAAI;gBACF,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE;oBACrB,MAAM,IAAI,GAAmB,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;oBAC7E,IAAI,IAAI,EAAE;wBACR,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wBACzD,IAAI,OAAO,EAAE;4BACX,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,OAAO,CAAO,iBAAiB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BACnF,GAAG,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;yBAC/B;6BAAM;4BACL,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,OAAO,CAAO,sBAAsB,CAAC,CAAC;yBAC7D;qBACF;yBAAM;wBACL,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,OAAO,CAAO,sBAAsB,CAAC,CAAC;qBAC7D;iBACF;gBACD,IAAI,EAAE,CAAC;aACR;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,CAAC,GAAG,CAAC,CAAC;aACX;QACH,CAAC,CAAC;IACJ,CAAC;IACM,KAAK;QACV,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAtCC;IAAC,MAAM,CAAC,oBAAoB,CAAC;;qDACG;AAEhC;IAAC,UAAU,EAAE;8BACc,eAAe;uDAAC;AALhC,cAAc;IAD1B,UAAU,CAAC,gBAAgB,CAAC;GAChB,cAAc,CAuC1B;SAvCY,cAAc"}
1
+ {"version":3,"file":"middlewares.js","sourceRoot":"","sources":["../../src/middlewares.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAY,eAAe,EAAQ,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAuB,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAG/D,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,gBAAgB;IAO3C,KAAK,CAAC,OAAO;QAClB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,gHAAgH,CAAC,CAAC;SACnI;IACH,CAAC;IAEM,MAAM;QACX,OAAO,KAAK,EAAE,GAAa,EAAE,IAAsB,EAAE,IAA0B,EAAE,EAAE;YACjF,IAAI;gBACF,IAAI,OAAO,GAAa,IAAI,CAAC;gBAC7B,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE;oBACrB,MAAM,IAAI,GAAmB,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;oBAC7E,IAAI,IAAI,EAAE;wBACR,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;qBACpD;iBACF;gBAED,IAAI,OAAO,EAAE;oBACX;;;uBAGG;oBACH,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,OAAO,CAAO,iBAAiB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACnF,GAAG,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;iBAC/B;qBAAM;oBACL,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,OAAO,CAAO,sBAAsB,CAAC,CAAC;iBAC7D;gBAED,IAAI,EAAE,CAAC;aACR;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,CAAC,GAAG,CAAC,CAAC;aACX;QACH,CAAC,CAAC;IACJ,CAAC;IACM,KAAK;QACV,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AA3CC;IAAC,MAAM,CAAC,oBAAoB,CAAC;;qDACG;AAEhC;IAAC,UAAU,EAAE;8BACc,eAAe;uDAAC;AALhC,cAAc;IAD1B,UAAU,CAAC,gBAAgB,CAAC;GAChB,cAAc,CA4C1B;SA5CY,cAAc"}
@@ -0,0 +1,9 @@
1
+ import { BasePolicy, IController, IRoute, Request as sRequest } from '@spinajs/http';
2
+ /**
3
+ * Policy to block guests
4
+ */
5
+ export declare class BlockGuest extends BasePolicy {
6
+ isEnabled(_action: IRoute, _instance: IController): boolean;
7
+ execute(req: sRequest): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=AllowGuest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AllowGuest.d.ts","sourceRoot":"","sources":["../../../src/policies/AllowGuest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGrF;;GAEG;AACH,qBAAa,UAAW,SAAQ,UAAU;IACjC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,GAAG,OAAO;IAKrD,OAAO,CAAC,GAAG,EAAE,QAAQ;CAenC"}
@@ -0,0 +1,25 @@
1
+ import { BasePolicy } from '@spinajs/http';
2
+ import { Forbidden } from '@spinajs/exceptions';
3
+ /**
4
+ * Policy to block guests
5
+ */
6
+ export class BlockGuest extends BasePolicy {
7
+ isEnabled(_action, _instance) {
8
+ // acl is always on if set
9
+ return true;
10
+ }
11
+ async execute(req) {
12
+ if (!req.storage || !req.storage.user) {
13
+ throw new Forbidden('user not logged or session expired');
14
+ }
15
+ const user = req.storage.user;
16
+ if (user.IsGuest) {
17
+ // if we disable guest account in config file, throw
18
+ if (!user.IsActive) {
19
+ throw new Forbidden('guest account is disabled');
20
+ }
21
+ }
22
+ return Promise.resolve();
23
+ }
24
+ }
25
+ //# sourceMappingURL=AllowGuest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AllowGuest.js","sourceRoot":"","sources":["../../../src/policies/AllowGuest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA4C,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,UAAU;IACjC,SAAS,CAAC,OAAe,EAAE,SAAsB;QACtD,0BAA0B;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,GAAa;QAChC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;YACrC,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;SAC3D;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;QAC9B,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,oDAAoD;YACpD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC,CAAC;aAClD;SACF;QAED,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ import { BasePolicy, IController, IRoute, Request as sRequest } from '@spinajs/http';
2
+ /**
3
+ * Policy to block guests
4
+ */
5
+ export declare class BlockGuest extends BasePolicy {
6
+ isEnabled(_action: IRoute, _instance: IController): boolean;
7
+ execute(req: sRequest): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=BlockGuest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockGuest.d.ts","sourceRoot":"","sources":["../../../src/policies/BlockGuest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGrF;;GAEG;AACH,qBAAa,UAAW,SAAQ,UAAU;IACjC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,GAAG,OAAO;IAKrD,OAAO,CAAC,GAAG,EAAE,QAAQ;CAWnC"}
@@ -0,0 +1,21 @@
1
+ import { BasePolicy } from '@spinajs/http';
2
+ import { Forbidden } from '@spinajs/exceptions';
3
+ /**
4
+ * Policy to block guests
5
+ */
6
+ export class BlockGuest extends BasePolicy {
7
+ isEnabled(_action, _instance) {
8
+ // acl is always on if set
9
+ return true;
10
+ }
11
+ async execute(req) {
12
+ if (!req.storage || !req.storage.user) {
13
+ throw new Forbidden('user not logged or session expired');
14
+ }
15
+ if (req.storage.user) {
16
+ throw new Forbidden('user not logged or session expired');
17
+ }
18
+ return Promise.resolve();
19
+ }
20
+ }
21
+ //# sourceMappingURL=BlockGuest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockGuest.js","sourceRoot":"","sources":["../../../src/policies/BlockGuest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA4C,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,UAAU;IACjC,SAAS,CAAC,OAAe,EAAE,SAAsB;QACtD,0BAA0B;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,GAAa;QAChC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;YACrC,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;SAC3D;QAED,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;YACpB,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;SAC3D;QAED,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF"}