@nocobase/plugin-acl 0.11.1-alpha.5 → 0.12.0-alpha.2

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.
Files changed (96) hide show
  1. package/client.d.ts +2 -3
  2. package/client.js +1 -1
  3. package/dist/client/index.js +11 -0
  4. package/{lib/server → dist}/index.d.ts +1 -0
  5. package/dist/index.js +18 -0
  6. package/{src/server/actions/available-actions.ts → dist/server/actions/available-actions.js} +7 -5
  7. package/{src/server/actions/role-check.ts → dist/server/actions/role-check.js} +17 -22
  8. package/dist/server/actions/role-collections.js +53 -0
  9. package/dist/server/actions/user-setDefaultRole.js +43 -0
  10. package/dist/server/collections/roles-users.js +10 -0
  11. package/dist/server/collections/roles.js +103 -0
  12. package/dist/server/collections/rolesResources.js +35 -0
  13. package/dist/server/collections/rolesResourcesActions.js +33 -0
  14. package/dist/server/collections/rolesResourcesScopes.js +27 -0
  15. package/dist/server/collections/users.js +35 -0
  16. package/dist/server/index.js +11 -0
  17. package/dist/server/middlewares/setCurrentRole.js +31 -0
  18. package/dist/server/migrations/20221214072638-set-role-snippets.js +25 -0
  19. package/dist/server/model/RoleModel.js +23 -0
  20. package/dist/server/model/RoleResourceActionModel.js +64 -0
  21. package/dist/server/model/RoleResourceModel.js +55 -0
  22. package/dist/server/server.js +709 -0
  23. package/package.json +12 -21
  24. package/server.d.ts +3 -3
  25. package/server.js +1 -1
  26. package/lib/client/index.js +0 -22
  27. package/lib/index.js +0 -13
  28. package/lib/server/actions/available-actions.js +0 -34
  29. package/lib/server/actions/role-check.js +0 -77
  30. package/lib/server/actions/role-collections.js +0 -98
  31. package/lib/server/actions/user-setDefaultRole.js +0 -52
  32. package/lib/server/collections/roles-users.js +0 -16
  33. package/lib/server/collections/roles.js +0 -92
  34. package/lib/server/collections/rolesResources.js +0 -31
  35. package/lib/server/collections/rolesResourcesActions.js +0 -31
  36. package/lib/server/collections/rolesResourcesScopes.js +0 -25
  37. package/lib/server/collections/users.js +0 -41
  38. package/lib/server/index.js +0 -13
  39. package/lib/server/middlewares/setCurrentRole.js +0 -45
  40. package/lib/server/migrations/20221214072638-set-role-snippets.js +0 -43
  41. package/lib/server/model/RoleModel.js +0 -35
  42. package/lib/server/model/RoleResourceActionModel.js +0 -91
  43. package/lib/server/model/RoleResourceModel.js +0 -106
  44. package/lib/server/server.js +0 -947
  45. package/src/client/index.ts +0 -8
  46. package/src/index.ts +0 -1
  47. package/src/server/__tests__/acl.test.ts +0 -835
  48. package/src/server/__tests__/actions.test.ts +0 -141
  49. package/src/server/__tests__/association-field.test.ts +0 -413
  50. package/src/server/__tests__/configuration.test.ts +0 -70
  51. package/src/server/__tests__/list-action.test.ts +0 -446
  52. package/src/server/__tests__/middleware.test.ts +0 -210
  53. package/src/server/__tests__/own.test.ts +0 -124
  54. package/src/server/__tests__/prepare.ts +0 -20
  55. package/src/server/__tests__/role-check.test.ts +0 -46
  56. package/src/server/__tests__/role-resource.test.ts +0 -177
  57. package/src/server/__tests__/role-user.test.ts +0 -127
  58. package/src/server/__tests__/role.test.ts +0 -118
  59. package/src/server/__tests__/scope.test.ts +0 -55
  60. package/src/server/__tests__/setCurrentRole.test.ts +0 -86
  61. package/src/server/__tests__/snippets.test.ts +0 -35
  62. package/src/server/__tests__/users.test.ts +0 -136
  63. package/src/server/__tests__/write-role-to-acl.test.ts +0 -41
  64. package/src/server/actions/role-collections.ts +0 -95
  65. package/src/server/actions/user-setDefaultRole.ts +0 -47
  66. package/src/server/collections/roles-users.ts +0 -8
  67. package/src/server/collections/roles.ts +0 -101
  68. package/src/server/collections/rolesResources.ts +0 -33
  69. package/src/server/collections/rolesResourcesActions.ts +0 -31
  70. package/src/server/collections/rolesResourcesScopes.ts +0 -25
  71. package/src/server/collections/users.ts +0 -31
  72. package/src/server/index.ts +0 -1
  73. package/src/server/middlewares/setCurrentRole.ts +0 -35
  74. package/src/server/migrations/20221214072638-set-role-snippets.ts +0 -23
  75. package/src/server/model/RoleModel.ts +0 -23
  76. package/src/server/model/RoleResourceActionModel.ts +0 -95
  77. package/src/server/model/RoleResourceModel.ts +0 -74
  78. package/src/server/server.ts +0 -854
  79. /package/{lib → dist}/client/index.d.ts +0 -0
  80. /package/{lib → dist}/server/actions/available-actions.d.ts +0 -0
  81. /package/{lib → dist}/server/actions/role-check.d.ts +0 -0
  82. /package/{lib → dist}/server/actions/role-collections.d.ts +0 -0
  83. /package/{lib → dist}/server/actions/user-setDefaultRole.d.ts +0 -0
  84. /package/{lib → dist}/server/collections/roles-users.d.ts +0 -0
  85. /package/{lib → dist}/server/collections/roles.d.ts +0 -0
  86. /package/{lib → dist}/server/collections/rolesResources.d.ts +0 -0
  87. /package/{lib → dist}/server/collections/rolesResourcesActions.d.ts +0 -0
  88. /package/{lib → dist}/server/collections/rolesResourcesScopes.d.ts +0 -0
  89. /package/{lib → dist}/server/collections/users.d.ts +0 -0
  90. /package/{lib → dist/server}/index.d.ts +0 -0
  91. /package/{lib → dist}/server/middlewares/setCurrentRole.d.ts +0 -0
  92. /package/{lib → dist}/server/migrations/20221214072638-set-role-snippets.d.ts +0 -0
  93. /package/{lib → dist}/server/model/RoleModel.d.ts +0 -0
  94. /package/{lib → dist}/server/model/RoleResourceActionModel.d.ts +0 -0
  95. /package/{lib → dist}/server/model/RoleResourceModel.d.ts +0 -0
  96. /package/{lib → dist}/server/server.d.ts +0 -0
