@nextage/era-lib 1.0.65 → 1.0.66
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/build/events/types/control.interfaces.d.ts +10 -0
- package/build/events/types/control.interfaces.d.ts.map +1 -1
- package/build/events/types/control.interfaces.js.map +1 -1
- package/build/utils/express.d.ts +6 -0
- package/build/utils/express.d.ts.map +1 -1
- package/build/utils/express.js +35 -0
- package/build/utils/express.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
import { NxTypeObject } from '@nextage/nx-frame-be';
|
|
2
2
|
import { BaseI18nEntity } from '../../interfaces';
|
|
3
3
|
import { ControlVulnerability } from './vulnerability.interfaces';
|
|
4
|
+
/**
|
|
5
|
+
* generic control definition grouping all related norms and analysis types
|
|
6
|
+
*/
|
|
4
7
|
export interface ControlItem extends ControlBaseItem {
|
|
5
8
|
sets?: ControlSet[];
|
|
6
9
|
analysisTypes?: string[];
|
|
7
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* single control bound to a specific analysis type
|
|
13
|
+
* e.g. for company control we have one separte document
|
|
14
|
+
* for each norm
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
8
17
|
export interface ControlInstanceItem extends ControlBaseItem, ControlSet {
|
|
9
18
|
analysisType?: string;
|
|
10
19
|
controlId?: string;
|
|
@@ -19,6 +28,7 @@ export interface ControlBaseItem extends BaseI18nEntity {
|
|
|
19
28
|
category?: BaseI18nEntity;
|
|
20
29
|
vulns?: ControlVulnerability[];
|
|
21
30
|
attributes?: ControlAttribute[];
|
|
31
|
+
link?: BaseI18nEntity;
|
|
22
32
|
}
|
|
23
33
|
export interface RiskControl extends AssetControl {
|
|
24
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control.interfaces.d.ts","sourceRoot":"","sources":["../../../src/events/types/control.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAc,sBAAsB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAY,kBAAkB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"control.interfaces.d.ts","sourceRoot":"","sources":["../../../src/events/types/control.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAc,sBAAsB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAY,kBAAkB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGlE;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,IAAI,CAAC,EAAW,UAAU,EAAE,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAoB,SAAQ,eAAe,EAAE,UAAU;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAK,MAAM,CAAC;IACtB,IAAI,CAAC,EAAU,WAAW,CAAC;CAC5B;AAED,MAAM,WAAW,YAAa,SAAQ,eAAe;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAK,MAAM,CAAC;IACtB,IAAI,CAAC,EAAU,gBAAgB,CAAC;CACjC;AAED,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,QAAQ,CAAC,EAAO,cAAc,CAAC;IAC/B,KAAK,CAAC,EAAU,oBAAoB,EAAE,CAAC;IACvC,UAAU,CAAC,EAAK,gBAAgB,EAAE,CAAC;IACnC,IAAI,CAAC,EAAW,cAAc,CAAC;CAChC;AAGD,MAAM,WAAW,WAAY,SAAQ,YAAY;CAEhD;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAM,OAAO,CAAC;IAClB,EAAE,EAAQ,OAAO,CAAC;IAClB,KAAK,EAAK,OAAO,CAAC;IAClB,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,GAAG,EAAE,WAAW,CAAC;CAKlB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAI,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAG,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC5C,IAAI,CAAC,EAAS,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC5C,IAAI,CAAC,EAAS,sBAAsB,CAAC;IACrC,EAAE,CAAC,EAAW,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,CAAC,EAAU,MAAM,CAAC;IACpB,KAAK,EAAQ,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAK,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAK,MAAM,EAAE,CAAC;CAChB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control.interfaces.js","sourceRoot":"","sources":["../../../src/events/types/control.interfaces.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"control.interfaces.js","sourceRoot":"","sources":["../../../src/events/types/control.interfaces.ts"],"names":[],"mappings":";;AAoFA,qDAAqD;AACrD,oBAAoB;AACpB,oBAAoB;AACpB,IAAI"}
|
package/build/utils/express.d.ts
CHANGED
|
@@ -28,4 +28,10 @@ export declare function sendJSONResponse(res: Response, status?: number, content
|
|
|
28
28
|
* Returns a middleware function.
|
|
29
29
|
*/
|
|
30
30
|
export declare function allowMethods(methods?: string[], message?: string): Handler;
|
|
31
|
+
/**
|
|
32
|
+
*
|
|
33
|
+
* @param {*} roles
|
|
34
|
+
* @param {*} condition
|
|
35
|
+
*/
|
|
36
|
+
export declare function authHandler(roles: string[], condition: string): Promise<(req: Request, res: Response, next: NextFunction) => void>;
|
|
31
37
|
//# sourceMappingURL=express.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../../src/utils/express.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAoB,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../../src/utils/express.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAoB,0CAA0C,CAAC;AAI3F;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,iBAAiB,CAAC,EAAE,cAAc,IAAI,KAAK,MAAM,CAAC,eAAe,CAAC,EAAE,KAAK,OAAO,4BAAQ,IAE5H,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,UAYxD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAE,MAAY,EAAE,OAAO,GAAE,MAAW,QAMzF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,MAAM,EAAO,EAAE,OAAO,GAAE,MAA6B,GAAG,OAAO,CAcpG;AAoBD;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,iBAErD,OAAO,OAAO,QAAQ,QAAQ,YAAY,WAkCxD"}
|
package/build/utils/express.js
CHANGED
|
@@ -6,8 +6,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.validateSchema = validateSchema;
|
|
7
7
|
exports.sendJSONResponse = sendJSONResponse;
|
|
8
8
|
exports.allowMethods = allowMethods;
|
|
9
|
+
exports.authHandler = authHandler;
|
|
9
10
|
const http_errors_1 = __importDefault(require("http-errors"));
|
|
10
11
|
const express_validator_1 = require("express-validator");
|
|
12
|
+
const nx_frame_be_1 = require("@nextage/nx-frame-be");
|
|
13
|
+
const constants_1 = require("../constants");
|
|
11
14
|
/**
|
|
12
15
|
*
|
|
13
16
|
* @param schema
|
|
@@ -74,4 +77,36 @@ function normalizeAllowedMethods(methods) {
|
|
|
74
77
|
return methods.filter(method => typeof method === 'string')
|
|
75
78
|
.map(method => method.toUpperCase());
|
|
76
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
*
|
|
82
|
+
* @param {*} roles
|
|
83
|
+
* @param {*} condition
|
|
84
|
+
*/
|
|
85
|
+
async function authHandler(roles, condition) {
|
|
86
|
+
return (req, res, next) => {
|
|
87
|
+
const user = (0, nx_frame_be_1.getAttr)(req, 'context.user');
|
|
88
|
+
if (!user) {
|
|
89
|
+
sendJSONResponse(res, 401, constants_1.RES_CODE.AUTH_REQUIRED);
|
|
90
|
+
next(new nx_frame_be_1.AuthenticationError('messages.authentication.required'));
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
if (roles) {
|
|
94
|
+
let hasRoles = true;
|
|
95
|
+
switch (condition) {
|
|
96
|
+
case '&&':
|
|
97
|
+
hasRoles = roles.every(role => user.roles.indexOf(role) >= 0);
|
|
98
|
+
break;
|
|
99
|
+
case '||':
|
|
100
|
+
default:
|
|
101
|
+
hasRoles = roles.some(role => user.roles.indexOf(role) >= 0);
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
if (!hasRoles) {
|
|
105
|
+
sendJSONResponse(res, 401, constants_1.RES_CODE.FORBIDDEN);
|
|
106
|
+
throw new nx_frame_be_1.ForbiddenError('messages.authorization.failed');
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
next();
|
|
110
|
+
};
|
|
111
|
+
}
|
|
77
112
|
//# sourceMappingURL=express.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express.js","sourceRoot":"","sources":["../../src/utils/express.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"express.js","sourceRoot":"","sources":["../../src/utils/express.ts"],"names":[],"mappings":"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"}
|