alado 2.3.0 → 2.4.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.
package/README.md CHANGED
@@ -46,6 +46,7 @@ Alado sits in a unique position — it has the **simplicity of Express**, the **
46
46
  | Decorator-based routing | ✅ | ❌ | ❌ | ✅ |
47
47
  | Built-in request validation | ✅ | ❌ | ✅ (schemas) | ✅ (pipes) |
48
48
  | Built-in auth pipeline | ✅ | ❌ | ❌ | ✅ (guards) |
49
+ | Built-in access control | ✅ | ❌ | ❌ | ✅ (guards) |
49
50
  | Auto OpenAPI 3.0 docs | ✅ | ❌ | ✅ (plugin) | ✅ (plugin) |
50
51
  | Built-in file upload | ✅ | ❌ | ❌ | ❌ |
51
52
  | Built-in body parsing | ✅ | ❌ (body-parser) | ✅ | ✅ |
@@ -122,6 +123,8 @@ src/
122
123
  │ └── server.options.ts # AladoServerOptions
123
124
  ├── auth/
124
125
  │ └── bearer.auth.ts # RequestAuthentication config
126
+ ├── access-control/
127
+ │ └── access-control.ts # AccessControl decorator & types
125
128
  └── modules/
126
129
  └── user/
127
130
  ├── index.ts