@@ -1,45 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.setCurrentRole = setCurrentRole;
7
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
8
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
9
- function setCurrentRole(_x, _x2) {
10
- return _setCurrentRole.apply(this, arguments);
11
- }
12
- function _setCurrentRole() {
13
- _setCurrentRole = _asyncToGenerator(function* (ctx, next) {
14
- const currentRole = ctx.get('X-Role');
15
- if (currentRole === 'anonymous') {
16
- ctx.state.currentRole = currentRole;
17
- return next();
18
- }
19
- if (!ctx.state.currentUser) {
20
- return next();
21
- }
22
- const repository = ctx.db.getRepository('users.roles', ctx.state.currentUser.id);
23
- const roles = yield repository.find();
24
- ctx.state.currentUser.setDataValue('roles', roles);
25
- // 1. If the X-Role is set, use the specified role
26
- if (currentRole) {
27
- var _roles$find;
28
- ctx.state.currentRole = (_roles$find = roles.find(role => role.name === currentRole)) === null || _roles$find === void 0 ? void 0 : _roles$find.name;
29
- }
30
- // 2. If the X-Role is not set, use the default role
31
- else {
32
- var _ref;
33
- const defaultRole = roles.find(item => {
34
- var _item$rolesUsers;
35
- return item === null || item === void 0 ? void 0 : (_item$rolesUsers = item.rolesUsers) === null || _item$rolesUsers === void 0 ? void 0 : _item$rolesUsers.default;
36
- });
37
- ctx.state.currentRole = (_ref = defaultRole || roles[0]) === null || _ref === void 0 ? void 0 : _ref.name;
38
- }
39
- if (!ctx.state.currentRole) {
40
- return ctx.throw(401, 'User role not found');
41
- }
42
- yield next();
43
- });
44
- return _setCurrentRole.apply(this, arguments);
45
- }
@@ -1,43 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- function _server() {
8
- const data = require("@nocobase/server");
9
- _server = function _server() {
10
- return data;
11
- };
12
- return data;
13
- }
14
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
15
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
16
- class _default extends _server().Migration {
17
- up() {
18
- var _this = this;
19
- return _asyncToGenerator(function* () {
20
- const result = yield _this.app.version.satisfies('<0.9.3-alpha.1');
21
- if (!result) {
22
- return;
23
- }
24
- yield _this.app.db.getRepository('roles').update({
25
- filter: {
26
- $or: [{
27
- allowConfigure: true
28
- }, {
29
- name: 'root'
30
- }]
31
- },
32
- values: {
33
- snippets: ['ui.*', 'pm', 'pm.*'],
34
- allowConfigure: false
35
- }
36
- });
37
- })();
38
- }
39
- down() {
40
- return _asyncToGenerator(function* () {})();
41
- }
42
- }
43
- exports.default = _default;
@@ -1,35 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.RoleModel = void 0;
7
- function _database() {
8
- const data = require("@nocobase/database");
9
- _database = function _database() {
10
- return data;
11
- };
12
- return data;
13
- }
14
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
16
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
18
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
19
- class RoleModel extends _database().Model {
20
- writeToAcl(options) {
21
- const acl = options.acl;
22
- const roleName = this.get('name');
23
- let role = acl.getRole(roleName);
24
- if (!role) {
25
- role = acl.define({
26
- role: roleName
27
- });
28
- }
29
- role.setStrategy(_objectSpread(_objectSpread({}, this.get('strategy') || {}), {}, {
30
- allowConfigure: this.get('allowConfigure')
31
- }));
32
- role.snippets = new Set(this.get('snippets'));
33
- }
34
- }
35
- exports.RoleModel = RoleModel;
@@ -1,91 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.RoleResourceActionModel = void 0;
7
- function _database() {
8
- const data = require("@nocobase/database");
9
- _database = function _database() {
10
- return data;
11
- };
12
- return data;
13
- }
14
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
15
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
16
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
17
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
18
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
19
- class RoleResourceActionModel extends _database().Model {
20
- writeToACL(options) {
21
- var _this = this;
22
- return _asyncToGenerator(function* () {
23
- // @ts-ignore
24
- const db = _this.constructor.database;
25
- const resourceName = options.resourceName,
26
- role = options.role,
27
- acl = options.acl,
28
- associationFieldsActions = options.associationFieldsActions,
29
- grantHelper = options.grantHelper;
30
- const actionName = _this.get('name');
31
- const fields = _this.get('fields');
32
- const actionPath = `${resourceName}:${actionName}`;
33
- const actionParams = {
34
- fields
35
- };
36
- // @ts-ignore
37
- const scope = yield _this.getScope();
38
- if (scope) {
39
- actionParams['own'] = scope.get('key') === 'own';
40
- actionParams['filter'] = scope.get('scope');
41
- }
42
- role.grantAction(actionPath, actionParams);
43
- const collection = db.getCollection(resourceName);
44
- if (!collection) {
45
- return;
46
- }
47
- const availableAction = acl.resolveActionAlias(actionName);
48
- var _iterator = _createForOfIteratorHelper(fields),
49
- _step;
50
- try {
51
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
52
- var _associationFieldsAct;
53
- const field = _step.value;
54
- const collectionField = collection.getField(field);
55
- if (!collectionField) {
56
- console.log(`field ${field} does not exist at ${collection.name}`);
57
- continue;
58
- }
59
- const fieldType = collectionField.get('type');
60
- const fieldActions = associationFieldsActions === null || associationFieldsActions === void 0 ? void 0 : (_associationFieldsAct = associationFieldsActions[fieldType]) === null || _associationFieldsAct === void 0 ? void 0 : _associationFieldsAct[availableAction];
61
- const fieldTarget = collectionField.get('target');
62
- if (fieldActions) {
63
- // grant association actions to role
64
- const associationActions = fieldActions.associationActions || [];
65
- associationActions.forEach(associationAction => {
66
- const actionName = `${resourceName}.${collectionField.get('name')}:${associationAction}`;
67
- role.grantAction(actionName);
68
- });
69
- const targetActions = fieldActions.targetActions || [];
70
- targetActions.forEach(targetAction => {
71
- const targetActionPath = `${fieldTarget}:${targetAction}`;
72
- const existsAction = role.getActionParams(targetActionPath);
73
- if (existsAction) {
74
- return;
75
- }
76
- // set resource target action with current resourceName
77
- grantHelper.resourceTargetActionMap.set(`${role.name}.${resourceName}`, [...(grantHelper.resourceTargetActionMap.get(resourceName) || []), targetActionPath]);
78
- grantHelper.targetActionResourceMap.set(targetActionPath, [...(grantHelper.targetActionResourceMap.get(targetActionPath) || []), `${role.name}.${resourceName}`]);
79
- role.grantAction(targetActionPath);
80
- });
81
- }
82
- }
83
- } catch (err) {
84
- _iterator.e(err);
85
- } finally {
86
- _iterator.f();
87
- }
88
- })();
89
- }
90
- }
91
- exports.RoleResourceActionModel = RoleResourceActionModel;
@@ -1,106 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.RoleResourceModel = void 0;
7
- function _acl() {
8
- const data = require("@nocobase/acl");
9
- _acl = function _acl() {
10
- return data;
11
- };
12
- return data;
13
- }
14
- function _database() {
15
- const data = require("@nocobase/database");
16
- _database = function _database() {
17
- return data;
18
- };
19
- return data;
20
- }
21
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
22
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
23
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
24
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
25
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
26
- class RoleResourceModel extends _database().Model {
27
- revoke(options) {
28
- return _asyncToGenerator(function* () {
29
- const role = options.role,
30
- resourceName = options.resourceName,
31
- grantHelper = options.grantHelper;
32
- role.revokeResource(resourceName);
33
- const targetActions = grantHelper.resourceTargetActionMap.get(`${role.name}.${resourceName}`) || [];
34
- var _iterator = _createForOfIteratorHelper(targetActions),
35
- _step;
36
- try {
37
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
38
- const targetAction = _step.value;
39
- const targetActionResource = (grantHelper.targetActionResourceMap.get(targetAction) || []).filter(item => `${role.name}.${resourceName}` !== item);
40
- grantHelper.targetActionResourceMap.set(targetAction, targetActionResource);
41
- if (targetActionResource.length == 0) {
42
- role.revokeAction(targetAction);
43
- }
44
- }
45
- } catch (err) {
46
- _iterator.e(err);
47
- } finally {
48
- _iterator.f();
49
- }
50
- grantHelper.resourceTargetActionMap.set(`${role.name}.${resourceName}`, []);
51
- })();
52
- }
53
- writeToACL(options) {
54
- var _this = this;
55
- return _asyncToGenerator(function* () {
56
- const acl = options.acl,
57
- associationFieldsActions = options.associationFieldsActions,
58
- grantHelper = options.grantHelper;
59
- const resourceName = _this.get('name');
60
- const roleName = _this.get('roleName');
61
- const role = acl.getRole(roleName);
62
- if (!role) {
63
- console.log(`${roleName} role does not exist`);
64
- return;
65
- }
66
- // revoke resource of role
67
- yield _this.revoke({
68
- role,
69
- resourceName,
70
- grantHelper
71
- });
72
- // @ts-ignore
73
- if (_this.usingActionsConfig === false) {
74
- return;
75
- }
76
- const resource = new (_acl().ACLResource)({
77
- role,
78
- name: resourceName
79
- });
80
- role.resources.set(resourceName, resource);
81
- // @ts-ignore
82
- const actions = yield _this.getActions({
83
- transaction: options.transaction
84
- });
85
- var _iterator2 = _createForOfIteratorHelper(actions),
86
- _step2;
87
- try {
88
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
89
- const action = _step2.value;
90
- yield action.writeToACL({
91
- acl,
92
- role,
93
- resourceName,
94
- associationFieldsActions,
95
- grantHelper: options.grantHelper
96
- });
97
- }
98
- } catch (err) {
99
- _iterator2.e(err);
100
- } finally {
101
- _iterator2.f();
102
- }
103
- })();
104
- }
105
- }
106
- exports.RoleResourceModel = RoleResourceModel;