@commercetools-frontend/permissions 20.9.4 → 20.10.6
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/dist/commercetools-frontend-permissions.cjs.dev.js +54 -54
- package/dist/commercetools-frontend-permissions.cjs.prod.js +36 -36
- package/dist/commercetools-frontend-permissions.esm.js +2 -2
- package/dist/declarations/src/components/authorized/authorized.d.ts +50 -50
- package/dist/declarations/src/components/authorized/index.d.ts +2 -2
- package/dist/declarations/src/components/branch-on-permissions/branch-on-permissions.d.ts +24 -24
- package/dist/declarations/src/components/branch-on-permissions/index.d.ts +1 -1
- package/dist/declarations/src/components/restricted-by-permissions/index.d.ts +1 -1
- package/dist/declarations/src/components/restricted-by-permissions/restricted-by-permissions.d.ts +41 -41
- package/dist/declarations/src/hooks/use-is-authorized/index.d.ts +1 -1
- package/dist/declarations/src/hooks/use-is-authorized/use-is-authorized.d.ts +30 -30
- package/dist/declarations/src/index.d.ts +6 -6
- package/dist/declarations/src/utils/get-display-name.d.ts +3 -3
- package/dist/declarations/src/utils/has-permissions.d.ts +49 -49
- package/dist/declarations/src/version.d.ts +2 -2
- package/package.json +6 -10
|
@@ -52,8 +52,8 @@ var _findInstanceProperty__default = /*#__PURE__*/_interopDefault(_findInstanceP
|
|
|
52
52
|
var _Object$entries__default = /*#__PURE__*/_interopDefault(_Object$entries);
|
|
53
53
|
var upperFirst__default = /*#__PURE__*/_interopDefault(upperFirst);
|
|
54
54
|
|
|
55
|
-
// NOTE: This string will be replaced
|
|
56
|
-
var version =
|
|
55
|
+
// NOTE: This string will be replaced on build time with the package version.
|
|
56
|
+
var version = "20.10.6";
|
|
57
57
|
|
|
58
58
|
// Build the permission key from the definition to match it to the format coming from the API.
|
|
59
59
|
var toCanCase = function toCanCase(permissionName) {
|
|
@@ -61,7 +61,7 @@ var toCanCase = function toCanCase(permissionName) {
|
|
|
61
61
|
};
|
|
62
62
|
|
|
63
63
|
var getIsViewPermission = function getIsViewPermission(demandedPermission) {
|
|
64
|
-
return _startsWithInstanceProperty__default[
|
|
64
|
+
return _startsWithInstanceProperty__default["default"](demandedPermission).call(demandedPermission, 'View');
|
|
65
65
|
};
|
|
66
66
|
|
|
67
67
|
var toManageCase = function toManageCase(permissionName) {
|
|
@@ -98,12 +98,12 @@ var doesManagePermissionInferViewPermission = function doesManagePermissionInfer
|
|
|
98
98
|
|
|
99
99
|
|
|
100
100
|
var getImpliedPermissions = function getImpliedPermissions(permissions) {
|
|
101
|
-
var viewPermissions = _filterInstanceProperty__default[
|
|
102
|
-
return _startsWithInstanceProperty__default[
|
|
101
|
+
var viewPermissions = _filterInstanceProperty__default["default"](permissions).call(permissions, function (permission) {
|
|
102
|
+
return _startsWithInstanceProperty__default["default"](permission).call(permission, 'View');
|
|
103
103
|
});
|
|
104
104
|
|
|
105
|
-
var impliedPermissions = _filterInstanceProperty__default[
|
|
106
|
-
return _includesInstanceProperty__default[
|
|
105
|
+
var impliedPermissions = _filterInstanceProperty__default["default"](viewPermissions).call(viewPermissions, function (viewPermission) {
|
|
106
|
+
return _includesInstanceProperty__default["default"](permissions).call(permissions, toManageCase(viewPermission));
|
|
107
107
|
});
|
|
108
108
|
|
|
109
109
|
return impliedPermissions;
|
|
@@ -140,7 +140,7 @@ var hasActionRight = function hasActionRight(demandedActionRight, actualActionRi
|
|
|
140
140
|
// { canViewProducts: true, canManageOrders: false }
|
|
141
141
|
|
|
142
142
|
var hasEveryPermissions = function hasEveryPermissions(demandedPermissions, actualPermissions) {
|
|
143
|
-
return _everyInstanceProperty__default[
|
|
143
|
+
return _everyInstanceProperty__default["default"](demandedPermissions).call(demandedPermissions, function (permission) {
|
|
144
144
|
return hasPermission(permission, actualPermissions);
|
|
145
145
|
});
|
|
146
146
|
}; // Check that the user action rights match EVERY one of the required action rights.
|
|
@@ -154,7 +154,7 @@ var hasEveryPermissions = function hasEveryPermissions(demandedPermissions, actu
|
|
|
154
154
|
// { products: { canEditPrices: true, canPublishProducts: true } }
|
|
155
155
|
|
|
156
156
|
var hasEveryActionRight = function hasEveryActionRight(demandedActionRights, actualActionRights) {
|
|
157
|
-
return _everyInstanceProperty__default[
|
|
157
|
+
return _everyInstanceProperty__default["default"](demandedActionRights).call(demandedActionRights, function (actionRight) {
|
|
158
158
|
return hasActionRight(actionRight, actualActionRights);
|
|
159
159
|
});
|
|
160
160
|
}; // Check that the user permissions match SOME one of the required permissions.
|
|
@@ -165,7 +165,7 @@ var hasEveryActionRight = function hasEveryActionRight(demandedActionRights, act
|
|
|
165
165
|
// { canViewProducts: true, canManageOrders: false }
|
|
166
166
|
|
|
167
167
|
var hasSomePermissions = function hasSomePermissions(demandedPermissions, actualPermissions) {
|
|
168
|
-
return _someInstanceProperty__default[
|
|
168
|
+
return _someInstanceProperty__default["default"](demandedPermissions).call(demandedPermissions, function (permission) {
|
|
169
169
|
return hasPermission(permission, actualPermissions);
|
|
170
170
|
});
|
|
171
171
|
};
|
|
@@ -178,7 +178,7 @@ var getHasDemandedDataFence = function getHasDemandedDataFence(options) {
|
|
|
178
178
|
type: options.demandedDataFence.type,
|
|
179
179
|
group: options.demandedDataFence.group,
|
|
180
180
|
name: options.demandedDataFence.name,
|
|
181
|
-
actualDataFenceValues: _valuesInstanceProperty__default[
|
|
181
|
+
actualDataFenceValues: _valuesInstanceProperty__default["default"](options.actualDataFence.dataFenceValue)
|
|
182
182
|
});
|
|
183
183
|
|
|
184
184
|
if (!selectedDataFenceData) {
|
|
@@ -189,10 +189,10 @@ var getHasDemandedDataFence = function getHasDemandedDataFence(options) {
|
|
|
189
189
|
} // it is enough to only have a subset of demanded dataFence data belonging to actual dataFence values
|
|
190
190
|
|
|
191
191
|
|
|
192
|
-
return _someInstanceProperty__default[
|
|
192
|
+
return _someInstanceProperty__default["default"](selectedDataFenceData).call(selectedDataFenceData, function (value) {
|
|
193
193
|
var _context;
|
|
194
194
|
|
|
195
|
-
return _includesInstanceProperty__default[
|
|
195
|
+
return _includesInstanceProperty__default["default"](_context = _valuesInstanceProperty__default["default"](options.actualDataFence.dataFenceValue)).call(_context, value);
|
|
196
196
|
});
|
|
197
197
|
};
|
|
198
198
|
|
|
@@ -230,7 +230,7 @@ var getIsPermissionOverwritingDataFence = function getIsPermissionOverwritingDat
|
|
|
230
230
|
* Then the data fence itself takes precedence
|
|
231
231
|
*/
|
|
232
232
|
|
|
233
|
-
var demandedPermissionByDataFence = "Manage".concat(upperFirst__default[
|
|
233
|
+
var demandedPermissionByDataFence = "Manage".concat(upperFirst__default["default"](demandedDataFence.group));
|
|
234
234
|
if (hasExactPermission(demandedPermissionByDataFence, actualPermissions)) return true;
|
|
235
235
|
return false;
|
|
236
236
|
};
|
|
@@ -240,7 +240,7 @@ var hasSomeDataFence = function hasSomeDataFence(options) {
|
|
|
240
240
|
|
|
241
241
|
// Datafences applied should be combined with an OR, that is why we use
|
|
242
242
|
// `some` and not `every`
|
|
243
|
-
return _someInstanceProperty__default[
|
|
243
|
+
return _someInstanceProperty__default["default"](_context2 = options.demandedDataFences).call(_context2, function (demandedDataFence) {
|
|
244
244
|
var _context3;
|
|
245
245
|
|
|
246
246
|
// Given that dataFence structure on `applicationContext`, we get the value by a path
|
|
@@ -252,7 +252,7 @@ var hasSomeDataFence = function hasSomeDataFence(options) {
|
|
|
252
252
|
var actualDataFenceByTypeAndGroup = getDataFenceByTypeAndGroup(options.actualDataFences, demandedDataFence.type, demandedDataFence.group);
|
|
253
253
|
if (!actualDataFenceByTypeAndGroup) return false; // we try to find if the demanded dataFence is available inside the actual datafences
|
|
254
254
|
|
|
255
|
-
var specificActualDataFence = _findInstanceProperty__default[
|
|
255
|
+
var specificActualDataFence = _findInstanceProperty__default["default"](_context3 = _Object$entries__default["default"](actualDataFenceByTypeAndGroup)).call(_context3, function (_ref) {
|
|
256
256
|
var _ref2 = _slicedToArray(_ref, 2),
|
|
257
257
|
dataFenceName = _ref2[0],
|
|
258
258
|
dataFenceValue = _ref2[1];
|
|
@@ -289,7 +289,7 @@ var hasSomeDataFence = function hasSomeDataFence(options) {
|
|
|
289
289
|
// Log a warning only once, and not on each render.
|
|
290
290
|
var useWarning = function useWarning(condition, message) {
|
|
291
291
|
react.useEffect(function () {
|
|
292
|
-
process.env.NODE_ENV !== "production" ? warning__default[
|
|
292
|
+
process.env.NODE_ENV !== "production" ? warning__default["default"](condition, message) : void 0; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
293
293
|
}, []);
|
|
294
294
|
};
|
|
295
295
|
|
|
@@ -356,9 +356,9 @@ var getDisplayName = function getDisplayName(Component) {
|
|
|
356
356
|
return Component.displayName || Component.name || 'Component';
|
|
357
357
|
};
|
|
358
358
|
|
|
359
|
-
function ownKeys$1(object, enumerableOnly) { var keys = _Object$keys__default[
|
|
359
|
+
function ownKeys$1(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); if (enumerableOnly) { symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
360
360
|
|
|
361
|
-
function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context; _forEachInstanceProperty__default[
|
|
361
|
+
function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context; _forEachInstanceProperty__default["default"](_context = ownKeys$1(Object(source), true)).call(_context, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors__default["default"]) { _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)); } else { var _context2; _forEachInstanceProperty__default["default"](_context2 = ownKeys$1(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } } return target; }
|
|
362
362
|
var defaultProps = {
|
|
363
363
|
shouldMatchSomePermissions: false
|
|
364
364
|
};
|
|
@@ -378,24 +378,24 @@ var Authorized = function Authorized(props) {
|
|
|
378
378
|
};
|
|
379
379
|
|
|
380
380
|
Authorized.propTypes = {
|
|
381
|
-
demandedPermissions: _pt__default[
|
|
382
|
-
demandedActionRights: _pt__default[
|
|
383
|
-
group: _pt__default[
|
|
384
|
-
name: _pt__default[
|
|
381
|
+
demandedPermissions: _pt__default["default"].arrayOf(_pt__default["default"].string).isRequired,
|
|
382
|
+
demandedActionRights: _pt__default["default"].arrayOf(_pt__default["default"].shape({
|
|
383
|
+
group: _pt__default["default"].string.isRequired,
|
|
384
|
+
name: _pt__default["default"].string.isRequired
|
|
385
385
|
})),
|
|
386
|
-
demandedDataFences: _pt__default[
|
|
387
|
-
group: _pt__default[
|
|
388
|
-
name: _pt__default[
|
|
389
|
-
type: _pt__default[
|
|
386
|
+
demandedDataFences: _pt__default["default"].arrayOf(_pt__default["default"].shape({
|
|
387
|
+
group: _pt__default["default"].string.isRequired,
|
|
388
|
+
name: _pt__default["default"].string.isRequired,
|
|
389
|
+
type: _pt__default["default"].string.isRequired
|
|
390
390
|
})),
|
|
391
|
-
shouldMatchSomePermissions: _pt__default[
|
|
392
|
-
selectDataFenceData: _pt__default[
|
|
393
|
-
projectPermissions: _pt__default[
|
|
394
|
-
permissions: _pt__default[
|
|
395
|
-
actionRights: _pt__default[
|
|
396
|
-
dataFences: _pt__default[
|
|
391
|
+
shouldMatchSomePermissions: _pt__default["default"].bool,
|
|
392
|
+
selectDataFenceData: _pt__default["default"].func,
|
|
393
|
+
projectPermissions: _pt__default["default"].shape({
|
|
394
|
+
permissions: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].oneOf([null])]),
|
|
395
|
+
actionRights: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].oneOf([null])]),
|
|
396
|
+
dataFences: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].oneOf([null])])
|
|
397
397
|
}),
|
|
398
|
-
render: _pt__default[
|
|
398
|
+
render: _pt__default["default"].func.isRequired
|
|
399
399
|
};
|
|
400
400
|
Authorized.displayName = 'Authorized';
|
|
401
401
|
Authorized.defaultProps = defaultProps;
|
|
@@ -428,7 +428,7 @@ var getHasChildren = function getHasChildren(children) {
|
|
|
428
428
|
|
|
429
429
|
|
|
430
430
|
var RestrictedByPermissions = function RestrictedByPermissions(props) {
|
|
431
|
-
!!(typeof props.children === 'function' && !isNil__default[
|
|
431
|
+
!!(typeof props.children === 'function' && !isNil__default["default"](props.unauthorizedComponent)) ? process.env.NODE_ENV !== "production" ? invariant__default["default"](false, '@commercetools-frontend/permissions/RestrictedByPermissions: You provided both `children` and `unauthorizedComponent`. Please provide only one of them.') : invariant__default["default"](false) : void 0;
|
|
432
432
|
return jsxRuntime.jsx(Authorized, {
|
|
433
433
|
shouldMatchSomePermissions: props.shouldMatchSomePermissions,
|
|
434
434
|
demandedPermissions: props.permissions,
|
|
@@ -458,32 +458,32 @@ var RestrictedByPermissions = function RestrictedByPermissions(props) {
|
|
|
458
458
|
};
|
|
459
459
|
|
|
460
460
|
RestrictedByPermissions.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
461
|
-
shouldMatchSomePermissions: _pt__default[
|
|
462
|
-
permissions: _pt__default[
|
|
463
|
-
actionRights: _pt__default[
|
|
464
|
-
group: _pt__default[
|
|
465
|
-
name: _pt__default[
|
|
461
|
+
shouldMatchSomePermissions: _pt__default["default"].bool,
|
|
462
|
+
permissions: _pt__default["default"].arrayOf(_pt__default["default"].string).isRequired,
|
|
463
|
+
actionRights: _pt__default["default"].arrayOf(_pt__default["default"].shape({
|
|
464
|
+
group: _pt__default["default"].string.isRequired,
|
|
465
|
+
name: _pt__default["default"].string.isRequired
|
|
466
466
|
})),
|
|
467
|
-
dataFences: _pt__default[
|
|
468
|
-
group: _pt__default[
|
|
469
|
-
name: _pt__default[
|
|
470
|
-
type: _pt__default[
|
|
467
|
+
dataFences: _pt__default["default"].arrayOf(_pt__default["default"].shape({
|
|
468
|
+
group: _pt__default["default"].string.isRequired,
|
|
469
|
+
name: _pt__default["default"].string.isRequired,
|
|
470
|
+
type: _pt__default["default"].string.isRequired
|
|
471
471
|
})),
|
|
472
|
-
selectDataFenceData: _pt__default[
|
|
473
|
-
unauthorizedComponent: _pt__default[
|
|
474
|
-
projectPermissions: _pt__default[
|
|
475
|
-
permissions: _pt__default[
|
|
476
|
-
actionRights: _pt__default[
|
|
477
|
-
dataFences: _pt__default[
|
|
472
|
+
selectDataFenceData: _pt__default["default"].func,
|
|
473
|
+
unauthorizedComponent: _pt__default["default"].elementType,
|
|
474
|
+
projectPermissions: _pt__default["default"].shape({
|
|
475
|
+
permissions: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].oneOf([null])]),
|
|
476
|
+
actionRights: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].oneOf([null])]),
|
|
477
|
+
dataFences: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].oneOf([null])])
|
|
478
478
|
}),
|
|
479
|
-
render: _pt__default[
|
|
480
|
-
children: _pt__default[
|
|
479
|
+
render: _pt__default["default"].func,
|
|
480
|
+
children: _pt__default["default"].oneOfType([_pt__default["default"].func, _pt__default["default"].node])
|
|
481
481
|
} : {};
|
|
482
482
|
RestrictedByPermissions.displayName = 'RestrictedByPermissions';
|
|
483
483
|
|
|
484
|
-
function ownKeys(object, enumerableOnly) { var keys = _Object$keys__default[
|
|
484
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); if (enumerableOnly) { symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
485
485
|
|
|
486
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context; _forEachInstanceProperty__default[
|
|
486
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context; _forEachInstanceProperty__default["default"](_context = ownKeys(Object(source), true)).call(_context, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors__default["default"]) { _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)); } else { var _context2; _forEachInstanceProperty__default["default"](_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } } return target; }
|
|
487
487
|
|
|
488
488
|
var branchOnPermissions = function branchOnPermissions(demandedPermissions, FallbackComponent) {
|
|
489
489
|
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
|
|
@@ -51,8 +51,8 @@ var _findInstanceProperty__default = /*#__PURE__*/_interopDefault(_findInstanceP
|
|
|
51
51
|
var _Object$entries__default = /*#__PURE__*/_interopDefault(_Object$entries);
|
|
52
52
|
var upperFirst__default = /*#__PURE__*/_interopDefault(upperFirst);
|
|
53
53
|
|
|
54
|
-
// NOTE: This string will be replaced
|
|
55
|
-
var version =
|
|
54
|
+
// NOTE: This string will be replaced on build time with the package version.
|
|
55
|
+
var version = "20.10.6";
|
|
56
56
|
|
|
57
57
|
// Build the permission key from the definition to match it to the format coming from the API.
|
|
58
58
|
var toCanCase = function toCanCase(permissionName) {
|
|
@@ -60,7 +60,7 @@ var toCanCase = function toCanCase(permissionName) {
|
|
|
60
60
|
};
|
|
61
61
|
|
|
62
62
|
var getIsViewPermission = function getIsViewPermission(demandedPermission) {
|
|
63
|
-
return _startsWithInstanceProperty__default[
|
|
63
|
+
return _startsWithInstanceProperty__default["default"](demandedPermission).call(demandedPermission, 'View');
|
|
64
64
|
};
|
|
65
65
|
|
|
66
66
|
var toManageCase = function toManageCase(permissionName) {
|
|
@@ -97,12 +97,12 @@ var doesManagePermissionInferViewPermission = function doesManagePermissionInfer
|
|
|
97
97
|
|
|
98
98
|
|
|
99
99
|
var getImpliedPermissions = function getImpliedPermissions(permissions) {
|
|
100
|
-
var viewPermissions = _filterInstanceProperty__default[
|
|
101
|
-
return _startsWithInstanceProperty__default[
|
|
100
|
+
var viewPermissions = _filterInstanceProperty__default["default"](permissions).call(permissions, function (permission) {
|
|
101
|
+
return _startsWithInstanceProperty__default["default"](permission).call(permission, 'View');
|
|
102
102
|
});
|
|
103
103
|
|
|
104
|
-
var impliedPermissions = _filterInstanceProperty__default[
|
|
105
|
-
return _includesInstanceProperty__default[
|
|
104
|
+
var impliedPermissions = _filterInstanceProperty__default["default"](viewPermissions).call(viewPermissions, function (viewPermission) {
|
|
105
|
+
return _includesInstanceProperty__default["default"](permissions).call(permissions, toManageCase(viewPermission));
|
|
106
106
|
});
|
|
107
107
|
|
|
108
108
|
return impliedPermissions;
|
|
@@ -139,7 +139,7 @@ var hasActionRight = function hasActionRight(demandedActionRight, actualActionRi
|
|
|
139
139
|
// { canViewProducts: true, canManageOrders: false }
|
|
140
140
|
|
|
141
141
|
var hasEveryPermissions = function hasEveryPermissions(demandedPermissions, actualPermissions) {
|
|
142
|
-
return _everyInstanceProperty__default[
|
|
142
|
+
return _everyInstanceProperty__default["default"](demandedPermissions).call(demandedPermissions, function (permission) {
|
|
143
143
|
return hasPermission(permission, actualPermissions);
|
|
144
144
|
});
|
|
145
145
|
}; // Check that the user action rights match EVERY one of the required action rights.
|
|
@@ -153,7 +153,7 @@ var hasEveryPermissions = function hasEveryPermissions(demandedPermissions, actu
|
|
|
153
153
|
// { products: { canEditPrices: true, canPublishProducts: true } }
|
|
154
154
|
|
|
155
155
|
var hasEveryActionRight = function hasEveryActionRight(demandedActionRights, actualActionRights) {
|
|
156
|
-
return _everyInstanceProperty__default[
|
|
156
|
+
return _everyInstanceProperty__default["default"](demandedActionRights).call(demandedActionRights, function (actionRight) {
|
|
157
157
|
return hasActionRight(actionRight, actualActionRights);
|
|
158
158
|
});
|
|
159
159
|
}; // Check that the user permissions match SOME one of the required permissions.
|
|
@@ -164,7 +164,7 @@ var hasEveryActionRight = function hasEveryActionRight(demandedActionRights, act
|
|
|
164
164
|
// { canViewProducts: true, canManageOrders: false }
|
|
165
165
|
|
|
166
166
|
var hasSomePermissions = function hasSomePermissions(demandedPermissions, actualPermissions) {
|
|
167
|
-
return _someInstanceProperty__default[
|
|
167
|
+
return _someInstanceProperty__default["default"](demandedPermissions).call(demandedPermissions, function (permission) {
|
|
168
168
|
return hasPermission(permission, actualPermissions);
|
|
169
169
|
});
|
|
170
170
|
};
|
|
@@ -177,7 +177,7 @@ var getHasDemandedDataFence = function getHasDemandedDataFence(options) {
|
|
|
177
177
|
type: options.demandedDataFence.type,
|
|
178
178
|
group: options.demandedDataFence.group,
|
|
179
179
|
name: options.demandedDataFence.name,
|
|
180
|
-
actualDataFenceValues: _valuesInstanceProperty__default[
|
|
180
|
+
actualDataFenceValues: _valuesInstanceProperty__default["default"](options.actualDataFence.dataFenceValue)
|
|
181
181
|
});
|
|
182
182
|
|
|
183
183
|
if (!selectedDataFenceData) {
|
|
@@ -188,10 +188,10 @@ var getHasDemandedDataFence = function getHasDemandedDataFence(options) {
|
|
|
188
188
|
} // it is enough to only have a subset of demanded dataFence data belonging to actual dataFence values
|
|
189
189
|
|
|
190
190
|
|
|
191
|
-
return _someInstanceProperty__default[
|
|
191
|
+
return _someInstanceProperty__default["default"](selectedDataFenceData).call(selectedDataFenceData, function (value) {
|
|
192
192
|
var _context;
|
|
193
193
|
|
|
194
|
-
return _includesInstanceProperty__default[
|
|
194
|
+
return _includesInstanceProperty__default["default"](_context = _valuesInstanceProperty__default["default"](options.actualDataFence.dataFenceValue)).call(_context, value);
|
|
195
195
|
});
|
|
196
196
|
};
|
|
197
197
|
|
|
@@ -229,7 +229,7 @@ var getIsPermissionOverwritingDataFence = function getIsPermissionOverwritingDat
|
|
|
229
229
|
* Then the data fence itself takes precedence
|
|
230
230
|
*/
|
|
231
231
|
|
|
232
|
-
var demandedPermissionByDataFence = "Manage".concat(upperFirst__default[
|
|
232
|
+
var demandedPermissionByDataFence = "Manage".concat(upperFirst__default["default"](demandedDataFence.group));
|
|
233
233
|
if (hasExactPermission(demandedPermissionByDataFence, actualPermissions)) return true;
|
|
234
234
|
return false;
|
|
235
235
|
};
|
|
@@ -239,7 +239,7 @@ var hasSomeDataFence = function hasSomeDataFence(options) {
|
|
|
239
239
|
|
|
240
240
|
// Datafences applied should be combined with an OR, that is why we use
|
|
241
241
|
// `some` and not `every`
|
|
242
|
-
return _someInstanceProperty__default[
|
|
242
|
+
return _someInstanceProperty__default["default"](_context2 = options.demandedDataFences).call(_context2, function (demandedDataFence) {
|
|
243
243
|
var _context3;
|
|
244
244
|
|
|
245
245
|
// Given that dataFence structure on `applicationContext`, we get the value by a path
|
|
@@ -251,7 +251,7 @@ var hasSomeDataFence = function hasSomeDataFence(options) {
|
|
|
251
251
|
var actualDataFenceByTypeAndGroup = getDataFenceByTypeAndGroup(options.actualDataFences, demandedDataFence.type, demandedDataFence.group);
|
|
252
252
|
if (!actualDataFenceByTypeAndGroup) return false; // we try to find if the demanded dataFence is available inside the actual datafences
|
|
253
253
|
|
|
254
|
-
var specificActualDataFence = _findInstanceProperty__default[
|
|
254
|
+
var specificActualDataFence = _findInstanceProperty__default["default"](_context3 = _Object$entries__default["default"](actualDataFenceByTypeAndGroup)).call(_context3, function (_ref) {
|
|
255
255
|
var _ref2 = _slicedToArray(_ref, 2),
|
|
256
256
|
dataFenceName = _ref2[0],
|
|
257
257
|
dataFenceValue = _ref2[1];
|
|
@@ -354,9 +354,9 @@ var getDisplayName = function getDisplayName(Component) {
|
|
|
354
354
|
return Component.displayName || Component.name || 'Component';
|
|
355
355
|
};
|
|
356
356
|
|
|
357
|
-
function ownKeys$1(object, enumerableOnly) { var keys = _Object$keys__default[
|
|
357
|
+
function ownKeys$1(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); if (enumerableOnly) { symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
358
358
|
|
|
359
|
-
function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context; _forEachInstanceProperty__default[
|
|
359
|
+
function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context; _forEachInstanceProperty__default["default"](_context = ownKeys$1(Object(source), true)).call(_context, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors__default["default"]) { _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)); } else { var _context2; _forEachInstanceProperty__default["default"](_context2 = ownKeys$1(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } } return target; }
|
|
360
360
|
var defaultProps = {
|
|
361
361
|
shouldMatchSomePermissions: false
|
|
362
362
|
};
|
|
@@ -376,24 +376,24 @@ var Authorized = function Authorized(props) {
|
|
|
376
376
|
};
|
|
377
377
|
|
|
378
378
|
Authorized.propTypes = {
|
|
379
|
-
demandedPermissions: _pt__default[
|
|
380
|
-
demandedActionRights: _pt__default[
|
|
381
|
-
group: _pt__default[
|
|
382
|
-
name: _pt__default[
|
|
379
|
+
demandedPermissions: _pt__default["default"].arrayOf(_pt__default["default"].string).isRequired,
|
|
380
|
+
demandedActionRights: _pt__default["default"].arrayOf(_pt__default["default"].shape({
|
|
381
|
+
group: _pt__default["default"].string.isRequired,
|
|
382
|
+
name: _pt__default["default"].string.isRequired
|
|
383
383
|
})),
|
|
384
|
-
demandedDataFences: _pt__default[
|
|
385
|
-
group: _pt__default[
|
|
386
|
-
name: _pt__default[
|
|
387
|
-
type: _pt__default[
|
|
384
|
+
demandedDataFences: _pt__default["default"].arrayOf(_pt__default["default"].shape({
|
|
385
|
+
group: _pt__default["default"].string.isRequired,
|
|
386
|
+
name: _pt__default["default"].string.isRequired,
|
|
387
|
+
type: _pt__default["default"].string.isRequired
|
|
388
388
|
})),
|
|
389
|
-
shouldMatchSomePermissions: _pt__default[
|
|
390
|
-
selectDataFenceData: _pt__default[
|
|
391
|
-
projectPermissions: _pt__default[
|
|
392
|
-
permissions: _pt__default[
|
|
393
|
-
actionRights: _pt__default[
|
|
394
|
-
dataFences: _pt__default[
|
|
389
|
+
shouldMatchSomePermissions: _pt__default["default"].bool,
|
|
390
|
+
selectDataFenceData: _pt__default["default"].func,
|
|
391
|
+
projectPermissions: _pt__default["default"].shape({
|
|
392
|
+
permissions: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].oneOf([null])]),
|
|
393
|
+
actionRights: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].oneOf([null])]),
|
|
394
|
+
dataFences: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].oneOf([null])])
|
|
395
395
|
}),
|
|
396
|
-
render: _pt__default[
|
|
396
|
+
render: _pt__default["default"].func.isRequired
|
|
397
397
|
};
|
|
398
398
|
Authorized.displayName = 'Authorized';
|
|
399
399
|
Authorized.defaultProps = defaultProps;
|
|
@@ -426,7 +426,7 @@ var getHasChildren = function getHasChildren(children) {
|
|
|
426
426
|
|
|
427
427
|
|
|
428
428
|
var RestrictedByPermissions = function RestrictedByPermissions(props) {
|
|
429
|
-
!!(typeof props.children === 'function' && !isNil__default[
|
|
429
|
+
!!(typeof props.children === 'function' && !isNil__default["default"](props.unauthorizedComponent)) ? invariant__default["default"](false) : void 0;
|
|
430
430
|
return jsxRuntime.jsx(Authorized, {
|
|
431
431
|
shouldMatchSomePermissions: props.shouldMatchSomePermissions,
|
|
432
432
|
demandedPermissions: props.permissions,
|
|
@@ -458,9 +458,9 @@ var RestrictedByPermissions = function RestrictedByPermissions(props) {
|
|
|
458
458
|
RestrictedByPermissions.propTypes = {};
|
|
459
459
|
RestrictedByPermissions.displayName = 'RestrictedByPermissions';
|
|
460
460
|
|
|
461
|
-
function ownKeys(object, enumerableOnly) { var keys = _Object$keys__default[
|
|
461
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); if (enumerableOnly) { symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
462
462
|
|
|
463
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context; _forEachInstanceProperty__default[
|
|
463
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context; _forEachInstanceProperty__default["default"](_context = ownKeys(Object(source), true)).call(_context, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors__default["default"]) { _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)); } else { var _context2; _forEachInstanceProperty__default["default"](_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } } return target; }
|
|
464
464
|
|
|
465
465
|
var branchOnPermissions = function branchOnPermissions(demandedPermissions, FallbackComponent) {
|
|
466
466
|
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
|
|
@@ -25,8 +25,8 @@ import _Object$entries from '@babel/runtime-corejs3/core-js-stable/object/entrie
|
|
|
25
25
|
import upperFirst from 'lodash/upperFirst';
|
|
26
26
|
import { jsx, Fragment } from '@emotion/react/jsx-runtime';
|
|
27
27
|
|
|
28
|
-
// NOTE: This string will be replaced
|
|
29
|
-
var version =
|
|
28
|
+
// NOTE: This string will be replaced on build time with the package version.
|
|
29
|
+
var version = "20.10.6";
|
|
30
30
|
|
|
31
31
|
// Build the permission key from the definition to match it to the format coming from the API.
|
|
32
32
|
var toCanCase = function toCanCase(permissionName) {
|
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
import type { TNormalizedPermissions, TNormalizedActionRights, TNormalizedDataFences } from '@commercetools-frontend/application-shell-connectors';
|
|
2
|
-
import { ComponentType, ReactNode } from 'react';
|
|
3
|
-
declare type TPermissionName = string;
|
|
4
|
-
declare type TActionRightName = string;
|
|
5
|
-
declare type TActionRightGroup = string;
|
|
6
|
-
declare type TDemandedActionRight = {
|
|
7
|
-
group: TActionRightGroup;
|
|
8
|
-
name: TActionRightName;
|
|
9
|
-
};
|
|
10
|
-
declare type TDemandedDataFence = {
|
|
11
|
-
group: string;
|
|
12
|
-
name: string;
|
|
13
|
-
type: string;
|
|
14
|
-
};
|
|
15
|
-
declare type TSelectDataFenceData = (demandedDataFenceWithActualValues: TDemandedDataFence & {
|
|
16
|
-
actualDataFenceValues: string[];
|
|
17
|
-
}) => string[] | null;
|
|
18
|
-
declare type TProjectPermissions = {
|
|
19
|
-
permissions: TNormalizedPermissions | null;
|
|
20
|
-
actionRights: TNormalizedActionRights | null;
|
|
21
|
-
dataFences: TNormalizedDataFences | null;
|
|
22
|
-
};
|
|
23
|
-
declare type Props = {
|
|
24
|
-
demandedPermissions: TPermissionName[];
|
|
25
|
-
demandedActionRights?: TDemandedActionRight[];
|
|
26
|
-
demandedDataFences?: TDemandedDataFence[];
|
|
27
|
-
shouldMatchSomePermissions?: boolean;
|
|
28
|
-
selectDataFenceData?: TSelectDataFenceData;
|
|
29
|
-
projectPermissions?: TProjectPermissions;
|
|
30
|
-
render: (isAuthorized: boolean) => ReactNode;
|
|
31
|
-
children?: never;
|
|
32
|
-
};
|
|
33
|
-
declare const Authorized: {
|
|
34
|
-
(props: Props): import("@emotion/react/jsx-runtime").JSX.Element;
|
|
35
|
-
displayName: string;
|
|
36
|
-
defaultProps: Pick<Props, "shouldMatchSomePermissions">;
|
|
37
|
-
};
|
|
38
|
-
declare type TInjectAuthorizedOptions<OwnProps extends {}> = {
|
|
39
|
-
shouldMatchSomePermissions?: boolean;
|
|
40
|
-
actionRights?: TDemandedActionRight[];
|
|
41
|
-
dataFences?: TDemandedDataFence[];
|
|
42
|
-
getSelectDataFenceData?: (ownProps: OwnProps) => TSelectDataFenceData;
|
|
43
|
-
};
|
|
44
|
-
declare const injectAuthorized: <OwnProps extends {
|
|
45
|
-
isAuthorized?: boolean | undefined;
|
|
46
|
-
}, InjectedProps extends OwnProps & {
|
|
47
|
-
[key: string]: boolean;
|
|
48
|
-
}>(demandedPermissions: TPermissionName[], options?: TInjectAuthorizedOptions<OwnProps>, propName?: string) => (Component: ComponentType<OwnProps>) => ComponentType<OwnProps & InjectedProps>;
|
|
49
|
-
export default Authorized;
|
|
50
|
-
export { injectAuthorized };
|
|
1
|
+
import type { TNormalizedPermissions, TNormalizedActionRights, TNormalizedDataFences } from '@commercetools-frontend/application-shell-connectors';
|
|
2
|
+
import { ComponentType, ReactNode } from 'react';
|
|
3
|
+
declare type TPermissionName = string;
|
|
4
|
+
declare type TActionRightName = string;
|
|
5
|
+
declare type TActionRightGroup = string;
|
|
6
|
+
declare type TDemandedActionRight = {
|
|
7
|
+
group: TActionRightGroup;
|
|
8
|
+
name: TActionRightName;
|
|
9
|
+
};
|
|
10
|
+
declare type TDemandedDataFence = {
|
|
11
|
+
group: string;
|
|
12
|
+
name: string;
|
|
13
|
+
type: string;
|
|
14
|
+
};
|
|
15
|
+
declare type TSelectDataFenceData = (demandedDataFenceWithActualValues: TDemandedDataFence & {
|
|
16
|
+
actualDataFenceValues: string[];
|
|
17
|
+
}) => string[] | null;
|
|
18
|
+
declare type TProjectPermissions = {
|
|
19
|
+
permissions: TNormalizedPermissions | null;
|
|
20
|
+
actionRights: TNormalizedActionRights | null;
|
|
21
|
+
dataFences: TNormalizedDataFences | null;
|
|
22
|
+
};
|
|
23
|
+
declare type Props = {
|
|
24
|
+
demandedPermissions: TPermissionName[];
|
|
25
|
+
demandedActionRights?: TDemandedActionRight[];
|
|
26
|
+
demandedDataFences?: TDemandedDataFence[];
|
|
27
|
+
shouldMatchSomePermissions?: boolean;
|
|
28
|
+
selectDataFenceData?: TSelectDataFenceData;
|
|
29
|
+
projectPermissions?: TProjectPermissions;
|
|
30
|
+
render: (isAuthorized: boolean) => ReactNode;
|
|
31
|
+
children?: never;
|
|
32
|
+
};
|
|
33
|
+
declare const Authorized: {
|
|
34
|
+
(props: Props): import("@emotion/react/jsx-runtime").JSX.Element;
|
|
35
|
+
displayName: string;
|
|
36
|
+
defaultProps: Pick<Props, "shouldMatchSomePermissions">;
|
|
37
|
+
};
|
|
38
|
+
declare type TInjectAuthorizedOptions<OwnProps extends {}> = {
|
|
39
|
+
shouldMatchSomePermissions?: boolean;
|
|
40
|
+
actionRights?: TDemandedActionRight[];
|
|
41
|
+
dataFences?: TDemandedDataFence[];
|
|
42
|
+
getSelectDataFenceData?: (ownProps: OwnProps) => TSelectDataFenceData;
|
|
43
|
+
};
|
|
44
|
+
declare const injectAuthorized: <OwnProps extends {
|
|
45
|
+
isAuthorized?: boolean | undefined;
|
|
46
|
+
}, InjectedProps extends OwnProps & {
|
|
47
|
+
[key: string]: boolean;
|
|
48
|
+
}>(demandedPermissions: TPermissionName[], options?: TInjectAuthorizedOptions<OwnProps>, propName?: string) => (Component: ComponentType<OwnProps>) => ComponentType<OwnProps & InjectedProps>;
|
|
49
|
+
export default Authorized;
|
|
50
|
+
export { injectAuthorized };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { default } from './authorized';
|
|
2
|
-
export { injectAuthorized } from './authorized';
|
|
1
|
+
export { default } from './authorized';
|
|
2
|
+
export { injectAuthorized } from './authorized';
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import { ComponentType } from 'react';
|
|
2
|
-
declare type TPermissionName = string;
|
|
3
|
-
declare type TActionRightName = string;
|
|
4
|
-
declare type TActionRightGroup = string;
|
|
5
|
-
declare type TDemandedActionRight = {
|
|
6
|
-
group: TActionRightGroup;
|
|
7
|
-
name: TActionRightName;
|
|
8
|
-
};
|
|
9
|
-
declare type TDemandedDataFence = {
|
|
10
|
-
group: string;
|
|
11
|
-
name: string;
|
|
12
|
-
type: string;
|
|
13
|
-
};
|
|
14
|
-
declare type TSelectDataFenceData = (demandedDataFenceWithActualValues: TDemandedDataFence & {
|
|
15
|
-
actualDataFenceValues: string[];
|
|
16
|
-
}) => string[] | null;
|
|
17
|
-
declare type TOptions<OwnProps extends {}> = {
|
|
18
|
-
shouldMatchSomePermissions?: boolean;
|
|
19
|
-
actionRights?: TDemandedActionRight[];
|
|
20
|
-
dataFences?: TDemandedDataFence[];
|
|
21
|
-
getSelectDataFenceData?: (ownProps: OwnProps) => TSelectDataFenceData;
|
|
22
|
-
};
|
|
23
|
-
declare const branchOnPermissions: <OwnProps extends {}>(demandedPermissions: TPermissionName[], FallbackComponent: ComponentType<unknown>, options?: TOptions<OwnProps>) => (Component: ComponentType<OwnProps>) => ComponentType<OwnProps>;
|
|
24
|
-
export default branchOnPermissions;
|
|
1
|
+
import { ComponentType } from 'react';
|
|
2
|
+
declare type TPermissionName = string;
|
|
3
|
+
declare type TActionRightName = string;
|
|
4
|
+
declare type TActionRightGroup = string;
|
|
5
|
+
declare type TDemandedActionRight = {
|
|
6
|
+
group: TActionRightGroup;
|
|
7
|
+
name: TActionRightName;
|
|
8
|
+
};
|
|
9
|
+
declare type TDemandedDataFence = {
|
|
10
|
+
group: string;
|
|
11
|
+
name: string;
|
|
12
|
+
type: string;
|
|
13
|
+
};
|
|
14
|
+
declare type TSelectDataFenceData = (demandedDataFenceWithActualValues: TDemandedDataFence & {
|
|
15
|
+
actualDataFenceValues: string[];
|
|
16
|
+
}) => string[] | null;
|
|
17
|
+
declare type TOptions<OwnProps extends {}> = {
|
|
18
|
+
shouldMatchSomePermissions?: boolean;
|
|
19
|
+
actionRights?: TDemandedActionRight[];
|
|
20
|
+
dataFences?: TDemandedDataFence[];
|
|
21
|
+
getSelectDataFenceData?: (ownProps: OwnProps) => TSelectDataFenceData;
|
|
22
|
+
};
|
|
23
|
+
declare const branchOnPermissions: <OwnProps extends {}>(demandedPermissions: TPermissionName[], FallbackComponent: ComponentType<unknown>, options?: TOptions<OwnProps>) => (Component: ComponentType<OwnProps>) => ComponentType<OwnProps>;
|
|
24
|
+
export default branchOnPermissions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default } from './branch-on-permissions';
|
|
1
|
+
export { default } from './branch-on-permissions';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default } from './restricted-by-permissions';
|
|
1
|
+
export { default } from './restricted-by-permissions';
|
package/dist/declarations/src/components/restricted-by-permissions/restricted-by-permissions.d.ts
CHANGED
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
import type { TNormalizedPermissions, TNormalizedActionRights, TNormalizedDataFences } from '@commercetools-frontend/application-shell-connectors';
|
|
2
|
-
import { ReactNode, ComponentType } from 'react';
|
|
3
|
-
declare type TPermissionName = string;
|
|
4
|
-
declare type TActionRightName = string;
|
|
5
|
-
declare type TActionRightGroup = string;
|
|
6
|
-
declare type TDemandedActionRight = {
|
|
7
|
-
group: TActionRightGroup;
|
|
8
|
-
name: TActionRightName;
|
|
9
|
-
};
|
|
10
|
-
declare type TDemandedDataFence = {
|
|
11
|
-
group: string;
|
|
12
|
-
name: string;
|
|
13
|
-
type: string;
|
|
14
|
-
};
|
|
15
|
-
declare type TSelectDataFenceData = (demandedDataFenceWithActualValues: TDemandedDataFence & {
|
|
16
|
-
actualDataFenceValues: string[];
|
|
17
|
-
}) => string[] | null;
|
|
18
|
-
declare type TProjectPermissions = {
|
|
19
|
-
permissions: TNormalizedPermissions | null;
|
|
20
|
-
actionRights: TNormalizedActionRights | null;
|
|
21
|
-
dataFences: TNormalizedDataFences | null;
|
|
22
|
-
};
|
|
23
|
-
declare type TRenderProp = (props: {
|
|
24
|
-
isAuthorized: boolean;
|
|
25
|
-
}) => ReactNode;
|
|
26
|
-
declare type Props = {
|
|
27
|
-
shouldMatchSomePermissions?: boolean;
|
|
28
|
-
permissions: TPermissionName[];
|
|
29
|
-
actionRights?: TDemandedActionRight[];
|
|
30
|
-
dataFences?: TDemandedDataFence[];
|
|
31
|
-
selectDataFenceData?: TSelectDataFenceData;
|
|
32
|
-
unauthorizedComponent?: ComponentType;
|
|
33
|
-
projectPermissions?: TProjectPermissions;
|
|
34
|
-
render?: TRenderProp;
|
|
35
|
-
children?: TRenderProp | ReactNode;
|
|
36
|
-
};
|
|
37
|
-
declare const RestrictedByPermissions: {
|
|
38
|
-
(props: Props): import("@emotion/react/jsx-runtime").JSX.Element;
|
|
39
|
-
displayName: string;
|
|
40
|
-
};
|
|
41
|
-
export default RestrictedByPermissions;
|
|
1
|
+
import type { TNormalizedPermissions, TNormalizedActionRights, TNormalizedDataFences } from '@commercetools-frontend/application-shell-connectors';
|
|
2
|
+
import { ReactNode, ComponentType } from 'react';
|
|
3
|
+
declare type TPermissionName = string;
|
|
4
|
+
declare type TActionRightName = string;
|
|
5
|
+
declare type TActionRightGroup = string;
|
|
6
|
+
declare type TDemandedActionRight = {
|
|
7
|
+
group: TActionRightGroup;
|
|
8
|
+
name: TActionRightName;
|
|
9
|
+
};
|
|
10
|
+
declare type TDemandedDataFence = {
|
|
11
|
+
group: string;
|
|
12
|
+
name: string;
|
|
13
|
+
type: string;
|
|
14
|
+
};
|
|
15
|
+
declare type TSelectDataFenceData = (demandedDataFenceWithActualValues: TDemandedDataFence & {
|
|
16
|
+
actualDataFenceValues: string[];
|
|
17
|
+
}) => string[] | null;
|
|
18
|
+
declare type TProjectPermissions = {
|
|
19
|
+
permissions: TNormalizedPermissions | null;
|
|
20
|
+
actionRights: TNormalizedActionRights | null;
|
|
21
|
+
dataFences: TNormalizedDataFences | null;
|
|
22
|
+
};
|
|
23
|
+
declare type TRenderProp = (props: {
|
|
24
|
+
isAuthorized: boolean;
|
|
25
|
+
}) => ReactNode;
|
|
26
|
+
declare type Props = {
|
|
27
|
+
shouldMatchSomePermissions?: boolean;
|
|
28
|
+
permissions: TPermissionName[];
|
|
29
|
+
actionRights?: TDemandedActionRight[];
|
|
30
|
+
dataFences?: TDemandedDataFence[];
|
|
31
|
+
selectDataFenceData?: TSelectDataFenceData;
|
|
32
|
+
unauthorizedComponent?: ComponentType;
|
|
33
|
+
projectPermissions?: TProjectPermissions;
|
|
34
|
+
render?: TRenderProp;
|
|
35
|
+
children?: TRenderProp | ReactNode;
|
|
36
|
+
};
|
|
37
|
+
declare const RestrictedByPermissions: {
|
|
38
|
+
(props: Props): import("@emotion/react/jsx-runtime").JSX.Element;
|
|
39
|
+
displayName: string;
|
|
40
|
+
};
|
|
41
|
+
export default RestrictedByPermissions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default } from './use-is-authorized';
|
|
1
|
+
export { default } from './use-is-authorized';
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import type { TNormalizedPermissions, TNormalizedActionRights, TNormalizedDataFences } from '@commercetools-frontend/application-shell-connectors';
|
|
2
|
-
declare type TPermissionName = string;
|
|
3
|
-
declare type TActionRightName = string;
|
|
4
|
-
declare type TActionRightGroup = string;
|
|
5
|
-
declare type TDemandedActionRight = {
|
|
6
|
-
group: TActionRightGroup;
|
|
7
|
-
name: TActionRightName;
|
|
8
|
-
};
|
|
9
|
-
declare type TDemandedDataFence = {
|
|
10
|
-
group: string;
|
|
11
|
-
name: string;
|
|
12
|
-
type: string;
|
|
13
|
-
};
|
|
14
|
-
declare type TSelectDataFenceData = (demandedDataFenceWithActualValues: TDemandedDataFence & {
|
|
15
|
-
actualDataFenceValues: string[];
|
|
16
|
-
}) => string[] | null;
|
|
17
|
-
declare type TProjectPermissions = {
|
|
18
|
-
permissions: TNormalizedPermissions | null;
|
|
19
|
-
actionRights: TNormalizedActionRights | null;
|
|
20
|
-
dataFences: TNormalizedDataFences | null;
|
|
21
|
-
};
|
|
22
|
-
declare const useIsAuthorized: ({ demandedPermissions, demandedActionRights, demandedDataFences, selectDataFenceData, shouldMatchSomePermissions, projectPermissions, }: {
|
|
23
|
-
demandedPermissions: TPermissionName[];
|
|
24
|
-
demandedActionRights?: TDemandedActionRight[] | undefined;
|
|
25
|
-
demandedDataFences?: TDemandedDataFence[] | undefined;
|
|
26
|
-
selectDataFenceData?: TSelectDataFenceData | undefined;
|
|
27
|
-
shouldMatchSomePermissions?: boolean | undefined;
|
|
28
|
-
projectPermissions?: TProjectPermissions | undefined;
|
|
29
|
-
}) => boolean;
|
|
30
|
-
export default useIsAuthorized;
|
|
1
|
+
import type { TNormalizedPermissions, TNormalizedActionRights, TNormalizedDataFences } from '@commercetools-frontend/application-shell-connectors';
|
|
2
|
+
declare type TPermissionName = string;
|
|
3
|
+
declare type TActionRightName = string;
|
|
4
|
+
declare type TActionRightGroup = string;
|
|
5
|
+
declare type TDemandedActionRight = {
|
|
6
|
+
group: TActionRightGroup;
|
|
7
|
+
name: TActionRightName;
|
|
8
|
+
};
|
|
9
|
+
declare type TDemandedDataFence = {
|
|
10
|
+
group: string;
|
|
11
|
+
name: string;
|
|
12
|
+
type: string;
|
|
13
|
+
};
|
|
14
|
+
declare type TSelectDataFenceData = (demandedDataFenceWithActualValues: TDemandedDataFence & {
|
|
15
|
+
actualDataFenceValues: string[];
|
|
16
|
+
}) => string[] | null;
|
|
17
|
+
declare type TProjectPermissions = {
|
|
18
|
+
permissions: TNormalizedPermissions | null;
|
|
19
|
+
actionRights: TNormalizedActionRights | null;
|
|
20
|
+
dataFences: TNormalizedDataFences | null;
|
|
21
|
+
};
|
|
22
|
+
declare const useIsAuthorized: ({ demandedPermissions, demandedActionRights, demandedDataFences, selectDataFenceData, shouldMatchSomePermissions, projectPermissions, }: {
|
|
23
|
+
demandedPermissions: TPermissionName[];
|
|
24
|
+
demandedActionRights?: TDemandedActionRight[] | undefined;
|
|
25
|
+
demandedDataFences?: TDemandedDataFence[] | undefined;
|
|
26
|
+
selectDataFenceData?: TSelectDataFenceData | undefined;
|
|
27
|
+
shouldMatchSomePermissions?: boolean | undefined;
|
|
28
|
+
projectPermissions?: TProjectPermissions | undefined;
|
|
29
|
+
}) => boolean;
|
|
30
|
+
export default useIsAuthorized;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { default as version } from './version';
|
|
2
|
-
export { default as RestrictedByPermissions } from './components/restricted-by-permissions';
|
|
3
|
-
export { default as branchOnPermissions } from './components/branch-on-permissions';
|
|
4
|
-
export { default as Authorized, injectAuthorized, } from './components/authorized';
|
|
5
|
-
export { default as useIsAuthorized } from './hooks/use-is-authorized';
|
|
6
|
-
export { hasEveryPermissions, hasSomePermissions, } from './utils/has-permissions';
|
|
1
|
+
export { default as version } from './version';
|
|
2
|
+
export { default as RestrictedByPermissions } from './components/restricted-by-permissions';
|
|
3
|
+
export { default as branchOnPermissions } from './components/branch-on-permissions';
|
|
4
|
+
export { default as Authorized, injectAuthorized, } from './components/authorized';
|
|
5
|
+
export { default as useIsAuthorized } from './hooks/use-is-authorized';
|
|
6
|
+
export { hasEveryPermissions, hasSomePermissions, } from './utils/has-permissions';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
declare const getDisplayName: <Props extends {}>(Component: import("react").ComponentType<Props>) => string | undefined;
|
|
3
|
-
export default getDisplayName;
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
declare const getDisplayName: <Props extends {}>(Component: import("react").ComponentType<Props>) => string | undefined;
|
|
3
|
+
export default getDisplayName;
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
declare type TPermissionName = string;
|
|
2
|
-
declare type TPermissions = {
|
|
3
|
-
[key: string]: boolean;
|
|
4
|
-
};
|
|
5
|
-
declare type TActionRightName = string;
|
|
6
|
-
declare type TActionRightGroup = string;
|
|
7
|
-
declare type TDemandedActionRight = {
|
|
8
|
-
group: TActionRightGroup;
|
|
9
|
-
name: TActionRightName;
|
|
10
|
-
};
|
|
11
|
-
declare type TActionRight = {
|
|
12
|
-
[key: string]: boolean;
|
|
13
|
-
};
|
|
14
|
-
declare type TActionRights = {
|
|
15
|
-
[key: string]: TActionRight;
|
|
16
|
-
};
|
|
17
|
-
declare type TDataFenceGroupedByPermission = {
|
|
18
|
-
[key: string]: {
|
|
19
|
-
values: string[];
|
|
20
|
-
} | null;
|
|
21
|
-
};
|
|
22
|
-
declare type TDataFenceGroupedByResourceType = {
|
|
23
|
-
[key: string]: TDataFenceGroupedByPermission | null;
|
|
24
|
-
};
|
|
25
|
-
declare type TDataFenceType = 'store';
|
|
26
|
-
declare type TDataFences = Partial<Record<TDataFenceType, TDataFenceGroupedByResourceType>>;
|
|
27
|
-
declare type TDemandedDataFence = {
|
|
28
|
-
group: string;
|
|
29
|
-
name: string;
|
|
30
|
-
type: string;
|
|
31
|
-
};
|
|
32
|
-
declare type TDemandedDataFenceWithValues = TDemandedDataFence & {
|
|
33
|
-
actualDataFenceValues: string[];
|
|
34
|
-
};
|
|
35
|
-
declare type TSelectDataFenceData = (demandedDataFenceWithActualValues: TDemandedDataFenceWithValues) => string[] | null;
|
|
36
|
-
declare type TOptionsForAppliedDataFence = {
|
|
37
|
-
actualPermissions: TPermissions | null;
|
|
38
|
-
demandedDataFences: TDemandedDataFence[];
|
|
39
|
-
actualDataFences: TDataFences | null;
|
|
40
|
-
selectDataFenceData?: TSelectDataFenceData;
|
|
41
|
-
};
|
|
42
|
-
export declare const getImpliedPermissions: (permissions: TPermissionName[]) => TPermissionName[];
|
|
43
|
-
export declare const hasPermission: (demandedPermission: TPermissionName, actualPermissions: TPermissions | null) => boolean;
|
|
44
|
-
export declare const hasActionRight: (demandedActionRight: TDemandedActionRight, actualActionRights: TActionRights | null) => boolean;
|
|
45
|
-
export declare const hasEveryPermissions: (demandedPermissions: TPermissionName[], actualPermissions: TPermissions | null) => boolean;
|
|
46
|
-
export declare const hasEveryActionRight: (demandedActionRights: TDemandedActionRight[], actualActionRights: TActionRights | null) => boolean;
|
|
47
|
-
export declare const hasSomePermissions: (demandedPermissions: TPermissionName[], actualPermissions: TPermissions | null) => boolean;
|
|
48
|
-
export declare const hasSomeDataFence: (options: TOptionsForAppliedDataFence) => boolean;
|
|
49
|
-
export {};
|
|
1
|
+
declare type TPermissionName = string;
|
|
2
|
+
declare type TPermissions = {
|
|
3
|
+
[key: string]: boolean;
|
|
4
|
+
};
|
|
5
|
+
declare type TActionRightName = string;
|
|
6
|
+
declare type TActionRightGroup = string;
|
|
7
|
+
declare type TDemandedActionRight = {
|
|
8
|
+
group: TActionRightGroup;
|
|
9
|
+
name: TActionRightName;
|
|
10
|
+
};
|
|
11
|
+
declare type TActionRight = {
|
|
12
|
+
[key: string]: boolean;
|
|
13
|
+
};
|
|
14
|
+
declare type TActionRights = {
|
|
15
|
+
[key: string]: TActionRight;
|
|
16
|
+
};
|
|
17
|
+
declare type TDataFenceGroupedByPermission = {
|
|
18
|
+
[key: string]: {
|
|
19
|
+
values: string[];
|
|
20
|
+
} | null;
|
|
21
|
+
};
|
|
22
|
+
declare type TDataFenceGroupedByResourceType = {
|
|
23
|
+
[key: string]: TDataFenceGroupedByPermission | null;
|
|
24
|
+
};
|
|
25
|
+
declare type TDataFenceType = 'store';
|
|
26
|
+
declare type TDataFences = Partial<Record<TDataFenceType, TDataFenceGroupedByResourceType>>;
|
|
27
|
+
declare type TDemandedDataFence = {
|
|
28
|
+
group: string;
|
|
29
|
+
name: string;
|
|
30
|
+
type: string;
|
|
31
|
+
};
|
|
32
|
+
declare type TDemandedDataFenceWithValues = TDemandedDataFence & {
|
|
33
|
+
actualDataFenceValues: string[];
|
|
34
|
+
};
|
|
35
|
+
declare type TSelectDataFenceData = (demandedDataFenceWithActualValues: TDemandedDataFenceWithValues) => string[] | null;
|
|
36
|
+
declare type TOptionsForAppliedDataFence = {
|
|
37
|
+
actualPermissions: TPermissions | null;
|
|
38
|
+
demandedDataFences: TDemandedDataFence[];
|
|
39
|
+
actualDataFences: TDataFences | null;
|
|
40
|
+
selectDataFenceData?: TSelectDataFenceData;
|
|
41
|
+
};
|
|
42
|
+
export declare const getImpliedPermissions: (permissions: TPermissionName[]) => TPermissionName[];
|
|
43
|
+
export declare const hasPermission: (demandedPermission: TPermissionName, actualPermissions: TPermissions | null) => boolean;
|
|
44
|
+
export declare const hasActionRight: (demandedActionRight: TDemandedActionRight, actualActionRights: TActionRights | null) => boolean;
|
|
45
|
+
export declare const hasEveryPermissions: (demandedPermissions: TPermissionName[], actualPermissions: TPermissions | null) => boolean;
|
|
46
|
+
export declare const hasEveryActionRight: (demandedActionRights: TDemandedActionRight[], actualActionRights: TActionRights | null) => boolean;
|
|
47
|
+
export declare const hasSomePermissions: (demandedPermissions: TPermissionName[], actualPermissions: TPermissions | null) => boolean;
|
|
48
|
+
export declare const hasSomeDataFence: (options: TOptionsForAppliedDataFence) => boolean;
|
|
49
|
+
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: "
|
|
2
|
-
export default _default;
|
|
1
|
+
declare const _default: "__@APPLICATION_KIT_PACKAGE/VERSION_OF_RELEASE__";
|
|
2
|
+
export default _default;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@commercetools-frontend/permissions",
|
|
3
|
-
"version": "20.
|
|
3
|
+
"version": "20.10.6",
|
|
4
4
|
"description": "React components to declaratively handle MC permissions",
|
|
5
5
|
"bugs": "https://github.com/commercetools/merchant-center-application-kit/issues",
|
|
6
6
|
"repository": {
|
|
@@ -11,22 +11,18 @@
|
|
|
11
11
|
"homepage": "https://docs.commercetools.com/custom-applications",
|
|
12
12
|
"keywords": ["javascript", "frontend", "react", "toolkit"],
|
|
13
13
|
"license": "MIT",
|
|
14
|
-
"private": false,
|
|
15
14
|
"publishConfig": {
|
|
16
15
|
"access": "public"
|
|
17
16
|
},
|
|
18
17
|
"main": "dist/commercetools-frontend-permissions.cjs.js",
|
|
19
18
|
"module": "dist/commercetools-frontend-permissions.esm.js",
|
|
20
19
|
"files": ["dist", "package.json", "LICENSE", "README.md"],
|
|
21
|
-
"scripts": {
|
|
22
|
-
"prepare": "./../../scripts/version.js replace"
|
|
23
|
-
},
|
|
24
20
|
"dependencies": {
|
|
25
|
-
"@babel/runtime": "7.
|
|
26
|
-
"@babel/runtime-corejs3": "7.
|
|
27
|
-
"@commercetools-frontend/application-shell-connectors": "20.
|
|
28
|
-
"@commercetools-frontend/sentry": "20.
|
|
29
|
-
"@emotion/react": "11.
|
|
21
|
+
"@babel/runtime": "7.15.4",
|
|
22
|
+
"@babel/runtime-corejs3": "7.15.4",
|
|
23
|
+
"@commercetools-frontend/application-shell-connectors": "20.10.6",
|
|
24
|
+
"@commercetools-frontend/sentry": "20.10.6",
|
|
25
|
+
"@emotion/react": "11.5.0",
|
|
30
26
|
"@types/lodash": "^4.14.167",
|
|
31
27
|
"@types/prop-types": "^15.7.3",
|
|
32
28
|
"@types/react": "^17.0.16",
|