@webiny/app-security-access-management 0.0.0-mt-2 → 0.0.0-unstable.1145e7667f

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.md +1 -1
  2. package/components/GroupAutocomplete/graphql.d.ts +1 -1
  3. package/components/GroupAutocomplete/graphql.js +10 -4
  4. package/components/GroupAutocomplete/graphql.js.map +1 -0
  5. package/components/GroupAutocomplete/index.d.ts +5 -2
  6. package/components/GroupAutocomplete/index.js +19 -12
  7. package/components/GroupAutocomplete/index.js.map +1 -0
  8. package/components/NotAuthorizedError/NotAuthorizedError.d.ts +2 -2
  9. package/components/NotAuthorizedError/NotAuthorizedError.js +27 -18
  10. package/components/NotAuthorizedError/NotAuthorizedError.js.map +1 -0
  11. package/components/NotAuthorizedError/index.js +12 -1
  12. package/components/NotAuthorizedError/index.js.map +1 -0
  13. package/index.d.ts +8 -1
  14. package/index.js +65 -4
  15. package/index.js.map +1 -0
  16. package/package.json +25 -30
  17. package/plugins/constants.js +8 -2
  18. package/plugins/constants.js.map +1 -0
  19. package/plugins/index.js +14 -8
  20. package/plugins/index.js.map +1 -0
  21. package/plugins/installation.js +51 -54
  22. package/plugins/installation.js.map +1 -0
  23. package/plugins/permissionRenderer/SecurityPermissions.d.ts +8 -5
  24. package/plugins/permissionRenderer/SecurityPermissions.js +57 -66
  25. package/plugins/permissionRenderer/SecurityPermissions.js.map +1 -0
  26. package/plugins/permissionRenderer/index.js +22 -16
  27. package/plugins/permissionRenderer/index.js.map +1 -0
  28. package/plugins/routes.js +27 -19
  29. package/plugins/routes.js.map +1 -0
  30. package/plugins/secureRouteError.js +12 -4
  31. package/plugins/secureRouteError.js.map +1 -0
  32. package/types.d.ts +15 -0
  33. package/types.js +5 -0
  34. package/types.js.map +1 -0
  35. package/ui/elements/GroupAutocompleteElement.d.ts +2 -1
  36. package/ui/elements/GroupAutocompleteElement.js +38 -24
  37. package/ui/elements/GroupAutocompleteElement.js.map +1 -0
  38. package/ui/views/ApiKeys/ApiKeyForm.d.ts +5 -3
  39. package/ui/views/ApiKeys/ApiKeyForm.js +149 -158
  40. package/ui/views/ApiKeys/ApiKeyForm.js.map +1 -0
  41. package/ui/views/ApiKeys/ApiKeys.d.ts +8 -3
  42. package/ui/views/ApiKeys/ApiKeys.js +16 -9
  43. package/ui/views/ApiKeys/ApiKeys.js.map +1 -0
  44. package/ui/views/ApiKeys/ApiKeysDataList.d.ts +5 -3
  45. package/ui/views/ApiKeys/ApiKeysDataList.js +124 -148
  46. package/ui/views/ApiKeys/ApiKeysDataList.js.map +1 -0
  47. package/ui/views/ApiKeys/graphql.d.ts +5 -5
  48. package/ui/views/ApiKeys/graphql.js +18 -8
  49. package/ui/views/ApiKeys/graphql.js.map +1 -0
  50. package/ui/views/ApiKeys/index.d.ts +1 -1
  51. package/ui/views/ApiKeys/index.js +16 -1
  52. package/ui/views/ApiKeys/index.js.map +1 -0
  53. package/ui/views/ApiKeys/utils.d.ts +2 -1
  54. package/ui/views/ApiKeys/utils.js +13 -5
  55. package/ui/views/ApiKeys/utils.js.map +1 -0
  56. package/ui/views/Groups/Groups.d.ts +8 -3
  57. package/ui/views/Groups/Groups.js +16 -9
  58. package/ui/views/Groups/Groups.js.map +1 -0
  59. package/ui/views/Groups/GroupsDataList.d.ts +5 -3
  60. package/ui/views/Groups/GroupsDataList.js +129 -152
  61. package/ui/views/Groups/GroupsDataList.js.map +1 -0
  62. package/ui/views/Groups/GroupsForm.d.ts +5 -3
  63. package/ui/views/Groups/GroupsForm.js +150 -159
  64. package/ui/views/Groups/GroupsForm.js.map +1 -0
  65. package/ui/views/Groups/graphql.d.ts +5 -5
  66. package/ui/views/Groups/graphql.js +19 -9
  67. package/ui/views/Groups/graphql.js.map +1 -0
  68. package/ui/views/Groups/index.d.ts +1 -1
  69. package/ui/views/Groups/index.js +16 -1
  70. package/ui/views/Groups/index.js.map +1 -0
  71. package/ui/views/utils.d.ts +3 -2
  72. package/ui/views/utils.js +16 -23
  73. package/ui/views/utils.js.map +1 -0
  74. package/plugins/menus.d.ts +0 -4
  75. package/plugins/menus.js +0 -61
