@atlaskit/teams-public 0.7.0 → 0.8.1
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/CHANGELOG.md +14 -0
- package/dist/cjs/controllers/hooks/{use-team-containers/use-product-permission → use-product-permission}/index.js +12 -12
- package/dist/cjs/controllers/index.js +8 -1
- package/dist/cjs/controllers/product-permission/main.js +30 -20
- package/dist/cjs/controllers/product-permission/utils.js +30 -13
- package/dist/cjs/index.js +15 -1
- package/dist/cjs/ui/team-containers/main.js +19 -5
- package/dist/cjs/ui/team-containers/no-product-access-empty-state/index.compiled.css +8 -0
- package/dist/cjs/ui/team-containers/no-product-access-empty-state/index.js +46 -0
- package/dist/cjs/ui/team-containers/no-product-access-empty-state/no-product-access-icon/index.js +58 -0
- package/dist/es2019/controllers/hooks/{use-team-containers/use-product-permission → use-product-permission}/index.js +9 -6
- package/dist/es2019/controllers/index.js +2 -1
- package/dist/es2019/controllers/product-permission/main.js +12 -4
- package/dist/es2019/controllers/product-permission/utils.js +28 -12
- package/dist/es2019/index.js +3 -1
- package/dist/es2019/ui/team-containers/main.js +20 -5
- package/dist/es2019/ui/team-containers/no-product-access-empty-state/index.compiled.css +8 -0
- package/dist/es2019/ui/team-containers/no-product-access-empty-state/index.js +39 -0
- package/dist/es2019/ui/team-containers/no-product-access-empty-state/no-product-access-icon/index.js +51 -0
- package/dist/esm/controllers/hooks/use-product-permission/index.js +43 -0
- package/dist/esm/controllers/index.js +2 -1
- package/dist/esm/controllers/product-permission/main.js +30 -20
- package/dist/esm/controllers/product-permission/utils.js +29 -12
- package/dist/esm/index.js +3 -1
- package/dist/esm/ui/team-containers/main.js +19 -5
- package/dist/esm/ui/team-containers/no-product-access-empty-state/index.compiled.css +8 -0
- package/dist/esm/ui/team-containers/no-product-access-empty-state/index.js +39 -0
- package/dist/esm/ui/team-containers/no-product-access-empty-state/no-product-access-icon/index.js +51 -0
- package/dist/types/controllers/hooks/use-product-permission/index.d.ts +2 -0
- package/dist/types/controllers/index.d.ts +1 -0
- package/dist/types/controllers/product-permission/types.d.ts +14 -3
- package/dist/types/controllers/product-permission/utils.d.ts +3 -2
- package/dist/types/index.d.ts +2 -0
- package/dist/types/ui/team-containers/main.d.ts +1 -1
- package/dist/types/ui/team-containers/no-product-access-empty-state/index.d.ts +2 -0
- package/dist/types/ui/team-containers/no-product-access-empty-state/no-product-access-icon/index.d.ts +2 -0
- package/dist/types/ui/team-containers/types.d.ts +8 -0
- package/dist/types-ts4.5/controllers/hooks/use-product-permission/index.d.ts +2 -0
- package/dist/types-ts4.5/controllers/index.d.ts +1 -0
- package/dist/types-ts4.5/controllers/product-permission/types.d.ts +14 -3
- package/dist/types-ts4.5/controllers/product-permission/utils.d.ts +3 -2
- package/dist/types-ts4.5/index.d.ts +2 -0
- package/dist/types-ts4.5/ui/team-containers/main.d.ts +1 -1
- package/dist/types-ts4.5/ui/team-containers/no-product-access-empty-state/index.d.ts +2 -0
- package/dist/types-ts4.5/ui/team-containers/no-product-access-empty-state/no-product-access-icon/index.d.ts +2 -0
- package/dist/types-ts4.5/ui/team-containers/types.d.ts +8 -0
- package/package.json +3 -2
- package/dist/esm/controllers/hooks/use-team-containers/use-product-permission/index.js +0 -43
- package/dist/types/controllers/hooks/use-team-containers/use-product-permission/index.d.ts +0 -2
- package/dist/types-ts4.5/controllers/hooks/use-team-containers/use-product-permission/index.d.ts +0 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @atlaskit/teams-public
|
|
2
2
|
|
|
3
|
+
## 0.8.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies
|
|
8
|
+
|
|
9
|
+
## 0.8.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- [#120425](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/120425)
|
|
14
|
+
[`ada759ba3140e`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/ada759ba3140e) -
|
|
15
|
+
[ux] Emprty state for no product access
|
|
16
|
+
|
|
3
17
|
## 0.7.0
|
|
4
18
|
|
|
5
19
|
### Minor Changes
|
|
@@ -6,19 +6,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.useProductPermissions = void 0;
|
|
8
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
11
|
var _react = require("react");
|
|
13
|
-
var _main = require("
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
var _main = require("../../product-permission/main");
|
|
13
|
+
var useProductPermissions = exports.useProductPermissions = function useProductPermissions(_ref) {
|
|
14
|
+
var userId = _ref.userId,
|
|
15
|
+
cloudId = _ref.cloudId,
|
|
16
|
+
_ref$permissionIds = _ref.permissionIds,
|
|
17
|
+
permissionIds = _ref$permissionIds === void 0 ? ['manage', 'write'] : _ref$permissionIds;
|
|
18
|
+
var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
|
|
19
19
|
enabled: true
|
|
20
20
|
},
|
|
21
|
-
enabled =
|
|
21
|
+
enabled = _ref2.enabled;
|
|
22
22
|
var _useProductPermission = (0, _main.useProductPermissionsStore)(),
|
|
23
23
|
_useProductPermission2 = (0, _slicedToArray2.default)(_useProductPermission, 2),
|
|
24
24
|
state = _useProductPermission2[0],
|
|
@@ -31,20 +31,20 @@ var useProductPermissions = exports.useProductPermissions = function useProductP
|
|
|
31
31
|
cloudId: cloudId,
|
|
32
32
|
userId: userId,
|
|
33
33
|
enabled: enabled,
|
|
34
|
-
|
|
34
|
+
permissionIds: permissionIds
|
|
35
35
|
});
|
|
36
36
|
case 1:
|
|
37
37
|
case "end":
|
|
38
38
|
return _context.stop();
|
|
39
39
|
}
|
|
40
40
|
}, _callee);
|
|
41
|
-
})), [cloudId, enabled, getPermissions, userId,
|
|
41
|
+
})), [cloudId, enabled, getPermissions, userId, permissionIds]);
|
|
42
42
|
(0, _react.useEffect)(function () {
|
|
43
43
|
fetchData();
|
|
44
44
|
}, [fetchData]);
|
|
45
|
-
return
|
|
45
|
+
return {
|
|
46
46
|
loading: state.isLoading,
|
|
47
47
|
data: state.permissions,
|
|
48
48
|
error: state.error
|
|
49
|
-
}
|
|
49
|
+
};
|
|
50
50
|
};
|
|
@@ -3,10 +3,17 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
Object.defineProperty(exports, "hasProductPermission", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _utils.hasProductPermission;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
6
12
|
Object.defineProperty(exports, "useTeamContainers", {
|
|
7
13
|
enumerable: true,
|
|
8
14
|
get: function get() {
|
|
9
15
|
return _useTeamContainers.useTeamContainers;
|
|
10
16
|
}
|
|
11
17
|
});
|
|
12
|
-
var _useTeamContainers = require("./hooks/use-team-containers");
|
|
18
|
+
var _useTeamContainers = require("./hooks/use-team-containers");
|
|
19
|
+
var _utils = require("./product-permission/utils");
|
|
@@ -14,58 +14,68 @@ var actions = {
|
|
|
14
14
|
var userId = _ref.userId,
|
|
15
15
|
cloudId = _ref.cloudId,
|
|
16
16
|
enabled = _ref.enabled,
|
|
17
|
-
|
|
17
|
+
permissionIds = _ref.permissionIds;
|
|
18
18
|
return /*#__PURE__*/function () {
|
|
19
19
|
var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_ref2) {
|
|
20
|
-
var setState, getState, dispatch, _getState, hasLoaded, isLoading, response,
|
|
20
|
+
var setState, getState, dispatch, _getState, hasLoaded, isLoading, permissions, shouldFetch, response, _permissions;
|
|
21
21
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
22
22
|
while (1) switch (_context.prev = _context.next) {
|
|
23
23
|
case 0:
|
|
24
24
|
setState = _ref2.setState, getState = _ref2.getState, dispatch = _ref2.dispatch;
|
|
25
|
-
_getState = getState(), hasLoaded = _getState.hasLoaded, isLoading = _getState.isLoading;
|
|
26
|
-
if (!(
|
|
25
|
+
_getState = getState(), hasLoaded = _getState.hasLoaded, isLoading = _getState.isLoading, permissions = _getState.permissions;
|
|
26
|
+
if (!(isLoading || !userId || !cloudId || !enabled)) {
|
|
27
27
|
_context.next = 4;
|
|
28
28
|
break;
|
|
29
29
|
}
|
|
30
30
|
return _context.abrupt("return");
|
|
31
31
|
case 4:
|
|
32
|
-
|
|
32
|
+
shouldFetch = !hasLoaded || permissionIds.some(function (permissionId) {
|
|
33
|
+
var _permissions$confluen, _permissions$jira;
|
|
34
|
+
return ((_permissions$confluen = permissions.confluence) === null || _permissions$confluen === void 0 ? void 0 : _permissions$confluen[permissionId]) === undefined || ((_permissions$jira = permissions.jira) === null || _permissions$jira === void 0 ? void 0 : _permissions$jira[permissionId]) === undefined;
|
|
35
|
+
});
|
|
36
|
+
if (shouldFetch) {
|
|
37
|
+
_context.next = 7;
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
return _context.abrupt("return");
|
|
41
|
+
case 7:
|
|
42
|
+
_context.prev = 7;
|
|
33
43
|
setState({
|
|
34
44
|
isLoading: true
|
|
35
45
|
});
|
|
36
|
-
_context.next =
|
|
46
|
+
_context.next = 11;
|
|
37
47
|
return fetch('/gateway/api/permissions/bulk/permitted', {
|
|
38
48
|
headers: {
|
|
39
49
|
'Content-Type': 'application/json'
|
|
40
50
|
},
|
|
41
51
|
method: 'POST',
|
|
42
52
|
credentials: 'include',
|
|
43
|
-
body: (0, _utils.getProductPermissionRequestBody)(cloudId, userId,
|
|
53
|
+
body: (0, _utils.getProductPermissionRequestBody)(cloudId, userId, permissionIds)
|
|
44
54
|
});
|
|
45
|
-
case
|
|
55
|
+
case 11:
|
|
46
56
|
response = _context.sent;
|
|
47
57
|
if (response.ok) {
|
|
48
|
-
_context.next =
|
|
58
|
+
_context.next = 14;
|
|
49
59
|
break;
|
|
50
60
|
}
|
|
51
61
|
throw new Error('Failed to fetch product permissions');
|
|
52
|
-
case
|
|
53
|
-
_context.next =
|
|
62
|
+
case 14:
|
|
63
|
+
_context.next = 16;
|
|
54
64
|
return response.json();
|
|
55
|
-
case
|
|
56
|
-
|
|
57
|
-
dispatch(actions.setPermissions(
|
|
58
|
-
_context.next =
|
|
65
|
+
case 16:
|
|
66
|
+
_permissions = _context.sent;
|
|
67
|
+
dispatch(actions.setPermissions(_permissions));
|
|
68
|
+
_context.next = 23;
|
|
59
69
|
break;
|
|
60
|
-
case 17:
|
|
61
|
-
_context.prev = 17;
|
|
62
|
-
_context.t0 = _context["catch"](4);
|
|
63
|
-
dispatch(actions.setError(new Error('Failed to fetch product permissions')));
|
|
64
70
|
case 20:
|
|
71
|
+
_context.prev = 20;
|
|
72
|
+
_context.t0 = _context["catch"](7);
|
|
73
|
+
dispatch(actions.setError(new Error('Failed to fetch product permissions')));
|
|
74
|
+
case 23:
|
|
65
75
|
case "end":
|
|
66
76
|
return _context.stop();
|
|
67
77
|
}
|
|
68
|
-
}, _callee, null, [[
|
|
78
|
+
}, _callee, null, [[7, 20]]);
|
|
69
79
|
}));
|
|
70
80
|
return function (_x) {
|
|
71
81
|
return _ref3.apply(this, arguments);
|
|
@@ -4,7 +4,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.transformPermissions = exports.getProductPermissionRequestBody = void 0;
|
|
7
|
+
exports.transformPermissions = exports.hasProductPermission = exports.getProductPermissionRequestBody = void 0;
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
8
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
10
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
10
11
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -18,17 +19,33 @@ var transformPermissions = exports.transformPermissions = function transformPerm
|
|
|
18
19
|
return acc;
|
|
19
20
|
}, {});
|
|
20
21
|
};
|
|
21
|
-
var getProductPermissionRequestBody = exports.getProductPermissionRequestBody = function getProductPermissionRequestBody(cloudId, userId,
|
|
22
|
-
var body =
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
22
|
+
var getProductPermissionRequestBody = exports.getProductPermissionRequestBody = function getProductPermissionRequestBody(cloudId, userId, permissionIds) {
|
|
23
|
+
var body = permissionIds.reduce(function (acc, permissionId) {
|
|
24
|
+
var permission = {
|
|
25
|
+
permissionId: permissionId,
|
|
26
|
+
resourceId: '',
|
|
27
|
+
principalId: "ari:cloud:identity::user/".concat(userId),
|
|
28
|
+
dontRequirePrincipalInSite: true
|
|
29
|
+
};
|
|
30
|
+
return [].concat((0, _toConsumableArray2.default)(acc), [_objectSpread(_objectSpread({}, permission), {}, {
|
|
31
|
+
resourceId: "ari:cloud:confluence::site/".concat(cloudId)
|
|
32
|
+
}), _objectSpread(_objectSpread({}, permission), {}, {
|
|
33
|
+
resourceId: "ari:cloud:jira-software::site/".concat(cloudId)
|
|
34
|
+
})]);
|
|
35
|
+
}, []);
|
|
33
36
|
return JSON.stringify(body);
|
|
37
|
+
};
|
|
38
|
+
var hasProductPermission = exports.hasProductPermission = function hasProductPermission(permissions, product, permissionIds) {
|
|
39
|
+
if (!permissions[product]) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
if ((!permissionIds || permissionIds.length === 0) && permissions[product]) {
|
|
43
|
+
return Object.values(permissions[product] || {}).some(function (value) {
|
|
44
|
+
return value === true;
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
return permissionIds === null || permissionIds === void 0 ? void 0 : permissionIds.some(function (permissionId) {
|
|
48
|
+
var _permissions$product;
|
|
49
|
+
return (_permissions$product = permissions[product]) === null || _permissions$product === void 0 ? void 0 : _permissions$product[permissionId];
|
|
50
|
+
});
|
|
34
51
|
};
|
package/dist/cjs/index.js
CHANGED
|
@@ -9,6 +9,18 @@ Object.defineProperty(exports, "TeamContainers", {
|
|
|
9
9
|
return _teamContainers.TeamContainers;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
+
Object.defineProperty(exports, "hasProductPermission", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _utils.hasProductPermission;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "useProductPermissions", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _useProductPermission.useProductPermissions;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
12
24
|
Object.defineProperty(exports, "useTeamContainers", {
|
|
13
25
|
enumerable: true,
|
|
14
26
|
get: function get() {
|
|
@@ -16,4 +28,6 @@ Object.defineProperty(exports, "useTeamContainers", {
|
|
|
16
28
|
}
|
|
17
29
|
});
|
|
18
30
|
var _teamContainers = require("./ui/team-containers");
|
|
19
|
-
var _useTeamContainers = require("./controllers/hooks/use-team-containers");
|
|
31
|
+
var _useTeamContainers = require("./controllers/hooks/use-team-containers");
|
|
32
|
+
var _useProductPermission = require("./controllers/hooks/use-product-permission");
|
|
33
|
+
var _utils = require("./controllers/product-permission/utils");
|
|
@@ -17,10 +17,13 @@ var _modalTransition = _interopRequireDefault(require("@atlaskit/modal-dialog/mo
|
|
|
17
17
|
var _primitives = require("@atlaskit/primitives");
|
|
18
18
|
var _colors = require("@atlaskit/theme/colors");
|
|
19
19
|
var _analytics = require("../../common/utils/analytics");
|
|
20
|
+
var _controllers = require("../../controllers");
|
|
21
|
+
var _useProductPermission2 = require("../../controllers/hooks/use-product-permission");
|
|
20
22
|
var _useTeamContainers2 = require("../../controllers/hooks/use-team-containers");
|
|
21
23
|
var _addContainerCard = require("./add-container-card");
|
|
22
24
|
var _async = require("./disconnect-dialog/async");
|
|
23
25
|
var _linkedContainerCard = require("./linked-container-card");
|
|
26
|
+
var _noProductAccessEmptyState = require("./no-product-access-empty-state");
|
|
24
27
|
var _teamContainersSkeleton = require("./team-containers-skeleton");
|
|
25
28
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
26
29
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -30,7 +33,9 @@ var MAX_NUMBER_OF_CONTAINERS_TO_SHOW = exports.MAX_NUMBER_OF_CONTAINERS_TO_SHOW
|
|
|
30
33
|
var TeamContainers = exports.TeamContainers = function TeamContainers(_ref) {
|
|
31
34
|
var teamId = _ref.teamId,
|
|
32
35
|
onAddAContainerClick = _ref.onAddAContainerClick,
|
|
33
|
-
components = _ref.components
|
|
36
|
+
components = _ref.components,
|
|
37
|
+
userId = _ref.userId,
|
|
38
|
+
cloudId = _ref.cloudId;
|
|
34
39
|
var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
|
|
35
40
|
createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
|
|
36
41
|
var _useTeamContainers = (0, _useTeamContainers2.useTeamContainers)(teamId),
|
|
@@ -61,6 +66,12 @@ var TeamContainers = exports.TeamContainers = function TeamContainers(_ref) {
|
|
|
61
66
|
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
|
62
67
|
selectedContainerDetails = _useState10[0],
|
|
63
68
|
setSelectedContainerDetails = _useState10[1];
|
|
69
|
+
var _useProductPermission = (0, _useProductPermission2.useProductPermissions)({
|
|
70
|
+
userId: userId,
|
|
71
|
+
cloudId: cloudId
|
|
72
|
+
}),
|
|
73
|
+
productPermissions = _useProductPermission.data,
|
|
74
|
+
productPermissionIsLoading = _useProductPermission.loading;
|
|
64
75
|
(0, _react.useEffect)(function () {
|
|
65
76
|
if (teamContainers.length > MAX_NUMBER_OF_CONTAINERS_TO_SHOW) {
|
|
66
77
|
setShowAddJiraContainer(false);
|
|
@@ -72,10 +83,10 @@ var TeamContainers = exports.TeamContainers = function TeamContainers(_ref) {
|
|
|
72
83
|
var hasConfluenceSpace = teamContainers.some(function (container) {
|
|
73
84
|
return container.type === 'ConfluenceSpace';
|
|
74
85
|
});
|
|
75
|
-
setShowAddJiraContainer(!hasJiraProject);
|
|
76
|
-
setShowAddConfluenceContainer(!hasConfluenceSpace);
|
|
86
|
+
setShowAddJiraContainer(!hasJiraProject && !!productPermissions && !!(0, _controllers.hasProductPermission)(productPermissions, 'jira'));
|
|
87
|
+
setShowAddConfluenceContainer(!hasConfluenceSpace && !!productPermissions && !!(0, _controllers.hasProductPermission)(productPermissions, 'confluence'));
|
|
77
88
|
}
|
|
78
|
-
}, [teamContainers]);
|
|
89
|
+
}, [productPermissions, teamContainers]);
|
|
79
90
|
var handleShowMore = function handleShowMore() {
|
|
80
91
|
setShowMore(!showMore);
|
|
81
92
|
};
|
|
@@ -118,11 +129,14 @@ var TeamContainers = exports.TeamContainers = function TeamContainers(_ref) {
|
|
|
118
129
|
return _ref2.apply(this, arguments);
|
|
119
130
|
};
|
|
120
131
|
}(), [actions, createAnalyticsEvent, teamId, unlinkError]);
|
|
121
|
-
if (loading) {
|
|
132
|
+
if (loading || productPermissionIsLoading) {
|
|
122
133
|
return /*#__PURE__*/_react.default.createElement(_teamContainersSkeleton.TeamContainersSkeleton, {
|
|
123
134
|
numberOfContainers: MAX_NUMBER_OF_CONTAINERS_TO_SHOW
|
|
124
135
|
});
|
|
125
136
|
}
|
|
137
|
+
if (teamContainers.length === 0 && (!productPermissions || !(productPermissions && ((0, _controllers.hasProductPermission)(productPermissions, 'jira') || (0, _controllers.hasProductPermission)(productPermissions, 'confluence'))))) {
|
|
138
|
+
return /*#__PURE__*/_react.default.createElement(_noProductAccessEmptyState.NoProductAccessState, null);
|
|
139
|
+
}
|
|
126
140
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_primitives.Stack, {
|
|
127
141
|
space: "space.200"
|
|
128
142
|
}, /*#__PURE__*/_react.default.createElement(_primitives.Grid, {
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
|
|
2
|
+
._2rkoiti9{border-radius:var(--ds-border-radius-100,4px)}
|
|
3
|
+
._189ee4h9{border-width:var(--ds-border-width,1px)}
|
|
4
|
+
._18zrxy5q{padding-inline:var(--ds-space-400,2pc)}
|
|
5
|
+
._1h6dmuej{border-color:var(--ds-border,#091e4224)}._12jimuej{outline-color:var(--ds-border,#091e4224)}
|
|
6
|
+
._12y3e4h9{outline-width:var(--ds-border-width,1px)}
|
|
7
|
+
._1qu2nqa1{outline-style:solid}
|
|
8
|
+
._bozgxy5q{padding-inline-start:var(--ds-space-400,2pc)}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/* index.tsx generated by @compiled/babel-plugin v0.36.1 */
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.NoProductAccessState = void 0;
|
|
9
|
+
require("./index.compiled.css");
|
|
10
|
+
var _runtime = require("@compiled/react/runtime");
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
var _reactIntlNext = require("react-intl-next");
|
|
13
|
+
var _heading = _interopRequireDefault(require("@atlaskit/heading"));
|
|
14
|
+
var _compiled = require("@atlaskit/primitives/compiled");
|
|
15
|
+
var _noProductAccessIcon = require("./no-product-access-icon");
|
|
16
|
+
var styles = {
|
|
17
|
+
emptyStateContainer: "_2rkoiti9 _189ee4h9 _1h6dmuej _18zrxy5q _12y3e4h9 _12jimuej _1qu2nqa1",
|
|
18
|
+
contentWrapper: "_bozgxy5q"
|
|
19
|
+
};
|
|
20
|
+
var NoProductAccessState = exports.NoProductAccessState = function NoProductAccessState() {
|
|
21
|
+
return /*#__PURE__*/_react.default.createElement(_compiled.Stack, {
|
|
22
|
+
space: "space.100",
|
|
23
|
+
xcss: styles.emptyStateContainer,
|
|
24
|
+
testId: "team-containers-no-product-access-state"
|
|
25
|
+
}, /*#__PURE__*/_react.default.createElement(_compiled.Inline, {
|
|
26
|
+
alignBlock: "center"
|
|
27
|
+
}, /*#__PURE__*/_react.default.createElement(_noProductAccessIcon.NoProductAccessIcon, null), /*#__PURE__*/_react.default.createElement(_compiled.Box, {
|
|
28
|
+
xcss: styles.contentWrapper
|
|
29
|
+
}, /*#__PURE__*/_react.default.createElement(_compiled.Stack, {
|
|
30
|
+
space: "space.100"
|
|
31
|
+
}, /*#__PURE__*/_react.default.createElement(_heading.default, {
|
|
32
|
+
size: "small"
|
|
33
|
+
}, /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, messages.teamContainerEmptyStateTitle)), /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, messages.teamContainerEmptyStateDescription)))));
|
|
34
|
+
};
|
|
35
|
+
var messages = (0, _reactIntlNext.defineMessages)({
|
|
36
|
+
teamContainerEmptyStateTitle: {
|
|
37
|
+
id: 'ptc.team-profile-page.team-containers.empty-state.title',
|
|
38
|
+
defaultMessage: 'Add the places your team works',
|
|
39
|
+
description: 'Empty state title when user has no product access'
|
|
40
|
+
},
|
|
41
|
+
teamContainerEmptyStateDescription: {
|
|
42
|
+
id: 'ptc.team-profile-page.team-containers.empty-state.description',
|
|
43
|
+
defaultMessage: 'Your team can link their Jira projects, Confluence spaces here to show where they work',
|
|
44
|
+
description: 'Empty state description when user has no product access'
|
|
45
|
+
}
|
|
46
|
+
});
|
package/dist/cjs/ui/team-containers/no-product-access-empty-state/no-product-access-icon/index.js
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.NoProductAccessIcon = NoProductAccessIcon;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
function TeamContainersNoProductAccess() {
|
|
10
|
+
return /*#__PURE__*/_react.default.createElement("svg", {
|
|
11
|
+
width: "180",
|
|
12
|
+
height: "170",
|
|
13
|
+
viewBox: "0 0 180 170",
|
|
14
|
+
fill: "none",
|
|
15
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
16
|
+
}, /*#__PURE__*/_react.default.createElement("path", {
|
|
17
|
+
d: "M65.004 40.9222L33.3022 45.8529L38.2329 77.5546L118.928 65.004L115.791 44.8301L78.3249 50.6572L65.004 40.9222Z",
|
|
18
|
+
fill: "#1868DB"
|
|
19
|
+
}), /*#__PURE__*/_react.default.createElement("path", {
|
|
20
|
+
d: "M120.273 73.6499L39.5776 86.2006L45.8529 126.548L126.548 113.998L120.273 73.6499Z",
|
|
21
|
+
fill: "#1868DB"
|
|
22
|
+
}), /*#__PURE__*/_react.default.createElement("g", {
|
|
23
|
+
clipPath: "url(#clip0_5508_39188)"
|
|
24
|
+
}, /*#__PURE__*/_react.default.createElement("path", {
|
|
25
|
+
fillRule: "evenodd",
|
|
26
|
+
clipRule: "evenodd",
|
|
27
|
+
d: "M129.406 142.298C120.375 151.329 105.733 151.329 96.7018 142.298C87.671 133.267 87.671 118.626 96.7018 109.595L104.878 101.419L111.419 107.959L103.243 116.135C97.8241 121.554 97.8241 130.339 103.243 135.757C108.661 141.176 117.446 141.176 122.865 135.757L131.041 127.582L137.581 134.122L129.406 142.298Z",
|
|
28
|
+
fill: "#FCA700"
|
|
29
|
+
}), /*#__PURE__*/_react.default.createElement("path", {
|
|
30
|
+
fillRule: "evenodd",
|
|
31
|
+
clipRule: "evenodd",
|
|
32
|
+
d: "M152.298 119.406C161.329 110.375 161.329 95.7328 152.298 86.7019C143.267 77.6711 128.625 77.6711 119.594 86.7019L111.418 94.8779L117.959 101.419L126.135 93.2427C131.553 87.8242 140.339 87.8242 145.757 93.2427C151.176 98.6612 151.176 107.446 145.757 112.865L137.581 121.041L144.122 127.582L152.298 119.406Z",
|
|
33
|
+
fill: "#FCA700"
|
|
34
|
+
}), /*#__PURE__*/_react.default.createElement("path", {
|
|
35
|
+
fillRule: "evenodd",
|
|
36
|
+
clipRule: "evenodd",
|
|
37
|
+
d: "M139.449 106.092L116.324 129.217L109.783 122.676L132.908 99.5512L139.449 106.092Z",
|
|
38
|
+
fill: "#FCA700"
|
|
39
|
+
})), /*#__PURE__*/_react.default.createElement("path", {
|
|
40
|
+
fillRule: "evenodd",
|
|
41
|
+
clipRule: "evenodd",
|
|
42
|
+
d: "M101.784 117.729L90.8252 119.434C91.8704 115.787 93.8291 112.347 96.7015 109.475L104.877 101.299L111.418 107.84L103.242 116.016C102.702 116.556 102.216 117.129 101.784 117.729ZM125.459 106.88L126.548 113.878L116.972 115.367L125.459 106.88ZM121.979 84.5L123.699 95.5589L117.959 101.299L111.418 94.7581L119.594 86.5822C120.352 85.8246 121.149 85.1305 121.979 84.5Z",
|
|
43
|
+
fill: "#09326C"
|
|
44
|
+
}), /*#__PURE__*/_react.default.createElement("path", {
|
|
45
|
+
d: "M147.591 62.1215C147.471 62.5353 147.38 62.9491 147.239 63.3629C146.689 65.0183 145.949 66.7017 144.779 68.2518C143.63 69.8019 141.847 71.1485 139.838 71.6886C137.837 72.2498 135.835 72.1025 134.073 71.6886C130.528 70.8329 127.687 69.1005 125.178 67.375H125.249V67.3329C125.798 67.5293 127.25 68.2798 128.639 68.855C130.013 69.4582 131.324 69.872 131.324 69.872C129.675 68.5323 127.871 67.5363 125.968 66.4982C124.079 65.4672 122.133 64.401 120.512 63.0613L120.329 63.3419C121.753 64.4922 122.986 65.5654 123.444 66.0704C120.59 64.3449 116.678 61.2517 113.154 57.871C112.266 57.0293 111.406 56.1735 110.575 55.3248C110.391 55.1355 110.081 54.8198 110.138 54.8759C110.138 54.8759 110.123 54.8619 110.088 54.8479L109.961 54.7707L109.616 54.5673C109.158 54.2938 108.707 54.0202 108.27 53.7607C107.819 53.5362 107.382 53.3188 106.952 53.1084C106.74 53.0032 106.529 52.8839 106.325 52.7997C106.113 52.7156 105.909 52.6385 105.704 52.5613C105.303 52.414 104.915 52.2246 104.541 52.1054C104.168 51.9931 103.815 51.8949 103.484 51.7967C103.576 51.6845 104.02 51.8599 104.513 51.9581C104.999 52.0703 105.535 52.2246 105.888 51.895L104.837 51.5162C104.478 51.425 104.125 51.3409 103.773 51.2497L103.244 51.1164C103.068 51.0743 102.892 51.0743 102.716 51.0533C102.363 51.0252 102.018 50.9901 101.673 50.9621C101.673 51.5022 102.434 51.3759 102.582 51.4811C102.434 51.5092 102.117 51.5232 101.659 51.5162C101.433 51.5372 101.179 51.5863 100.89 51.6214C100.601 51.6635 100.277 51.6705 99.953 51.7897C98.6068 52.0843 96.9787 52.926 95.703 54.5743C94.4555 56.2437 93.645 58.6986 93.6309 61.3289C93.6309 62.6335 93.7507 63.9872 94.1172 65.2708L94.237 65.7548L94.4062 66.2247C94.5189 66.5333 94.6176 66.856 94.7445 67.1646C95.0334 67.7538 95.2731 68.378 95.6325 68.9111C96.2598 70.0474 97.1056 71.0013 97.9725 71.843C98.4518 72.2147 98.8535 72.6566 99.361 72.9442C99.6006 73.1055 99.8402 73.2668 100.073 73.4211C100.305 73.5824 100.573 73.6806 100.813 73.8139C101.06 73.9402 101.299 74.0664 101.532 74.1856C101.778 74.2908 102.032 74.368 102.272 74.4662C102.751 74.6486 103.216 74.845 103.681 74.9361C104.147 75.0484 104.577 75.1887 104.992 75.2728C105.415 75.343 105.817 75.4061 106.177 75.4622C106.902 75.6235 107.53 75.6165 107.988 75.7077C108.453 75.7779 108.756 75.862 108.883 75.9602C109.123 76.1566 108.629 76.4021 107.072 76.7177L107.389 76.9913C104.147 77.0684 101.412 76.6476 98.1346 75.2167C97.7329 74.9081 97.6554 74.9221 97.8175 74.6977C97.7329 74.5925 97.599 74.4101 97.7117 74.347C98.1417 73.835 97.1902 73.3931 96.8448 73.0845C96.725 73.3159 96.4994 73.4071 96.2105 73.337C95.9285 73.2598 95.5762 73.0353 95.1744 72.7057C94.7515 72.3971 94.3991 71.878 93.9833 71.3449C93.7648 71.0784 93.6097 70.7628 93.4335 70.4472C93.2644 70.1245 93.0741 69.8089 92.9261 69.4582C92.6582 68.7568 92.3552 68.0554 92.2142 67.3329C92.1296 66.9752 92.0309 66.6315 91.9746 66.2948C91.9252 65.9511 91.8829 65.6215 91.8406 65.3129C91.7067 64.0644 91.7067 63.0894 91.6856 62.7247C91.1922 62.6195 91.0795 61.8619 91.2134 61.0483C91.2768 60.2277 91.5658 59.3719 91.4178 58.888C91.3755 58.9441 91.0865 59.3159 91.0512 59.365C90.9878 59.2527 90.9808 58.9371 91.0442 58.4882C91.1429 58.0463 91.2698 57.4641 91.5023 56.8188C91.9605 55.5353 92.8485 54.0483 93.8987 52.919C94.1736 52.6525 94.4414 52.386 94.6952 52.1334C94.9841 51.916 95.2519 51.7126 95.5057 51.5232C95.6325 51.425 95.7524 51.3409 95.8651 51.2497C95.992 51.1795 96.1118 51.1094 96.2246 51.0462C96.4501 50.92 96.6475 50.8007 96.8025 50.7026C97.1127 50.4851 97.31 50.3939 97.2818 50.3238C97.2536 50.2607 96.9999 50.2256 96.4924 50.3659C98.2051 49.0613 100.714 48.3809 103.244 48.5843C105.789 48.7596 108.312 49.6645 110.687 50.899C110.983 51.0603 111.272 51.2216 111.575 51.3829L112.019 51.6284C112.217 51.7406 112.485 51.8599 112.675 52.0913C113.154 52.5613 113.633 53.0382 114.12 53.5152C115.05 54.42 115.987 55.3318 116.953 56.2367C118.877 58.0533 120.886 59.8489 122.972 61.5463C125.065 63.2297 127.243 64.8149 129.506 66.0984C130.64 66.7297 131.796 67.2838 132.952 67.7257C134.115 68.1395 135.278 68.4271 136.392 68.5253C138.626 68.6586 140.508 67.873 141.629 66.2597C142.235 65.5163 142.636 64.5694 142.975 63.6576C143.144 63.1946 143.243 62.6966 143.369 62.2337C143.44 62.0092 143.475 61.7567 143.51 61.5182L143.567 61.1605L143.595 60.9852L143.609 60.894C143.609 60.894 143.609 60.894 143.602 60.887C143.637 60.908 143.687 60.887 143.708 60.9501C143.687 60.887 143.75 60.887 143.602 60.88C143.658 60.88 143.708 60.8659 143.743 60.8379C143.743 60.8239 143.771 60.8379 143.764 60.7958C143.75 60.7327 143.736 60.6625 143.722 60.5994C143.687 60.4661 143.658 60.3259 143.616 60.1856C143.433 59.6315 143.243 59.0142 142.989 58.4671C142.524 57.3589 141.995 56.4751 141.995 56.4751C141.311 55.1845 140.501 53.922 139.641 52.6735C139.641 52.6735 139.303 52.3158 138.76 51.7406C138.217 51.1585 137.47 50.3659 136.681 49.419C135.898 48.4791 135.074 47.3919 134.489 46.2206C133.904 45.0632 133.594 43.8147 133.699 42.9099C133.516 41.8157 133.615 40.6795 133.925 39.6274C134.101 39.1153 134.277 38.5893 134.538 38.1193C134.757 37.6213 135.053 37.1865 135.335 36.7376C136.497 34.97 137.949 33.4901 139.444 32.0943C139.444 32.0943 139.493 32.0592 139.556 32.0031C139.859 32.0031 140.177 32.0311 140.395 32.1153C140.36 31.975 140.48 31.989 140.494 31.9399L140.508 32.0592C140.874 31.6804 141.304 31.3437 141.769 31.0491C141.72 30.9159 141.699 30.8317 141.713 30.8247C140.007 30.3688 135.37 31.8347 134.066 30.7335L131.606 31.3157C130.612 30.8738 129.4 30.7125 129.802 30.1022C130.204 29.492 141.565 27.2265 144.709 28.2716L144.673 28.2926C144.673 28.2926 145.667 28.5171 145.639 28.3908C146.118 30.5582 146.915 33.5882 145.801 35.6363C146.069 36.3728 144.342 46.6695 142.51 43.934C142.721 42.2647 142.601 40.1815 142.721 38.5261C142.763 36.8498 142.721 34.7806 142.672 33.2305C142.672 33.2305 142.665 33.2095 142.651 33.1814C142.629 33.2235 142.615 33.2586 142.622 33.2796C140.578 34.6333 138.823 36.3728 137.675 38.2456C137.09 39.1784 136.73 40.1394 136.596 40.9951C136.469 41.8578 136.568 42.6153 136.871 43.5131C136.66 43.5412 136.554 43.7166 136.709 43.7937L136.927 43.6604C137.209 44.9721 138.076 46.0101 138.908 46.9781C139.754 47.9601 140.628 48.9561 141.333 50.4641C141.333 50.4571 141.347 49.9731 141.347 49.9591C143.109 52.0493 145.089 54.5042 146.626 57.4641C146.809 57.8359 146.992 58.2146 147.182 58.5934C147.394 59.0984 147.605 59.6104 147.817 60.1224C147.873 60.2908 147.979 60.4591 148 60.6345L147.859 61.1675L147.605 62.1074L147.591 62.1215Z",
|
|
46
|
+
fill: "#101214"
|
|
47
|
+
}), /*#__PURE__*/_react.default.createElement("defs", null, /*#__PURE__*/_react.default.createElement("clipPath", {
|
|
48
|
+
id: "clip0_5508_39188"
|
|
49
|
+
}, /*#__PURE__*/_react.default.createElement("rect", {
|
|
50
|
+
width: "111",
|
|
51
|
+
height: "111",
|
|
52
|
+
fill: "white",
|
|
53
|
+
transform: "translate(69 59)"
|
|
54
|
+
}))));
|
|
55
|
+
}
|
|
56
|
+
function NoProductAccessIcon() {
|
|
57
|
+
return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(TeamContainersNoProductAccess, null));
|
|
58
|
+
}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { useCallback, useEffect } from 'react';
|
|
2
|
-
import { useProductPermissionsStore } from '
|
|
3
|
-
export const useProductPermissions = (
|
|
2
|
+
import { useProductPermissionsStore } from '../../product-permission/main';
|
|
3
|
+
export const useProductPermissions = ({
|
|
4
|
+
userId,
|
|
5
|
+
cloudId,
|
|
6
|
+
permissionIds = ['manage', 'write']
|
|
7
|
+
}, {
|
|
4
8
|
enabled
|
|
5
9
|
} = {
|
|
6
10
|
enabled: true
|
|
@@ -13,16 +17,15 @@ export const useProductPermissions = (userId, cloudId, permissionId = 'read', {
|
|
|
13
17
|
cloudId,
|
|
14
18
|
userId,
|
|
15
19
|
enabled,
|
|
16
|
-
|
|
20
|
+
permissionIds
|
|
17
21
|
});
|
|
18
|
-
}, [cloudId, enabled, getPermissions, userId,
|
|
22
|
+
}, [cloudId, enabled, getPermissions, userId, permissionIds]);
|
|
19
23
|
useEffect(() => {
|
|
20
24
|
fetchData();
|
|
21
25
|
}, [fetchData]);
|
|
22
26
|
return {
|
|
23
27
|
loading: state.isLoading,
|
|
24
28
|
data: state.permissions,
|
|
25
|
-
error: state.error
|
|
26
|
-
...state
|
|
29
|
+
error: state.error
|
|
27
30
|
};
|
|
28
31
|
};
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { useTeamContainers } from './hooks/use-team-containers';
|
|
1
|
+
export { useTeamContainers } from './hooks/use-team-containers';
|
|
2
|
+
export { hasProductPermission } from './product-permission/utils';
|
|
@@ -5,7 +5,7 @@ const actions = {
|
|
|
5
5
|
userId,
|
|
6
6
|
cloudId,
|
|
7
7
|
enabled,
|
|
8
|
-
|
|
8
|
+
permissionIds
|
|
9
9
|
}) => async ({
|
|
10
10
|
setState,
|
|
11
11
|
getState,
|
|
@@ -13,9 +13,17 @@ const actions = {
|
|
|
13
13
|
}) => {
|
|
14
14
|
const {
|
|
15
15
|
hasLoaded,
|
|
16
|
-
isLoading
|
|
16
|
+
isLoading,
|
|
17
|
+
permissions
|
|
17
18
|
} = getState();
|
|
18
|
-
if (
|
|
19
|
+
if (isLoading || !userId || !cloudId || !enabled) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const shouldFetch = !hasLoaded || permissionIds.some(permissionId => {
|
|
23
|
+
var _permissions$confluen, _permissions$jira;
|
|
24
|
+
return ((_permissions$confluen = permissions.confluence) === null || _permissions$confluen === void 0 ? void 0 : _permissions$confluen[permissionId]) === undefined || ((_permissions$jira = permissions.jira) === null || _permissions$jira === void 0 ? void 0 : _permissions$jira[permissionId]) === undefined;
|
|
25
|
+
});
|
|
26
|
+
if (!shouldFetch) {
|
|
19
27
|
return;
|
|
20
28
|
}
|
|
21
29
|
try {
|
|
@@ -28,7 +36,7 @@ const actions = {
|
|
|
28
36
|
},
|
|
29
37
|
method: 'POST',
|
|
30
38
|
credentials: 'include',
|
|
31
|
-
body: getProductPermissionRequestBody(cloudId, userId,
|
|
39
|
+
body: getProductPermissionRequestBody(cloudId, userId, permissionIds)
|
|
32
40
|
});
|
|
33
41
|
if (!response.ok) {
|
|
34
42
|
throw new Error('Failed to fetch product permissions');
|
|
@@ -14,17 +14,33 @@ export const transformPermissions = permissions => {
|
|
|
14
14
|
return acc;
|
|
15
15
|
}, {});
|
|
16
16
|
};
|
|
17
|
-
export const getProductPermissionRequestBody = (cloudId, userId,
|
|
18
|
-
const body =
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
17
|
+
export const getProductPermissionRequestBody = (cloudId, userId, permissionIds) => {
|
|
18
|
+
const body = permissionIds.reduce((acc, permissionId) => {
|
|
19
|
+
const permission = {
|
|
20
|
+
permissionId,
|
|
21
|
+
resourceId: '',
|
|
22
|
+
principalId: `ari:cloud:identity::user/${userId}`,
|
|
23
|
+
dontRequirePrincipalInSite: true
|
|
24
|
+
};
|
|
25
|
+
return [...acc, {
|
|
26
|
+
...permission,
|
|
27
|
+
resourceId: `ari:cloud:confluence::site/${cloudId}`
|
|
28
|
+
}, {
|
|
29
|
+
...permission,
|
|
30
|
+
resourceId: `ari:cloud:jira-software::site/${cloudId}`
|
|
31
|
+
}];
|
|
32
|
+
}, []);
|
|
29
33
|
return JSON.stringify(body);
|
|
34
|
+
};
|
|
35
|
+
export const hasProductPermission = (permissions, product, permissionIds) => {
|
|
36
|
+
if (!permissions[product]) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
if ((!permissionIds || permissionIds.length === 0) && permissions[product]) {
|
|
40
|
+
return Object.values(permissions[product] || {}).some(value => value === true);
|
|
41
|
+
}
|
|
42
|
+
return permissionIds === null || permissionIds === void 0 ? void 0 : permissionIds.some(permissionId => {
|
|
43
|
+
var _permissions$product;
|
|
44
|
+
return (_permissions$product = permissions[product]) === null || _permissions$product === void 0 ? void 0 : _permissions$product[permissionId];
|
|
45
|
+
});
|
|
30
46
|
};
|
package/dist/es2019/index.js
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
export { TeamContainers } from './ui/team-containers';
|
|
2
|
-
export { useTeamContainers } from './controllers/hooks/use-team-containers';
|
|
2
|
+
export { useTeamContainers } from './controllers/hooks/use-team-containers';
|
|
3
|
+
export { useProductPermissions } from './controllers/hooks/use-product-permission';
|
|
4
|
+
export { hasProductPermission } from './controllers/product-permission/utils';
|