@nocobase/acl 0.9.2-alpha.2 → 0.9.2-alpha.3
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/lib/acl.d.ts +1 -1
- package/lib/acl.js +29 -12
- package/lib/allow-manager.js +1 -1
- package/package.json +4 -4
package/lib/acl.d.ts
CHANGED
|
@@ -65,7 +65,7 @@ export declare class ACL extends EventEmitter {
|
|
|
65
65
|
use(fn: any, options?: ToposortOptions): void;
|
|
66
66
|
allow(resourceName: string, actionNames: string[] | string, condition?: string | ConditionFunc): void;
|
|
67
67
|
skip(resourceName: string, actionNames: string[] | string, condition?: string | ConditionFunc): void;
|
|
68
|
-
parseJsonTemplate(json: any, ctx: any): any
|
|
68
|
+
parseJsonTemplate(json: any, ctx: any): Promise<any>;
|
|
69
69
|
middleware(): (ctx: any, next: any) => Promise<void>;
|
|
70
70
|
getActionParams(ctx: any): Promise<void>;
|
|
71
71
|
addFixedParams(resource: string, action: string, merger: Merger): void;
|
package/lib/acl.js
CHANGED
|
@@ -18,13 +18,6 @@ function _events() {
|
|
|
18
18
|
};
|
|
19
19
|
return data;
|
|
20
20
|
}
|
|
21
|
-
function _jsonTemplates() {
|
|
22
|
-
const data = _interopRequireDefault(require("json-templates"));
|
|
23
|
-
_jsonTemplates = function _jsonTemplates() {
|
|
24
|
-
return data;
|
|
25
|
-
};
|
|
26
|
-
return data;
|
|
27
|
-
}
|
|
28
21
|
function _koaCompose() {
|
|
29
22
|
const data = _interopRequireDefault(require("koa-compose"));
|
|
30
23
|
_koaCompose = function _koaCompose() {
|
|
@@ -130,7 +123,7 @@ class ACL extends _events().default {
|
|
|
130
123
|
if (params && resourcerAction.mergeParams) {
|
|
131
124
|
var _ctx$log3;
|
|
132
125
|
const filteredParams = filterParams(ctx, resourceName, params);
|
|
133
|
-
const parsedParams = acl.parseJsonTemplate(filteredParams, ctx);
|
|
126
|
+
const parsedParams = yield acl.parseJsonTemplate(filteredParams, ctx);
|
|
134
127
|
ctx.permission.parsedParams = parsedParams;
|
|
135
128
|
((_ctx$log3 = ctx.log) === null || _ctx$log3 === void 0 ? void 0 : _ctx$log3.info) && ctx.log.info('acl parsedParams', parsedParams);
|
|
136
129
|
ctx.permission.rawParams = _lodash().default.cloneDeep(resourcerAction.params);
|
|
@@ -311,11 +304,35 @@ class ACL extends _events().default {
|
|
|
311
304
|
}
|
|
312
305
|
}
|
|
313
306
|
parseJsonTemplate(json, ctx) {
|
|
314
|
-
return (
|
|
315
|
-
|
|
316
|
-
|
|
307
|
+
return _asyncToGenerator(function* () {
|
|
308
|
+
if (json.filter) {
|
|
309
|
+
var _ctx$logger, _ctx$logger$info, _ctx$get, _ctx$logger2, _ctx$logger2$info;
|
|
310
|
+
(_ctx$logger = ctx.logger) === null || _ctx$logger === void 0 ? void 0 : (_ctx$logger$info = _ctx$logger.info) === null || _ctx$logger$info === void 0 ? void 0 : _ctx$logger$info.call(_ctx$logger, 'parseJsonTemplate.raw', JSON.parse(JSON.stringify(json.filter)));
|
|
311
|
+
const timezone = ctx === null || ctx === void 0 ? void 0 : (_ctx$get = ctx.get) === null || _ctx$get === void 0 ? void 0 : _ctx$get.call(ctx, 'x-timezone');
|
|
312
|
+
const state = JSON.parse(JSON.stringify(ctx.state));
|
|
313
|
+
const filter = yield (0, _utils().parseFilter)(json.filter, {
|
|
314
|
+
timezone,
|
|
315
|
+
now: new Date().toISOString(),
|
|
316
|
+
vars: {
|
|
317
|
+
ctx: {
|
|
318
|
+
state
|
|
319
|
+
},
|
|
320
|
+
$user: function () {
|
|
321
|
+
var _$user = _asyncToGenerator(function* () {
|
|
322
|
+
return state.currentUser;
|
|
323
|
+
});
|
|
324
|
+
function $user() {
|
|
325
|
+
return _$user.apply(this, arguments);
|
|
326
|
+
}
|
|
327
|
+
return $user;
|
|
328
|
+
}()
|
|
329
|
+
}
|
|
330
|
+
});
|
|
331
|
+
json.filter = filter;
|
|
332
|
+
(_ctx$logger2 = ctx.logger) === null || _ctx$logger2 === void 0 ? void 0 : (_ctx$logger2$info = _ctx$logger2.info) === null || _ctx$logger2$info === void 0 ? void 0 : _ctx$logger2$info.call(_ctx$logger2, 'parseJsonTemplate.parsed', filter);
|
|
317
333
|
}
|
|
318
|
-
|
|
334
|
+
return json;
|
|
335
|
+
})();
|
|
319
336
|
}
|
|
320
337
|
middleware() {
|
|
321
338
|
const acl = this;
|
package/lib/allow-manager.js
CHANGED
|
@@ -106,7 +106,7 @@ class AllowManager {
|
|
|
106
106
|
const _ctx$action = ctx.action,
|
|
107
107
|
resourceName = _ctx$action.resourceName,
|
|
108
108
|
actionName = _ctx$action.actionName;
|
|
109
|
-
|
|
109
|
+
const skip = yield _this2.acl.allowManager.isAllowed(resourceName, actionName, ctx);
|
|
110
110
|
if (skip) {
|
|
111
111
|
ctx.permission = _objectSpread(_objectSpread({}, ctx.permission || {}), {}, {
|
|
112
112
|
skip: true
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nocobase/acl",
|
|
3
|
-
"version": "0.9.2-alpha.
|
|
3
|
+
"version": "0.9.2-alpha.3",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"main": "./lib/index.js",
|
|
7
7
|
"types": "./lib/index.d.ts",
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"@nocobase/resourcer": "0.9.2-alpha.
|
|
10
|
-
"@nocobase/utils": "0.9.2-alpha.
|
|
9
|
+
"@nocobase/resourcer": "0.9.2-alpha.3",
|
|
10
|
+
"@nocobase/utils": "0.9.2-alpha.3",
|
|
11
11
|
"json-templates": "^4.2.0",
|
|
12
12
|
"minimatch": "^5.1.1"
|
|
13
13
|
},
|
|
@@ -16,5 +16,5 @@
|
|
|
16
16
|
"url": "git+https://github.com/nocobase/nocobase.git",
|
|
17
17
|
"directory": "packages/acl"
|
|
18
18
|
},
|
|
19
|
-
"gitHead": "
|
|
19
|
+
"gitHead": "b6b5f9372202d942c97d2d90a4197e060db05124"
|
|
20
20
|
}
|