package/README.md CHANGED
@@ -51,7 +51,7 @@ A simple `Authenticator` React component (uses Amazon Cognito and AWS Amplify's
51
51
 
52
52
  ```tsx
53
53
  import React, { useEffect } from "react";
54
- import Auth from "@aws-amplify/auth";
54
+ import { Auth } from "@aws-amplify/auth";
55
55
  import { useSecurity, SecurityIdentity } from "@webiny/app-security";
56
56
 
57
57
  // Apart from the React component, we also configure the Auth class here.
@@ -1 +1 @@
1
- export declare const LIST_GROUPS: any;
1
+ export declare const LIST_GROUPS: import("graphql").DocumentNode;
@@ -1,6 +1,12 @@
1
- import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
1
+ "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.LIST_GROUPS = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
+ var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
3
10
  var _templateObject;
4
-
5
- import gql from "graphql-tag";
6
- export var LIST_GROUPS = gql(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query listGroups {\n security {\n groups: listGroups {\n data {\n id\n slug\n name\n description\n createdOn\n }\n }\n }\n }\n"])));
11
+ var LIST_GROUPS = (0, _graphqlTag.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n query listGroups {\n security {\n groups: listGroups {\n data {\n id\n slug\n name\n description\n createdOn\n }\n }\n }\n }\n"])));
12
+ exports.LIST_GROUPS = LIST_GROUPS;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["LIST_GROUPS","gql"],"sources":["graphql.ts"],"sourcesContent":["import gql from \"graphql-tag\";\n\nexport const LIST_GROUPS = gql`\n query listGroups {\n security {\n groups: listGroups {\n data {\n id\n slug\n name\n description\n createdOn\n }\n }\n }\n }\n`;\n"],"mappings":";;;;;;;;AAAA;AAA8B;AAEvB,IAAMA,WAAW,OAAGC,mBAAG,4XAc7B;AAAC"}
@@ -1,2 +1,5 @@
1
- /// <reference types="react" />
2
- export declare const GroupAutocomplete: (props: any) => JSX.Element;
1
+ import React from "react";
2
+ import { AutoCompleteProps } from "@webiny/ui/AutoComplete";
3
+ declare type GroupAutocompleteProps = Partial<AutoCompleteProps>;
4
+ export declare const GroupAutocomplete: React.FC<GroupAutocompleteProps>;
5
+ export {};
@@ -1,16 +1,23 @@
1
- import React from "react";
2
- import { AutoComplete } from "@webiny/ui/AutoComplete";
3
- import { LIST_GROUPS } from "./graphql";
4
- import { useQuery } from "@apollo/react-hooks";
5
- export var GroupAutocomplete = function GroupAutocomplete(props) {
6
- var _useQuery = useQuery(LIST_GROUPS),
7
- data = _useQuery.data,
8
- loading = _useQuery.loading;
1
+ "use strict";
9
2
 
10
- var options = loading && !data ? [] : data.security.groups.data;
11
- return /*#__PURE__*/React.createElement(AutoComplete, Object.assign({}, props, {
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.GroupAutocomplete = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _AutoComplete = require("@webiny/ui/AutoComplete");
10
+ var _graphql = require("./graphql");
11
+ var _reactHooks = require("@apollo/react-hooks");
12
+ var GroupAutocomplete = function GroupAutocomplete(props) {
13
+ var _useQuery = (0, _reactHooks.useQuery)(_graphql.LIST_GROUPS),
14
+ data = _useQuery.data,
15
+ loading = _useQuery.loading;
16
+ var options = loading || !data ? [] : data.security.groups.data;
17
+ return /*#__PURE__*/_react.default.createElement(_AutoComplete.AutoComplete, Object.assign({}, props, {
12
18
  options: options,
13
19
  valueProp: "id",
14
- value: loading ? null : props.value
20
+ value: loading ? undefined : props.value
15
21
  }));
16
- };
22
+ };
23
+ exports.GroupAutocomplete = GroupAutocomplete;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GroupAutocomplete","props","useQuery","LIST_GROUPS","data","loading","options","security","groups","undefined","value"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { AutoComplete, AutoCompleteProps } from \"@webiny/ui/AutoComplete\";\nimport { LIST_GROUPS } from \"./graphql\";\nimport { useQuery } from \"@apollo/react-hooks\";\n\ntype GroupAutocompleteProps = Partial<AutoCompleteProps>;\nexport const GroupAutocomplete: React.FC<GroupAutocompleteProps> = props => {\n const { data, loading } = useQuery(LIST_GROUPS);\n\n const options = loading || !data ? [] : data.security.groups.data;\n\n return (\n <AutoComplete\n {...props}\n options={options}\n valueProp={\"id\"}\n value={loading ? undefined : props.value}\n />\n );\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AAGO,IAAMA,iBAAmD,GAAG,SAAtDA,iBAAmD,CAAGC,KAAK,EAAI;EACxE,gBAA0B,IAAAC,oBAAQ,EAACC,oBAAW,CAAC;IAAvCC,IAAI,aAAJA,IAAI;IAAEC,OAAO,aAAPA,OAAO;EAErB,IAAMC,OAAO,GAAGD,OAAO,IAAI,CAACD,IAAI,GAAG,EAAE,GAAGA,IAAI,CAACG,QAAQ,CAACC,MAAM,CAACJ,IAAI;EAEjE,oBACI,6BAAC,0BAAY,oBACLH,KAAK;IACT,OAAO,EAAEK,OAAQ;IACjB,SAAS,EAAE,IAAK;IAChB,KAAK,EAAED,OAAO,GAAGI,SAAS,GAAGR,KAAK,CAACS;EAAM,GAC3C;AAEV,CAAC;AAAC"}
@@ -1,2 +1,2 @@
1
- /// <reference types="react" />
2
- export declare const NotAuthorizedError: () => JSX.Element;
1
+ import * as React from "react";
2
+ export declare const NotAuthorizedError: React.FC;
@@ -1,11 +1,19 @@
1
- import * as React from "react";
2
- import { Link } from "@webiny/react-router";
3
- import { css } from "emotion";
4
- import styled from "@emotion/styled";
5
- import Helmet from "react-helmet";
6
- import authErrorImg from "./SecureRouteError.svg";
7
- import { Typography } from "@webiny/ui/Typography";
8
- var ContentWrapper = /*#__PURE__*/styled("div", {
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.NotAuthorizedError = void 0;
9
+ var React = _interopRequireWildcard(require("react"));
10
+ var _reactRouter = require("@webiny/react-router");
11
+ var _emotion = require("emotion");
12
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
13
+ var _reactHelmet = _interopRequireDefault(require("react-helmet"));
14
+ var _SecureRouteError = _interopRequireDefault(require("./SecureRouteError.svg"));
15
+ var _Typography = require("@webiny/ui/Typography");
16
+ var ContentWrapper = /*#__PURE__*/(0, _styled.default)("div", {
9
17
  target: "e18nns4o0",
10
18
  label: "ContentWrapper"
11
19
  })({
@@ -15,36 +23,37 @@ var ContentWrapper = /*#__PURE__*/styled("div", {
15
23
  margin: "auto"
16
24
  });
17
25
  var styles = {
18
- authErrorImgStyle: /*#__PURE__*/css({
26
+ authErrorImgStyle: /*#__PURE__*/(0, _emotion.css)({
19
27
  width: "192px",
20
28
  paddingBottom: "24px"
21
29
  }, "label:authErrorImgStyle;"),
22
- bodyStyle: /*#__PURE__*/css({
30
+ bodyStyle: /*#__PURE__*/(0, _emotion.css)({
23
31
  color: "var(--mdc-theme-text-primary-on-background)",
24
32
  display: "block"
25
33
  }, "label:bodyStyle;"),
26
- linkStyle: /*#__PURE__*/css({
34
+ linkStyle: /*#__PURE__*/(0, _emotion.css)({
27
35
  textDecoration: "none",
28
36
  "&:hover": {
29
37
  textDecoration: "none"
30
38
  }
31
39
  }, "label:linkStyle;")
32
40
  };
33
- export var NotAuthorizedError = function NotAuthorizedError() {
34
- return /*#__PURE__*/React.createElement(ContentWrapper, null, /*#__PURE__*/React.createElement(Helmet, {
41
+ var NotAuthorizedError = function NotAuthorizedError() {
42
+ return /*#__PURE__*/React.createElement(ContentWrapper, null, /*#__PURE__*/React.createElement(_reactHelmet.default, {
35
43
  title: "Not authorized"
36
44
  }), /*#__PURE__*/React.createElement("img", {
37
45
  className: styles.authErrorImgStyle,
38
- src: authErrorImg,
46
+ src: _SecureRouteError.default,
39
47
  alt: "Not Authorized"
40
- }), /*#__PURE__*/React.createElement(Typography, {
48
+ }), /*#__PURE__*/React.createElement(_Typography.Typography, {
41
49
  use: "body1",
42
50
  className: styles.bodyStyle
43
- }, "You are not authorized to view this route."), /*#__PURE__*/React.createElement(Typography, {
51
+ }, "You are not authorized to view this route."), /*#__PURE__*/React.createElement(_Typography.Typography, {
44
52
  use: "body1",
45
53
  className: styles.bodyStyle
46
- }, "Please contact your administrator to request access."), /*#__PURE__*/React.createElement(Link, {
54
+ }, "Please contact your administrator to request access."), /*#__PURE__*/React.createElement(_reactRouter.Link, {
47
55
  to: "/",
48
56
  className: styles.linkStyle
49
57
  }, "Take me back."));
50
- };
58
+ };
59
+ exports.NotAuthorizedError = NotAuthorizedError;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ContentWrapper","styled","display","paddingTop","textAlign","margin","styles","authErrorImgStyle","css","width","paddingBottom","bodyStyle","color","linkStyle","textDecoration","NotAuthorizedError","authErrorImg"],"sources":["NotAuthorizedError.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Link } from \"@webiny/react-router\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport Helmet from \"react-helmet\";\nimport authErrorImg from \"./SecureRouteError.svg\";\nimport { Typography } from \"@webiny/ui/Typography\";\n\nconst ContentWrapper = styled(\"div\")({\n display: \"block\",\n paddingTop: \"15%\",\n textAlign: \"center\",\n margin: \"auto\"\n});\n\nconst styles = {\n authErrorImgStyle: css({\n width: \"192px\",\n paddingBottom: \"24px\"\n }),\n bodyStyle: css({\n color: \"var(--mdc-theme-text-primary-on-background)\",\n display: \"block\"\n }),\n linkStyle: css({\n textDecoration: \"none\",\n \"&:hover\": {\n textDecoration: \"none\"\n }\n })\n};\n\nexport const NotAuthorizedError: React.FC = () => {\n return (\n <ContentWrapper>\n <Helmet title={\"Not authorized\"} />\n\n <img className={styles.authErrorImgStyle} src={authErrorImg} alt=\"Not Authorized\" />\n\n <Typography use={\"body1\"} className={styles.bodyStyle}>\n You are not authorized to view this route.\n </Typography>\n\n <Typography use={\"body1\"} className={styles.bodyStyle}>\n Please contact your administrator to request access.\n </Typography>\n\n <Link to=\"/\" className={styles.linkStyle}>\n Take me back.\n </Link>\n </ContentWrapper>\n );\n};\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMA,cAAc,oBAAGC,eAAM,EAAC,KAAK;EAAA;EAAA;AAAA,GAAE;EACjCC,OAAO,EAAE,OAAO;EAChBC,UAAU,EAAE,KAAK;EACjBC,SAAS,EAAE,QAAQ;EACnBC,MAAM,EAAE;AACZ,CAAC,CAAC;AAEF,IAAMC,MAAM,GAAG;EACXC,iBAAiB,eAAE,IAAAC,YAAG,EAAC;IACnBC,KAAK,EAAE,OAAO;IACdC,aAAa,EAAE;EACnB,CAAC,6BAAC;EACFC,SAAS,eAAE,IAAAH,YAAG,EAAC;IACXI,KAAK,EAAE,6CAA6C;IACpDV,OAAO,EAAE;EACb,CAAC,qBAAC;EACFW,SAAS,eAAE,IAAAL,YAAG,EAAC;IACXM,cAAc,EAAE,MAAM;IACtB,SAAS,EAAE;MACPA,cAAc,EAAE;IACpB;EACJ,CAAC;AACL,CAAC;AAEM,IAAMC,kBAA4B,GAAG,SAA/BA,kBAA4B,GAAS;EAC9C,oBACI,oBAAC,cAAc,qBACX,oBAAC,oBAAM;IAAC,KAAK,EAAE;EAAiB,EAAG,eAEnC;IAAK,SAAS,EAAET,MAAM,CAACC,iBAAkB;IAAC,GAAG,EAAES,yBAAa;IAAC,GAAG,EAAC;EAAgB,EAAG,eAEpF,oBAAC,sBAAU;IAAC,GAAG,EAAE,OAAQ;IAAC,SAAS,EAAEV,MAAM,CAACK;EAAU,GAAC,4CAEvD,CAAa,eAEb,oBAAC,sBAAU;IAAC,GAAG,EAAE,OAAQ;IAAC,SAAS,EAAEL,MAAM,CAACK;EAAU,GAAC,sDAEvD,CAAa,eAEb,oBAAC,iBAAI;IAAC,EAAE,EAAC,GAAG;IAAC,SAAS,EAAEL,MAAM,CAACO;EAAU,GAAC,eAE1C,CAAO,CACM;AAEzB,CAAC;AAAC"}
@@ -1 +1,12 @@
1
- export { NotAuthorizedError } from "./NotAuthorizedError";
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "NotAuthorizedError", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _NotAuthorizedError.NotAuthorizedError;
10
+ }
11
+ });
12
+ var _NotAuthorizedError = require("./NotAuthorizedError");
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { NotAuthorizedError } from \"./NotAuthorizedError\";\n"],"mappings":";;;;;;;;;;;AAAA"}
package/index.d.ts CHANGED
@@ -1,2 +1,9 @@
1
- declare const _default: () => import("@webiny/plugins/types").PluginCollection;
1
+ import React from "react";
2
+ /**
3
+ * TODO @ts-refactor
4
+ * Find out why is there empty default export
5
+ */
6
+ declare const _default: () => never[];
2
7
  export default _default;
8
+ export declare const AccessManagementExtension: () => JSX.Element;
9
+ export declare const AccessManagement: React.MemoExoticComponent<() => JSX.Element>;
package/index.js CHANGED
@@ -1,4 +1,65 @@
1
- import plugins from "./plugins";
2
- export default (function () {
3
- return plugins();
4
- });
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = exports.AccessManagementExtension = exports.AccessManagement = void 0;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _plugins = require("@webiny/plugins");
11
+ var _appAdmin = require("@webiny/app-admin");
12
+ var _appSecurity = require("@webiny/app-security");
13
+ var _constants = require("./plugins/constants");
14
+ var _Groups = require("./ui/views/Groups");
15
+ var _ApiKeys = require("./ui/views/ApiKeys");
16
+ var _plugins2 = _interopRequireDefault(require("./plugins"));
17
+ /**
18
+ * TODO @ts-refactor
19
+ * Find out why is there empty default export
20
+ */
21
+ // @ts-ignore
22
+ var _default = function _default() {
23
+ return [];
24
+ };
25
+ exports.default = _default;
26
+ var AccessManagementExtension = function AccessManagementExtension() {
27
+ _plugins.plugins.register((0, _plugins2.default)());
28
+ return /*#__PURE__*/_react.default.createElement(_appAdmin.Plugins, null, /*#__PURE__*/_react.default.createElement(_appSecurity.HasPermission, {
29
+ name: _constants.Permission.Groups
30
+ }, /*#__PURE__*/_react.default.createElement(_appAdmin.AddRoute, {
31
+ exact: true,
32
+ path: "/access-management/groups"
33
+ }, /*#__PURE__*/_react.default.createElement(_appAdmin.Layout, {
34
+ title: "Access Management - Groups"
35
+ }, /*#__PURE__*/_react.default.createElement(_Groups.Groups, null)))), /*#__PURE__*/_react.default.createElement(_appSecurity.HasPermission, {
36
+ name: _constants.Permission.ApiKeys
37
+ }, /*#__PURE__*/_react.default.createElement(_appAdmin.AddRoute, {
38
+ exact: true,
39
+ path: "/access-management/api-keys"
40
+ }, /*#__PURE__*/_react.default.createElement(_appAdmin.Layout, {
41
+ title: "Access Management - API Keys"
42
+ }, /*#__PURE__*/_react.default.createElement(_ApiKeys.ApiKeys, null)))), /*#__PURE__*/_react.default.createElement(_appSecurity.HasPermission, {
43
+ any: [_constants.Permission.Groups, _constants.Permission.ApiKeys]
44
+ }, /*#__PURE__*/_react.default.createElement(_appAdmin.AddMenu, {
45
+ name: "settings"
46
+ }, /*#__PURE__*/_react.default.createElement(_appAdmin.AddMenu, {
47
+ name: "settings.accessManagement",
48
+ label: "Access Management"
49
+ }, /*#__PURE__*/_react.default.createElement(_appSecurity.HasPermission, {
50
+ name: _constants.Permission.Groups
51
+ }, /*#__PURE__*/_react.default.createElement(_appAdmin.AddMenu, {
52
+ name: "settings.accessManagement.groups",
53
+ label: "Groups",
54
+ path: "/access-management/groups"
55
+ })), /*#__PURE__*/_react.default.createElement(_appSecurity.HasPermission, {
56
+ name: _constants.Permission.ApiKeys
57
+ }, /*#__PURE__*/_react.default.createElement(_appAdmin.AddMenu, {
58
+ name: "settings.accessManagement.apiKeys",
59
+ label: "API Keys",
60
+ path: "/access-management/api-keys"
61
+ }))))));
62
+ };
63
+ exports.AccessManagementExtension = AccessManagementExtension;
64
+ var AccessManagement = /*#__PURE__*/(0, _react.memo)(AccessManagementExtension);
65
+ exports.AccessManagement = AccessManagement;
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AccessManagementExtension","plugins","register","accessManagementPugins","Permission","Groups","ApiKeys","AccessManagement","memo"],"sources":["index.tsx"],"sourcesContent":["import React, { memo } from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Layout, Plugins, AddMenu, AddRoute } from \"@webiny/app-admin\";\nimport { HasPermission } from \"@webiny/app-security\";\nimport { Permission } from \"~/plugins/constants\";\nimport { Groups } from \"~/ui/views/Groups\";\nimport { ApiKeys } from \"~/ui/views/ApiKeys\";\nimport accessManagementPugins from \"./plugins\";\n\n/**\n * TODO @ts-refactor\n * Find out why is there empty default export\n */\n// @ts-ignore\nexport default () => [];\n\nexport const AccessManagementExtension = () => {\n plugins.register(accessManagementPugins());\n\n return (\n <Plugins>\n <HasPermission name={Permission.Groups}>\n <AddRoute exact path={\"/access-management/groups\"}>\n <Layout title={\"Access Management - Groups\"}>\n <Groups />\n </Layout>\n </AddRoute>\n </HasPermission>\n <HasPermission name={Permission.ApiKeys}>\n <AddRoute exact path={\"/access-management/api-keys\"}>\n <Layout title={\"Access Management - API Keys\"}>\n <ApiKeys />\n </Layout>\n </AddRoute>\n </HasPermission>\n <HasPermission any={[Permission.Groups, Permission.ApiKeys]}>\n <AddMenu name={\"settings\"}>\n <AddMenu name={\"settings.accessManagement\"} label={\"Access Management\"}>\n <HasPermission name={Permission.Groups}>\n <AddMenu\n name={\"settings.accessManagement.groups\"}\n label={\"Groups\"}\n path={\"/access-management/groups\"}\n />\n </HasPermission>\n <HasPermission name={Permission.ApiKeys}>\n <AddMenu\n name={\"settings.accessManagement.apiKeys\"}\n label={\"API Keys\"}\n path={\"/access-management/api-keys\"}\n />\n </HasPermission>\n </AddMenu>\n </AddMenu>\n </HasPermission>\n </Plugins>\n );\n};\n\nexport const AccessManagement = memo(AccessManagementExtension);\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA,eACe;EAAA,OAAM,EAAE;AAAA;AAAA;AAEhB,IAAMA,yBAAyB,GAAG,SAA5BA,yBAAyB,GAAS;EAC3CC,gBAAO,CAACC,QAAQ,CAAC,IAAAC,iBAAsB,GAAE,CAAC;EAE1C,oBACI,6BAAC,iBAAO,qBACJ,6BAAC,0BAAa;IAAC,IAAI,EAAEC,qBAAU,CAACC;EAAO,gBACnC,6BAAC,kBAAQ;IAAC,KAAK;IAAC,IAAI,EAAE;EAA4B,gBAC9C,6BAAC,gBAAM;IAAC,KAAK,EAAE;EAA6B,gBACxC,6BAAC,cAAM,OAAG,CACL,CACF,CACC,eAChB,6BAAC,0BAAa;IAAC,IAAI,EAAED,qBAAU,CAACE;EAAQ,gBACpC,6BAAC,kBAAQ;IAAC,KAAK;IAAC,IAAI,EAAE;EAA8B,gBAChD,6BAAC,gBAAM;IAAC,KAAK,EAAE;EAA+B,gBAC1C,6BAAC,gBAAO,OAAG,CACN,CACF,CACC,eAChB,6BAAC,0BAAa;IAAC,GAAG,EAAE,CAACF,qBAAU,CAACC,MAAM,EAAED,qBAAU,CAACE,OAAO;EAAE,gBACxD,6BAAC,iBAAO;IAAC,IAAI,EAAE;EAAW,gBACtB,6BAAC,iBAAO;IAAC,IAAI,EAAE,2BAA4B;IAAC,KAAK,EAAE;EAAoB,gBACnE,6BAAC,0BAAa;IAAC,IAAI,EAAEF,qBAAU,CAACC;EAAO,gBACnC,6BAAC,iBAAO;IACJ,IAAI,EAAE,kCAAmC;IACzC,KAAK,EAAE,QAAS;IAChB,IAAI,EAAE;EAA4B,EACpC,CACU,eAChB,6BAAC,0BAAa;IAAC,IAAI,EAAED,qBAAU,CAACE;EAAQ,gBACpC,6BAAC,iBAAO;IACJ,IAAI,EAAE,mCAAoC;IAC1C,KAAK,EAAE,UAAW;IAClB,IAAI,EAAE;EAA8B,EACtC,CACU,CACV,CACJ,CACE,CACV;AAElB,CAAC;AAAC;AAEK,IAAMC,gBAAgB,gBAAG,IAAAC,WAAI,EAACR,yBAAyB,CAAC;AAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-security-access-management",
3
- "version": "0.0.0-mt-2",
3
+ "version": "0.0.0-unstable.1145e7667f",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -14,37 +14,37 @@
14
14
  "license": "MIT",
15
15
  "dependencies": {
16
16
  "@apollo/react-hooks": "3.1.5",
17
- "@emotion/styled": "10.0.27",
18
- "@webiny/app": "0.0.0-mt-2",
19
- "@webiny/app-admin": "0.0.0-mt-2",
20
- "@webiny/app-security": "0.0.0-mt-2",
21
- "@webiny/form": "0.0.0-mt-2",
22
- "@webiny/plugins": "0.0.0-mt-2",
23
- "@webiny/react-router": "0.0.0-mt-2",
24
- "@webiny/ui": "0.0.0-mt-2",
25
- "@webiny/validation": "0.0.0-mt-2",
17
+ "@emotion/styled": "11.10.6",
18
+ "@webiny/app": "0.0.0-unstable.1145e7667f",
19
+ "@webiny/app-admin": "0.0.0-unstable.1145e7667f",
20
+ "@webiny/app-security": "0.0.0-unstable.1145e7667f",
21
+ "@webiny/form": "0.0.0-unstable.1145e7667f",
22
+ "@webiny/plugins": "0.0.0-unstable.1145e7667f",
23
+ "@webiny/react-router": "0.0.0-unstable.1145e7667f",
24
+ "@webiny/ui": "0.0.0-unstable.1145e7667f",
25
+ "@webiny/validation": "0.0.0-unstable.1145e7667f",
26
26
  "emotion": "10.0.27",
27
- "graphql-tag": "2.12.5",
27
+ "graphql-tag": "2.12.6",
28
28
  "lodash": "4.17.21",
29
- "react": "16.14.0",
30
- "react-dom": "16.14.0",
31
- "react-helmet": "5.2.1"
29
+ "react": "17.0.2",
30
+ "react-dom": "17.0.2",
31
+ "react-helmet": "6.1.0"
32
32
  },
33
33
  "devDependencies": {
34
- "@babel/cli": "^7.5.5",
35
- "@babel/core": "^7.5.5",
36
- "@babel/plugin-proposal-class-properties": "^7.5.5",
37
- "@babel/preset-env": "^7.5.5",
38
- "@babel/preset-react": "^7.0.0",
39
- "@babel/preset-typescript": "^7.8.3",
40
- "@webiny/cli": "^0.0.0-mt-2",
41
- "@webiny/project-utils": "^0.0.0-mt-2",
34
+ "@babel/cli": "^7.19.3",
35
+ "@babel/core": "^7.19.3",
36
+ "@babel/plugin-proposal-class-properties": "^7.18.6",
37
+ "@babel/preset-env": "^7.19.4",
38
+ "@babel/preset-react": "^7.18.6",
39
+ "@babel/preset-typescript": "^7.18.6",
40
+ "@types/react-helmet": "^6.1.5",
41
+ "@webiny/cli": "^0.0.0-unstable.1145e7667f",
42
+ "@webiny/project-utils": "^0.0.0-unstable.1145e7667f",
42
43
  "babel-plugin-emotion": "^9.2.8",
43
44
  "babel-plugin-lodash": "^3.3.4",
44
- "babel-plugin-named-asset-import": "^1.0.0-next.3e165448",
45
45
  "rimraf": "^3.0.2",
46
46
  "ttypescript": "^1.5.12",
47
- "typescript": "^4.1.3"
47
+ "typescript": "4.7.4"
48
48
  },
49
49
  "publishConfig": {
50
50
  "access": "public",
@@ -54,11 +54,6 @@
54
54
  "build": "yarn webiny run build",
55
55
  "watch": "yarn webiny run watch"
56
56
  },
57
- "svgo": {
58
- "plugins": {
59
- "removeViewBox": false
60
- }
61
- },
62
57
  "adio": {
63
58
  "ignore": {
64
59
  "peerDependencies": [
@@ -66,5 +61,5 @@
66
61
  ]
67
62
  }
68
63
  },
69
- "gitHead": "3c0dcfb3c22c9f83107fdb97b25014cd03d9db7d"
64
+ "gitHead": "1145e7667ffd3d18bfea1e73d6078cd6a35c1038"
70
65
  }
@@ -1,6 +1,12 @@
1
- export var Permission;
1
+ "use strict";
2
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Permission = void 0;
7
+ var Permission;
8
+ exports.Permission = Permission;
3
9
  (function (Permission) {
4
10
  Permission["Groups"] = "security.group";
5
11
  Permission["ApiKeys"] = "security.apiKey";
6
- })(Permission || (Permission = {}));
12
+ })(Permission || (exports.Permission = Permission = {}));
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Permission"],"sources":["constants.ts"],"sourcesContent":["export enum Permission {\n Groups = \"security.group\",\n ApiKeys = \"security.apiKey\"\n}\n"],"mappings":";;;;;;IAAYA,UAAU;AAAA;AAAA,WAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;AAAA,GAAVA,UAAU,0BAAVA,UAAU"}
package/plugins/index.js CHANGED
@@ -1,8 +1,14 @@
1
- import routes from "./routes";
2
- import menus from "./menus";
3
- import installation from "./installation";
4
- import permissionRenderer from "./permissionRenderer";
5
- import secureRouteError from "./secureRouteError";
6
- export default (function () {
7
- return [routes, menus, installation, permissionRenderer, secureRouteError];
8
- });
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _installation = _interopRequireDefault(require("./installation"));
9
+ var _permissionRenderer = _interopRequireDefault(require("./permissionRenderer"));
10
+ var _secureRouteError = _interopRequireDefault(require("./secureRouteError"));
11
+ var _default = function _default() {
12
+ return [_installation.default, _permissionRenderer.default, _secureRouteError.default];
13
+ };
14
+ exports.default = _default;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["installation","permissionRenderer","secureRouteError"],"sources":["index.ts"],"sourcesContent":["import { PluginCollection } from \"@webiny/plugins/types\";\nimport installation from \"./installation\";\nimport permissionRenderer from \"./permissionRenderer\";\nimport secureRouteError from \"~/plugins/secureRouteError\";\n\nexport default (): PluginCollection => [installation, permissionRenderer, secureRouteError];\n"],"mappings":";;;;;;;AACA;AACA;AACA;AAA0D,eAE3C;EAAA,OAAwB,CAACA,qBAAY,EAAEC,2BAAkB,EAAEC,yBAAgB,CAAC;AAAA;AAAA"}
@@ -1,61 +1,62 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
- import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
1
+ "use strict";
4
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
+ var _react = _interopRequireWildcard(require("react"));
14
+ var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
15
+ var _reactHooks = require("@apollo/react-hooks");
16
+ var _Alert = require("@webiny/ui/Alert");
17
+ var _Progress = require("@webiny/ui/Progress");
18
+ var _SimpleForm = require("@webiny/app-admin/components/SimpleForm");
19
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
5
20
  var _templateObject, _templateObject2;
6
-
7
- import _regeneratorRuntime from "@babel/runtime/regenerator";
8
- import React, { useState, useEffect } from "react";
9
- import gql from "graphql-tag";
10
- import { useApolloClient } from "@apollo/react-hooks";
11
- import { Alert } from "@webiny/ui/Alert";
12
- import { CircularProgress } from "@webiny/ui/Progress";
13
- import { SimpleForm, SimpleFormContent } from "@webiny/app-admin/components/SimpleForm";
14
- import styled from "@emotion/styled";
15
- var SimpleFormPlaceholder = /*#__PURE__*/styled("div", {
21
+ var SimpleFormPlaceholder = /*#__PURE__*/(0, _styled.default)("div", {
16
22
  target: "evolwsn0",
17
23
  label: "SimpleFormPlaceholder"
18
24
  })({
19
25
  minHeight: 300,
20
26
  minWidth: 400
21
27
  });
22
- var IS_INSTALLED = gql(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query IsSecurityInstalled {\n security {\n version\n }\n }\n"])));
23
- var INSTALL = gql(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n mutation InstallSecurity {\n security {\n install {\n data\n error {\n code\n message\n }\n }\n }\n }\n"])));
24
-
28
+ var IS_INSTALLED = (0, _graphqlTag.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n query IsSecurityInstalled {\n security {\n version\n }\n }\n"])));
29
+ var INSTALL = (0, _graphqlTag.default)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n mutation InstallSecurity {\n security {\n install {\n data\n error {\n code\n message\n }\n }\n }\n }\n"])));
25
30
  var SecurityInstaller = function SecurityInstaller(_ref) {
26
31
  var onInstalled = _ref.onInstalled;
27
- var client = useApolloClient();
28
-
29
- var _useState = useState(null),
30
- _useState2 = _slicedToArray(_useState, 2),
31
- error = _useState2[0],
32
- setError = _useState2[1];
33
-
34
- useEffect(function () {
32
+ var client = (0, _reactHooks.useApolloClient)();
33
+ var _useState = (0, _react.useState)(null),
34
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
35
+ error = _useState2[0],
36
+ setError = _useState2[1];
37
+ (0, _react.useEffect)(function () {
35
38
  client.mutate({
36
39
  mutation: INSTALL
37
40
  }).then(function (_ref2) {
38
41
  var data = _ref2.data;
39
42
  var error = data.security.install.error;
40
-
41
43
  if (error) {
42
44
  setError(error.message);
43
45
  return;
44
- } // Just so the user sees the actual message.
45
-
46
+ }
46
47
 
48
+ // Just so the user sees the actual message.
47
49
  setTimeout(onInstalled, 3000);
48
50
  });
49
51
  }, []);
50
- var label = error ? /*#__PURE__*/React.createElement(Alert, {
52
+ var label = error ? /*#__PURE__*/_react.default.createElement(_Alert.Alert, {
51
53
  title: "Something went wrong",
52
54
  type: "danger"
53
55
  }, error) : "Installing Security...";
54
- return /*#__PURE__*/React.createElement(SimpleForm, null, /*#__PURE__*/React.createElement(CircularProgress, {
56
+ return /*#__PURE__*/_react.default.createElement(_SimpleForm.SimpleForm, null, /*#__PURE__*/_react.default.createElement(_Progress.CircularProgress, {
55
57
  label: label
56
- }), /*#__PURE__*/React.createElement(SimpleFormContent, null, /*#__PURE__*/React.createElement(SimpleFormPlaceholder, null)));
58
+ }), /*#__PURE__*/_react.default.createElement(_SimpleForm.SimpleFormContent, null, /*#__PURE__*/_react.default.createElement(SimpleFormPlaceholder, null)));
57
59
  };
58
-
59
60
  var plugin = {
60
61
  name: "admin-installation-security",
61
62
  type: "admin-installation",
@@ -63,37 +64,33 @@ var plugin = {
63
64
  dependencies: ["admin-installation-tenancy"],
64
65
  secure: false,
65
66
  getInstalledVersion: function getInstalledVersion(_ref3) {
66
- return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
67
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
67
68
  var client, _yield$client$query, data;
68
-
69
- return _regeneratorRuntime.wrap(function _callee$(_context) {
70
- while (1) {
71
- switch (_context.prev = _context.next) {
72
- case 0:
73
- client = _ref3.client;
74
- _context.next = 3;
75
- return client.query({
76
- query: IS_INSTALLED
77
- });
78
-
79
- case 3:
80
- _yield$client$query = _context.sent;
81
- data = _yield$client$query.data;
82
- return _context.abrupt("return", data.security.version);
83
-
84
- case 6:
85
- case "end":
86
- return _context.stop();
87
- }
69
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
70
+ while (1) switch (_context.prev = _context.next) {
71
+ case 0:
72
+ client = _ref3.client;
73
+ _context.next = 3;
74
+ return client.query({
75
+ query: IS_INSTALLED
76
+ });
77
+ case 3:
78
+ _yield$client$query = _context.sent;
79
+ data = _yield$client$query.data;
80
+ return _context.abrupt("return", data.security.version);
81
+ case 6:
82
+ case "end":
83
+ return _context.stop();
88
84
  }
89
85
  }, _callee);
90
86
  }))();
91
87
  },
92
88
  render: function render(_ref4) {
93
89
  var onInstalled = _ref4.onInstalled;
94
- return /*#__PURE__*/React.createElement(SecurityInstaller, {
90
+ return /*#__PURE__*/_react.default.createElement(SecurityInstaller, {
95
91
  onInstalled: onInstalled
96
92
  });
97
93
  }
98
94
  };
99
- export default plugin;
95
+ var _default = plugin;
96
+ exports.default = _default;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SimpleFormPlaceholder","styled","minHeight","minWidth","IS_INSTALLED","gql","INSTALL","SecurityInstaller","onInstalled","client","useApolloClient","useState","error","setError","useEffect","mutate","mutation","then","data","security","install","message","setTimeout","label","plugin","name","type","title","dependencies","secure","getInstalledVersion","query","version","render"],"sources":["installation.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport gql from \"graphql-tag\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { Alert } from \"@webiny/ui/Alert\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { SimpleForm, SimpleFormContent } from \"@webiny/app-admin/components/SimpleForm\";\nimport styled from \"@emotion/styled\";\nimport { AdminInstallationPlugin } from \"@webiny/app-admin/types\";\n\nconst SimpleFormPlaceholder = styled.div({\n minHeight: 300,\n minWidth: 400\n});\n\nconst IS_INSTALLED = gql`\n query IsSecurityInstalled {\n security {\n version\n }\n }\n`;\n\nconst INSTALL = gql`\n mutation InstallSecurity {\n security {\n install {\n data\n error {\n code\n message\n }\n }\n }\n }\n`;\n\ninterface SecurityInstallerProps {\n onInstalled: () => void;\n}\nconst SecurityInstaller: React.FC<SecurityInstallerProps> = ({ onInstalled }) => {\n const client = useApolloClient();\n const [error, setError] = useState(null);\n\n useEffect(() => {\n client.mutate({ mutation: INSTALL }).then(({ data }) => {\n const { error } = data.security.install;\n if (error) {\n setError(error.message);\n return;\n }\n\n // Just so the user sees the actual message.\n setTimeout(onInstalled, 3000);\n });\n }, []);\n\n const label = error ? (\n <Alert title={`Something went wrong`} type={\"danger\"}>\n {error}\n </Alert>\n ) : (\n `Installing Security...`\n );\n\n return (\n <SimpleForm>\n <CircularProgress label={label} />\n <SimpleFormContent>\n <SimpleFormPlaceholder />\n </SimpleFormContent>\n </SimpleForm>\n );\n};\n\nconst plugin: AdminInstallationPlugin = {\n name: \"admin-installation-security\",\n type: \"admin-installation\",\n title: `Security`,\n dependencies: [`admin-installation-tenancy`],\n secure: false,\n async getInstalledVersion({ client }) {\n const { data } = await client.query({ query: IS_INSTALLED });\n return data.security.version;\n },\n render({ onInstalled }) {\n return <SecurityInstaller onInstalled={onInstalled} />;\n }\n};\n\nexport default plugin;\n"],"mappings":";;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAqC;AAGrC,IAAMA,qBAAqB,oBAAGC,eAAM;EAAA;EAAA;AAAA,GAAK;EACrCC,SAAS,EAAE,GAAG;EACdC,QAAQ,EAAE;AACd,CAAC,CAAC;AAEF,IAAMC,YAAY,OAAGC,mBAAG,kLAMvB;AAED,IAAMC,OAAO,OAAGD,mBAAG,6TAYlB;AAKD,IAAME,iBAAmD,GAAG,SAAtDA,iBAAmD,OAAwB;EAAA,IAAlBC,WAAW,QAAXA,WAAW;EACtE,IAAMC,MAAM,GAAG,IAAAC,2BAAe,GAAE;EAChC,gBAA0B,IAAAC,eAAQ,EAAC,IAAI,CAAC;IAAA;IAAjCC,KAAK;IAAEC,QAAQ;EAEtB,IAAAC,gBAAS,EAAC,YAAM;IACZL,MAAM,CAACM,MAAM,CAAC;MAAEC,QAAQ,EAAEV;IAAQ,CAAC,CAAC,CAACW,IAAI,CAAC,iBAAc;MAAA,IAAXC,IAAI,SAAJA,IAAI;MAC7C,IAAQN,KAAK,GAAKM,IAAI,CAACC,QAAQ,CAACC,OAAO,CAA/BR,KAAK;MACb,IAAIA,KAAK,EAAE;QACPC,QAAQ,CAACD,KAAK,CAACS,OAAO,CAAC;QACvB;MACJ;;MAEA;MACAC,UAAU,CAACd,WAAW,EAAE,IAAI,CAAC;IACjC,CAAC,CAAC;EACN,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMe,KAAK,GAAGX,KAAK,gBACf,6BAAC,YAAK;IAAC,KAAK,wBAAyB;IAAC,IAAI,EAAE;EAAS,GAChDA,KAAK,CACF,2BAGX;EAED,oBACI,6BAAC,sBAAU,qBACP,6BAAC,0BAAgB;IAAC,KAAK,EAAEW;EAAM,EAAG,eAClC,6BAAC,6BAAiB,qBACd,6BAAC,qBAAqB,OAAG,CACT,CACX;AAErB,CAAC;AAED,IAAMC,MAA+B,GAAG;EACpCC,IAAI,EAAE,6BAA6B;EACnCC,IAAI,EAAE,oBAAoB;EAC1BC,KAAK,YAAY;EACjBC,YAAY,EAAE,8BAA8B;EAC5CC,MAAM,EAAE,KAAK;EACPC,mBAAmB,sCAAa;IAAA;MAAA;MAAA;QAAA;UAAA;YAAVrB,MAAM,SAANA,MAAM;YAAA;YAAA,OACPA,MAAM,CAACsB,KAAK,CAAC;cAAEA,KAAK,EAAE3B;YAAa,CAAC,CAAC;UAAA;YAAA;YAApDc,IAAI,uBAAJA,IAAI;YAAA,iCACLA,IAAI,CAACC,QAAQ,CAACa,OAAO;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAChC,CAAC;EACDC,MAAM,yBAAkB;IAAA,IAAfzB,WAAW,SAAXA,WAAW;IAChB,oBAAO,6BAAC,iBAAiB;MAAC,WAAW,EAAEA;IAAY,EAAG;EAC1D;AACJ,CAAC;AAAC,eAEagB,MAAM;AAAA"}
@@ -1,5 +1,8 @@
1
- /// <reference types="react" />
2
- export declare const SecurityPermissions: ({ value, onChange }: {
3
- value: any;
4
- onChange: any;
5
- }) => JSX.Element;
1
+ import React from "react";
2
+ import { SecurityPermission } from "@webiny/app-security/types";
3
+ interface SecurityPermissionsProps {
4
+ value: SecurityPermission[];
5
+ onChange: (value: SecurityPermission[]) => void;
6
+ }
7
+ export declare const SecurityPermissions: React.FC<SecurityPermissionsProps>;
8
+ export {};