@@ -931,6 +934,56 @@ export const optionalAuth: RequestAuthentication = {
931
934
 
932
935
  ---
933
936
 
937
+ ## Access Control
938
+
939
+ The `@accessControl` decorator enables fine-grained permission checking on route handlers by comparing values from the request against expected values.
940
+
941
+ ### Configuration
942
+
943
+ ```typescript
944
+ export type AccessControlConfig<T> = {
945
+ inputProperty: string; // Property path to extract from request (e.g., 'auth.user.id')
946
+ transformInputProperty?: (inputPropertyValue: unknown) => T | Promise<T>; // Optional transform
947
+ compareWithProperty?: string; // Property path to compare against
948
+ expectedValue?: T; // Expected value (if not using compareWithProperty)
949
+ statusCode: number; // HTTP status on access denial
950
+ message: string; // Error message on denial
951
+ };
952
+ ```
953
+
954
+ Either provide `compareWithProperty` to compare two request values, or `expectedValue` to check against a fixed value.
955
+
956
+ ### Usage Example
957
+
958
+ ```typescript
959
+ @patch('/user/:id', { tags: ['User'] })
960
+ @accessControl([{
961
+ inputProperty: 'auth.user.id',
962
+ transformInputProperty: async (v: unknown) => v.toString(),
963
+ compareWithProperty: 'path.id',
964
+ statusCode: 403,
965
+ message: 'Access Denied'
966
+ }])
967
+ @withAuth(bearerAuth)
968
+ public async update(req: Request) {
969
+ // Only allow users to update their own profile
970
+ const { path, body } = req;
971
+ const user = DataStore.getUser(path.id);
972
+ if (user) {
973
+ DataStore.setUser(path.id, body as UserDto);
974
+ }
975
+ return { statusCode: user ? 200 : 404, body: user || { message: 'Not Found' } };
976
+ }
977
+ ```
978
+
979
+ In this example, the decorator ensures `auth.user.id` matches `path.id` before the handler executes. If access is denied, a 403 response is returned.
980
+
981
+ ### Multiple Rules
982
+
983
+ Pass multiple configs to `@accessControl([...])` to enforce multiple access rules - all must pass for the request to proceed.
984
+
985
+ ---
986
+
934
987
  ## File Uploads
935
988
 
936
989
  1. Define a files DTO:
@@ -0,0 +1,2 @@
1
+ import { AccessControlConfig } from '../dto';
2
+ export declare function accessControl(configs: AccessControlConfig<any>[]): (...args: any[]) => void;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.accessControl = accessControl;
4
+ const _injector_1 = require("../injector");
5
+ const initialize_injector_1 = require("./initialize-injector");
6
+ function accessControl(configs) {
7
+ (0, initialize_injector_1.initializeInjector)();
8
+ return function (...args) {
9
+ const [controller, method,] = args;
10
+ const key = `${controller.constructor.name}.${method}`;
11
+ _injector_1.injector.injected.accessControlMapping[key] = configs;
12
+ };
13
+ }
14
+ //# sourceMappingURL=access-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-control.js","sourceRoot":"","sources":["../../src/decorators/access-control.ts"],"names":[],"mappings":";;AAIA,sCAUC;AAbD,yCAAqC;AACrC,+DAA2D;AAE3D,SAAgB,aAAa,CAAC,OAAmC;IAC/D,IAAA,wCAAkB,GAAE,CAAC;IACrB,OAAO,UAAU,GAAG,IAAW;QAC7B,MAAM,CACJ,UAAU,EACV,MAAM,EACP,GAAG,IAAI,CAAC;QACT,MAAM,GAAG,GAAG,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC;QACvD,oBAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;IACxD,CAAC,CAAC;AACJ,CAAC"}
@@ -21,6 +21,7 @@ function callHttpMethod(httpMethod, path, options = {}) {
21
21
  app[normalizedMethod](path, {
22
22
  title: options.title || defaultDescription,
23
23
  auth: _injector_1.injector.injected.authMapping[key] || undefined,
24
+ accessControl: _injector_1.injector.injected.accessControlMapping[key] || undefined,
24
25
  options: {
25
26
  allowUnknownFields: false,
26
27
  isHidden: options.isHidden || false,
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/decorators/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/decorators/http.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export * from './validate-property';
4
4
  export * from './transform-property';
5
5
  export * from './file-upload-property';
6
6
  export * from './with-auth';
7
+ export * from './access-control';
7
8
  export * from './define-request';
8
9
  export * from './define-response';
9
10
  export * from './http';
@@ -20,6 +20,7 @@ __exportStar(require("./validate-property"), exports);
20
20
  __exportStar(require("./transform-property"), exports);
21
21
  __exportStar(require("./file-upload-property"), exports);
22
22
  __exportStar(require("./with-auth"), exports);
23
+ __exportStar(require("./access-control"), exports);
23
24
  __exportStar(require("./define-request"), exports);
24
25
  __exportStar(require("./define-response"), exports);
25
26
  __exportStar(require("./http"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,sDAAoC;AACpC,sDAAoC;AACpC,uDAAqC;AACrC,yDAAuC;AACvC,8CAA4B;AAC5B,mDAAiC;AACjC,oDAAkC;AAClC,yCAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,sDAAoC;AACpC,sDAAoC;AACpC,uDAAqC;AACrC,yDAAuC;AACvC,8CAA4B;AAC5B,mDAAiC;AACjC,mDAAiC;AACjC,oDAAkC;AAClC,yCAAuB"}
@@ -9,6 +9,7 @@ function initializeInjector() {
9
9
  requestMapping: _injector_1.injector.injected.requestMapping || {},
10
10
  responseMapping: _injector_1.injector.injected.responseMapping || {},
11
11
  authMapping: _injector_1.injector.injected.authMapping || {},
12
+ accessControlMapping: _injector_1.injector.injected.accessControlMapping || {},
12
13
  propertyDefinitionsMapping: _injector_1.injector.injected.propertyDefinitionsMapping || {},
13
14
  controllers: _injector_1.injector.injected.controllers || {},
14
15
  });
@@ -1 +1 @@
1
- {"version":3,"file":"initialize-injector.js","sourceRoot":"","sources":["../../src/decorators/initialize-injector.ts"],"names":[],"mappings":";;AAEA,gDAUC;AAZD,yCAAqC;AAErC,SAAgB,kBAAkB;IAChC,oBAAQ,CAAC,MAAM,CAAC;QACd,UAAU,EAAE,oBAAQ,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE;QAC9C,gBAAgB,EAAE,oBAAQ,CAAC,QAAQ,CAAC,gBAAgB,IAAI,EAAE;QAC1D,cAAc,EAAE,oBAAQ,CAAC,QAAQ,CAAC,cAAc,IAAI,EAAE;QACtD,eAAe,EAAE,oBAAQ,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE;QACxD,WAAW,EAAE,oBAAQ,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE;QAChD,0BAA0B,EAAE,oBAAQ,CAAC,QAAQ,CAAC,0BAA0B,IAAI,EAAE;QAC9E,WAAW,EAAE,oBAAQ,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE;KACjD,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"initialize-injector.js","sourceRoot":"","sources":["../../src/decorators/initialize-injector.ts"],"names":[],"mappings":";;AAEA,gDAWC;AAbD,yCAAqC;AAErC,SAAgB,kBAAkB;IAChC,oBAAQ,CAAC,MAAM,CAAC;QACd,UAAU,EAAE,oBAAQ,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE;QAC9C,gBAAgB,EAAE,oBAAQ,CAAC,QAAQ,CAAC,gBAAgB,IAAI,EAAE;QAC1D,cAAc,EAAE,oBAAQ,CAAC,QAAQ,CAAC,cAAc,IAAI,EAAE;QACtD,eAAe,EAAE,oBAAQ,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE;QACxD,WAAW,EAAE,oBAAQ,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE;QAChD,oBAAoB,EAAE,oBAAQ,CAAC,QAAQ,CAAC,oBAAoB,IAAI,EAAE;QAClE,0BAA0B,EAAE,oBAAQ,CAAC,QAAQ,CAAC,0BAA0B,IAAI,EAAE;QAC9E,WAAW,EAAE,oBAAQ,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE;KACjD,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { AladoServerError } from './alado-server-error';
2
+ export type AccessControlConfig<T> = {
3
+ inputProperty: string;
4
+ transformInputProperty?: (inputPropertyValue: unknown) => T | Promise<T>;
5
+ compareWithProperty?: string;
6
+ expectedValue?: T;
7
+ } & AladoServerError;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=access-control-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-control-config.js","sourceRoot":"","sources":["../../src/dto/access-control-config.ts"],"names":[],"mappings":""}
@@ -2,9 +2,11 @@ import { ContextOptions } from '../options';
2
2
  import { RequestAuthentication } from './request-authentication';
3
3
  import { Response } from './response';
4
4
  import { ContextRequest } from './request';
5
+ import { AccessControlConfig } from './access-control-config';
5
6
  export type Context<T> = {
6
7
  title: string;
7
8
  auth?: RequestAuthentication;
9
+ accessControl?: AccessControlConfig<any>[];
8
10
  options: ContextOptions;
9
11
  request: ContextRequest;
10
12
  response: Response<Record<keyof T, any>>;
@@ -4,6 +4,7 @@ export * from './alado-server-logger';
4
4
  export * from './request';
5
5
  export * from './response';
6
6
  export * from './property-definition';
7
+ export * from './access-control-config';
7
8
  export * from './request-authentication';
8
9
  export * from './route';
9
10
  export * from './open-api-doc-object';
package/dist/dto/index.js CHANGED
@@ -20,6 +20,7 @@ __exportStar(require("./alado-server-logger"), exports);
20
20
  __exportStar(require("./request"), exports);
21
21
  __exportStar(require("./response"), exports);
22
22
  __exportStar(require("./property-definition"), exports);
23
+ __exportStar(require("./access-control-config"), exports);
23
24
  __exportStar(require("./request-authentication"), exports);
24
25
  __exportStar(require("./route"), exports);
25
26
  __exportStar(require("./open-api-doc-object"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dto/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,uDAAqC;AACrC,wDAAsC;AACtC,4CAA0B;AAC1B,6CAA2B;AAC3B,wDAAsC;AACtC,2DAAyC;AACzC,0CAAwB;AACxB,wDAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dto/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,uDAAqC;AACrC,wDAAsC;AACtC,4CAA0B;AAC1B,6CAA2B;AAC3B,wDAAsC;AACtC,0DAAwC;AACxC,2DAAyC;AACzC,0CAAwB;AACxB,wDAAsC"}
@@ -0,0 +1,2 @@
1
+ import { AladoServerError, Context } from '../../dto';
2
+ export declare function accessControlChecker(context: Context<any>, request: any): Promise<AladoServerError | void>;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.accessControlChecker = accessControlChecker;
4
+ const accessor_1 = require("../accessor");
5
+ async function accessControlChecker(context, request) {
6
+ const { accessControl } = context;
7
+ let success = true;
8
+ for (const item of accessControl) {
9
+ const { inputProperty, transformInputProperty, statusCode, message, compareWithProperty, expectedValue } = item;
10
+ let providedValue = (0, accessor_1.getProperty)(request, inputProperty);
11
+ if (typeof transformInputProperty === 'function') {
12
+ providedValue = await transformInputProperty(providedValue);
13
+ }
14
+ if (expectedValue !== undefined) {
15
+ success = expectedValue === providedValue;
16
+ }
17
+ if (!success) {
18
+ return { statusCode, message };
19
+ }
20
+ if (compareWithProperty) {
21
+ const compareWithVale = (0, accessor_1.getProperty)(request, compareWithProperty);
22
+ success = compareWithVale === providedValue;
23
+ }
24
+ if (!success) {
25
+ return { statusCode, message };
26
+ }
27
+ }
28
+ }
29
+ //# sourceMappingURL=access-control-checker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-control-checker.js","sourceRoot":"","sources":["../../../src/helpers/parser/access-control-checker.ts"],"names":[],"mappings":";;AAGA,oDA6BC;AA/BD,0CAA0C;AAEnC,KAAK,UAAU,oBAAoB,CAAC,OAAqB,EAAE,OAAY;IAC5E,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAClC,IAAI,OAAO,GAAY,IAAI,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,EAAE,aAAa,EAAE,sBAAsB,EAAE,UAAU,EAAE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;QAEhH,IAAI,aAAa,GAAY,IAAA,sBAAW,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAEjE,IAAI,OAAO,sBAAsB,KAAK,UAAU,EAAE,CAAC;YACjD,aAAa,GAAG,MAAM,sBAAsB,CAAC,aAAa,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,GAAG,aAAa,KAAK,aAAa,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;QACjC,CAAC;QAED,IAAI,mBAAmB,EAAE,CAAC;YACxB,MAAM,eAAe,GAAG,IAAA,sBAAW,EAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;YAClE,OAAO,GAAG,eAAe,KAAK,aAAa,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,3 +1,4 @@
1
+ export * from './access-control-checker';
1
2
  export * from './authenticate';
2
3
  export * from './body-parser';
3
4
  export * from './query-parser';
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./access-control-checker"), exports);
17
18
  __exportStar(require("./authenticate"), exports);
18
19
  __exportStar(require("./body-parser"), exports);
19
20
  __exportStar(require("./query-parser"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/helpers/parser/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,gDAA8B;AAC9B,iDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/helpers/parser/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,iDAA+B;AAC/B,gDAA8B;AAC9B,iDAA+B"}
package/dist/index.d.ts CHANGED
@@ -2,5 +2,5 @@ export { Context, ContextRequest, RequestAuthentication, Request, Response, Prop
2
2
  export { AladoServerOptions, ContextOptions, CorsOptions, OpenApiDoc } from './options';
3
3
  export { HttpMethod, httpStatus, ContentType } from './constants';
4
4
  export { validate } from './helpers';
5
- export { initializeApplication, defineRequest, defineResponse, fileUploadProperty, documentProperty, validateProperty, transformProperty, withAuth, get, del, head, patch, post, put, } from './decorators';
5
+ export { initializeApplication, defineRequest, defineResponse, fileUploadProperty, documentProperty, validateProperty, transformProperty, withAuth, accessControl, get, del, head, patch, post, put, } from './decorators';
6
6
  export { AladoServer } from './alado-server';
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AladoServer = exports.put = exports.post = exports.patch = exports.head = exports.del = exports.get = exports.withAuth = exports.transformProperty = exports.validateProperty = exports.documentProperty = exports.fileUploadProperty = exports.defineResponse = exports.defineRequest = exports.initializeApplication = exports.validate = exports.ContentType = exports.httpStatus = exports.HttpMethod = void 0;
3
+ exports.AladoServer = exports.put = exports.post = exports.patch = exports.head = exports.del = exports.get = exports.accessControl = exports.withAuth = exports.transformProperty = exports.validateProperty = exports.documentProperty = exports.fileUploadProperty = exports.defineResponse = exports.defineRequest = exports.initializeApplication = exports.validate = exports.ContentType = exports.httpStatus = exports.HttpMethod = void 0;
4
4
  var _const_1 = require("./constants");
5
5
  Object.defineProperty(exports, "HttpMethod", { enumerable: true, get: function () { return _const_1.HttpMethod; } });
6
6
  Object.defineProperty(exports, "httpStatus", { enumerable: true, get: function () { return _const_1.httpStatus; } });
@@ -16,6 +16,7 @@ Object.defineProperty(exports, "documentProperty", { enumerable: true, get: func
16
16
  Object.defineProperty(exports, "validateProperty", { enumerable: true, get: function () { return _decorator_1.validateProperty; } });
17
17
  Object.defineProperty(exports, "transformProperty", { enumerable: true, get: function () { return _decorator_1.transformProperty; } });
18
18
  Object.defineProperty(exports, "withAuth", { enumerable: true, get: function () { return _decorator_1.withAuth; } });
19
+ Object.defineProperty(exports, "accessControl", { enumerable: true, get: function () { return _decorator_1.accessControl; } });
19
20
  Object.defineProperty(exports, "get", { enumerable: true, get: function () { return _decorator_1.get; } });
20
21
  Object.defineProperty(exports, "del", { enumerable: true, get: function () { return _decorator_1.del; } });
21
22
  Object.defineProperty(exports, "head", { enumerable: true, get: function () { return _decorator_1.head; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAYA,iCAA6D;AAApD,oGAAA,UAAU,OAAA;AAAE,oGAAA,UAAU,OAAA;AAAE,qGAAA,WAAW,OAAA;AAC5C,mCAAmC;AAA1B,mGAAA,QAAQ,OAAA;AACjB,yCAeoB;AAdlB,mHAAA,qBAAqB,OAAA;AACrB,2GAAA,aAAa,OAAA;AACb,4GAAA,cAAc,OAAA;AACd,gHAAA,kBAAkB,OAAA;AAClB,8GAAA,gBAAgB,OAAA;AAChB,8GAAA,gBAAgB,OAAA;AAChB,+GAAA,iBAAiB,OAAA;AACjB,sGAAA,QAAQ,OAAA;AACR,iGAAA,GAAG,OAAA;AACH,iGAAA,GAAG,OAAA;AACH,kGAAA,IAAI,OAAA;AACJ,mGAAA,KAAK,OAAA;AACL,kGAAA,IAAI,OAAA;AACJ,iGAAA,GAAG,OAAA;AAEL,iCAAqC;AAA5B,qGAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAYA,iCAA6D;AAApD,oGAAA,UAAU,OAAA;AAAE,oGAAA,UAAU,OAAA;AAAE,qGAAA,WAAW,OAAA;AAC5C,mCAAmC;AAA1B,mGAAA,QAAQ,OAAA;AACjB,yCAgBoB;AAflB,mHAAA,qBAAqB,OAAA;AACrB,2GAAA,aAAa,OAAA;AACb,4GAAA,cAAc,OAAA;AACd,gHAAA,kBAAkB,OAAA;AAClB,8GAAA,gBAAgB,OAAA;AAChB,8GAAA,gBAAgB,OAAA;AAChB,+GAAA,iBAAiB,OAAA;AACjB,sGAAA,QAAQ,OAAA;AACR,2GAAA,aAAa,OAAA;AACb,iGAAA,GAAG,OAAA;AACH,iGAAA,GAAG,OAAA;AACH,kGAAA,IAAI,OAAA;AACJ,mGAAA,KAAK,OAAA;AACL,kGAAA,IAAI,OAAA;AACJ,iGAAA,GAAG,OAAA;AAEL,iCAAqC;AAA5B,qGAAA,WAAW,OAAA"}
@@ -1,9 +1,10 @@
1
1
  import { AladoServer } from '../alado-server';
2
- import { FilePropertyDefinition, PropertyDefinition, RequestAuthentication } from '../dto';
2
+ import { AccessControlConfig, FilePropertyDefinition, PropertyDefinition, RequestAuthentication } from '../dto';
3
3
  export type InjectorOptions = {
4
4
  appMapping: Record<string, AladoServer>;
5
5
  shadowAppMapping: Record<string, any>;
6
6
  authMapping: Record<string, RequestAuthentication>;
7
+ accessControlMapping: Record<string, AccessControlConfig<any>[]>;
7
8
  requestMapping: Record<string, Record<string, Record<string, PropertyDefinition | FilePropertyDefinition>>>;
8
9
  responseMapping: Record<string, any>;
9
10
  controllers: Record<string, Object>;
@@ -160,6 +160,13 @@ class RequestProcessor {
160
160
  return this.respondError(res, authError, backgroundHeaders);
161
161
  }
162
162
  }
163
+ // Access control
164
+ if (Array.isArray(context.accessControl) && context.accessControl.length) {
165
+ const accessError = await (0, _helper_1.accessControlChecker)(context, request);
166
+ if (accessError) {
167
+ return this.respondError(res, accessError, backgroundHeaders);
168
+ }
169
+ }
163
170
  // Validate request
164
171
  for (const key in context.request) {
165
172
  const error = await (0, _helper_1.validateRequestPart)(key, context, request);
@@ -1 +1 @@
1
- {"version":3,"file":"request-processor.js","sourceRoot":"","sources":["../../src/request-processor/request-processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request-processor.js","sourceRoot":"","sources":["../../src/request-processor/request-processor.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "alado",
3
- "version": "2.3.0",
3
+ "version": "2.4.0",
4
4
  "description": "Extremely fast, lightweight, robust framework for HTTP applications written in Node.js",
5
5
  "keywords": [
6
6
  "HTTP",
package/ROADMAP.md DELETED
File without changes