@webiny/app-security-access-management 5.34.8 → 5.35.0-beta.0

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 (52) hide show
  1. package/README.md +1 -1
  2. package/components/GroupAutocomplete/graphql.js +0 -5
  3. package/components/GroupAutocomplete/graphql.js.map +1 -1
  4. package/components/GroupAutocomplete/index.js +2 -10
  5. package/components/GroupAutocomplete/index.js.map +1 -1
  6. package/components/NotAuthorizedError/NotAuthorizedError.js +0 -12
  7. package/components/NotAuthorizedError/NotAuthorizedError.js.map +1 -1
  8. package/components/NotAuthorizedError/index.js +0 -1
  9. package/components/NotAuthorizedError/index.js.map +1 -1
  10. package/index.js +0 -15
  11. package/index.js.map +1 -1
  12. package/package.json +13 -13
  13. package/plugins/constants.js +0 -1
  14. package/plugins/constants.js.map +1 -1
  15. package/plugins/index.js +0 -6
  16. package/plugins/index.js.map +1 -1
  17. package/plugins/installation.js +19 -44
  18. package/plugins/installation.js.map +1 -1
  19. package/plugins/permissionRenderer/SecurityPermissions.js +2 -34
  20. package/plugins/permissionRenderer/SecurityPermissions.js.map +1 -1
  21. package/plugins/permissionRenderer/index.js +0 -12
  22. package/plugins/permissionRenderer/index.js.map +1 -1
  23. package/plugins/routes.js +0 -10
  24. package/plugins/routes.js.map +1 -1
  25. package/plugins/secureRouteError.js +0 -4
  26. package/plugins/secureRouteError.js.map +1 -1
  27. package/ui/elements/GroupAutocompleteElement.js +1 -16
  28. package/ui/elements/GroupAutocompleteElement.js.map +1 -1
  29. package/ui/views/ApiKeys/ApiKeyForm.js +62 -115
  30. package/ui/views/ApiKeys/ApiKeyForm.js.map +1 -1
  31. package/ui/views/ApiKeys/ApiKeys.js +3 -10
  32. package/ui/views/ApiKeys/ApiKeys.js.map +1 -1
  33. package/ui/views/ApiKeys/ApiKeysDataList.js +51 -98
  34. package/ui/views/ApiKeys/ApiKeysDataList.js.map +1 -1
  35. package/ui/views/ApiKeys/graphql.js +0 -5
  36. package/ui/views/ApiKeys/graphql.js.map +1 -1
  37. package/ui/views/ApiKeys/index.js +0 -2
  38. package/ui/views/ApiKeys/index.js.map +1 -1
  39. package/ui/views/ApiKeys/utils.js +0 -5
  40. package/ui/views/ApiKeys/utils.js.map +1 -1
  41. package/ui/views/Groups/Groups.js +3 -10
  42. package/ui/views/Groups/Groups.js.map +1 -1
  43. package/ui/views/Groups/GroupsDataList.js +52 -99
  44. package/ui/views/Groups/GroupsDataList.js.map +1 -1
  45. package/ui/views/Groups/GroupsForm.js +61 -114
  46. package/ui/views/Groups/GroupsForm.js.map +1 -1
  47. package/ui/views/Groups/graphql.js +0 -5
  48. package/ui/views/Groups/graphql.js.map +1 -1
  49. package/ui/views/Groups/index.js +0 -2
  50. package/ui/views/Groups/index.js.map +1 -1
  51. package/ui/views/utils.js +3 -9
  52. package/ui/views/utils.js.map +1 -1
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,17 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.LIST_GROUPS = void 0;
9
-
10
8
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
-
12
9
  var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
13
-
14
10
  var _templateObject;
15
-
16
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"])));
17
12
  exports.LIST_GROUPS = LIST_GROUPS;
@@ -1 +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;;;;AAEO,IAAMA,WAAW,OAAGC,mBAAH,4XAAjB"}
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,25 +1,18 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.GroupAutocomplete = void 0;
9
-
10
8
  var _react = _interopRequireDefault(require("react"));
11
-
12
9
  var _AutoComplete = require("@webiny/ui/AutoComplete");
13
-
14
10
  var _graphql = require("./graphql");
15
-
16
11
  var _reactHooks = require("@apollo/react-hooks");
17
-
18
12
  var GroupAutocomplete = function GroupAutocomplete(props) {
19
13
  var _useQuery = (0, _reactHooks.useQuery)(_graphql.LIST_GROUPS),
20
- data = _useQuery.data,
21
- loading = _useQuery.loading;
22
-
14
+ data = _useQuery.data,
15
+ loading = _useQuery.loading;
23
16
  var options = loading || !data ? [] : data.security.groups.data;
24
17
  return /*#__PURE__*/_react.default.createElement(_AutoComplete.AutoComplete, Object.assign({}, props, {
25
18
  options: options,
@@ -27,5 +20,4 @@ var GroupAutocomplete = function GroupAutocomplete(props) {
27
20
  value: loading ? undefined : props.value
28
21
  }));
29
22
  };
30
-
31
23
  exports.GroupAutocomplete = GroupAutocomplete;
@@ -1 +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,iBAAsD,CAAAC,KAAK,EAAI;EACxE,gBAA0B,IAAAC,oBAAA,EAASC,oBAAT,CAA1B;EAAA,IAAQC,IAAR,aAAQA,IAAR;EAAA,IAAcC,OAAd,aAAcA,OAAd;;EAEA,IAAMC,OAAO,GAAGD,OAAO,IAAI,CAACD,IAAZ,GAAmB,EAAnB,GAAwBA,IAAI,CAACG,QAAL,CAAcC,MAAd,CAAqBJ,IAA7D;EAEA,oBACI,6BAAC,0BAAD,oBACQH,KADR;IAEI,OAAO,EAAEK,OAFb;IAGI,SAAS,EAAE,IAHf;IAII,KAAK,EAAED,OAAO,GAAGI,SAAH,GAAeR,KAAK,CAACS;EAJvC,GADJ;AAQH,CAbM"}
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,28 +1,18 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.NotAuthorizedError = void 0;
11
-
12
9
  var React = _interopRequireWildcard(require("react"));
13
-
14
10
  var _reactRouter = require("@webiny/react-router");
15
-
16
11
  var _emotion = require("emotion");
17
-
18
12
  var _styled = _interopRequireDefault(require("@emotion/styled"));
19
-
20
13
  var _reactHelmet = _interopRequireDefault(require("react-helmet"));
21
-
22
14
  var _SecureRouteError = _interopRequireDefault(require("./SecureRouteError.svg"));
23
-
24
15
  var _Typography = require("@webiny/ui/Typography");
25
-
26
16
  var ContentWrapper = /*#__PURE__*/(0, _styled.default)("div", {
27
17
  target: "e18nns4o0",
28
18
  label: "ContentWrapper"
@@ -48,7 +38,6 @@ var styles = {
48
38
  }
49
39
  }, "label:linkStyle;")
50
40
  };
51
-
52
41
  var NotAuthorizedError = function NotAuthorizedError() {
53
42
  return /*#__PURE__*/React.createElement(ContentWrapper, null, /*#__PURE__*/React.createElement(_reactHelmet.default, {
54
43
  title: "Not authorized"
@@ -67,5 +56,4 @@ var NotAuthorizedError = function NotAuthorizedError() {
67
56
  className: styles.linkStyle
68
57
  }, "Take me back."));
69
58
  };
70
-
71
59
  exports.NotAuthorizedError = NotAuthorizedError;
@@ -1 +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,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EACjCC,OAAO,EAAE,OADwB;EAEjCC,UAAU,EAAE,KAFqB;EAGjCC,SAAS,EAAE,QAHsB;EAIjCC,MAAM,EAAE;AAJyB,CAAjB,CAApB;AAOA,IAAMC,MAAM,GAAG;EACXC,iBAAiB,eAAE,IAAAC,YAAA,EAAI;IACnBC,KAAK,EAAE,OADY;IAEnBC,aAAa,EAAE;EAFI,CAAJ,6BADR;EAKXC,SAAS,eAAE,IAAAH,YAAA,EAAI;IACXI,KAAK,EAAE,6CADI;IAEXV,OAAO,EAAE;EAFE,CAAJ,qBALA;EASXW,SAAS,eAAE,IAAAL,YAAA,EAAI;IACXM,cAAc,EAAE,MADL;IAEX,WAAW;MACPA,cAAc,EAAE;IADT;EAFA,CAAJ;AATA,CAAf;;AAiBO,IAAMC,kBAA4B,GAAG,SAA/BA,kBAA+B,GAAM;EAC9C,oBACI,oBAAC,cAAD,qBACI,oBAAC,oBAAD;IAAQ,KAAK,EAAE;EAAf,EADJ,eAGI;IAAK,SAAS,EAAET,MAAM,CAACC,iBAAvB;IAA0C,GAAG,EAAES,yBAA/C;IAA6D,GAAG,EAAC;EAAjE,EAHJ,eAKI,oBAAC,sBAAD;IAAY,GAAG,EAAE,OAAjB;IAA0B,SAAS,EAAEV,MAAM,CAACK;EAA5C,GAAuD,4CAAvD,CALJ,eASI,oBAAC,sBAAD;IAAY,GAAG,EAAE,OAAjB;IAA0B,SAAS,EAAEL,MAAM,CAACK;EAA5C,GAAuD,sDAAvD,CATJ,eAaI,oBAAC,iBAAD;IAAM,EAAE,EAAC,GAAT;IAAa,SAAS,EAAEL,MAAM,CAACO;EAA/B,GAA0C,eAA1C,CAbJ,CADJ;AAmBH,CApBM"}
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"}
@@ -9,5 +9,4 @@ Object.defineProperty(exports, "NotAuthorizedError", {
9
9
  return _NotAuthorizedError.NotAuthorizedError;
10
10
  }
11
11
  });
12
-
13
12
  var _NotAuthorizedError = require("./NotAuthorizedError");
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { NotAuthorizedError } from \"./NotAuthorizedError\";\n"],"mappings":";;;;;;;;;;;;AAAA"}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { NotAuthorizedError } from \"./NotAuthorizedError\";\n"],"mappings":";;;;;;;;;;;AAAA"}
package/index.js CHANGED
@@ -1,30 +1,19 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.default = exports.AccessManagementExtension = exports.AccessManagement = void 0;
11
-
12
9
  var _react = _interopRequireWildcard(require("react"));
13
-
14
10
  var _plugins = require("@webiny/plugins");
15
-
16
11
  var _appAdmin = require("@webiny/app-admin");
17
-
18
12
  var _appSecurity = require("@webiny/app-security");
19
-
20
13
  var _constants = require("./plugins/constants");
21
-
22
14
  var _Groups = require("./ui/views/Groups");
23
-
24
15
  var _ApiKeys = require("./ui/views/ApiKeys");
25
-
26
16
  var _plugins2 = _interopRequireDefault(require("./plugins"));
27
-
28
17
  /**
29
18
  * TODO @ts-refactor
30
19
  * Find out why is there empty default export
@@ -33,12 +22,9 @@ var _plugins2 = _interopRequireDefault(require("./plugins"));
33
22
  var _default = function _default() {
34
23
  return [];
35
24
  };
36
-
37
25
  exports.default = _default;
38
-
39
26
  var AccessManagementExtension = function AccessManagementExtension() {
40
27
  _plugins.plugins.register((0, _plugins2.default)());
41
-
42
28
  return /*#__PURE__*/_react.default.createElement(_appAdmin.Plugins, null, /*#__PURE__*/_react.default.createElement(_appSecurity.HasPermission, {
43
29
  name: _constants.Permission.Groups
44
30
  }, /*#__PURE__*/_react.default.createElement(_appAdmin.AddRoute, {
@@ -74,7 +60,6 @@ var AccessManagementExtension = function AccessManagementExtension() {
74
60
  path: "/access-management/api-keys"
75
61
  }))))));
76
62
  };
77
-
78
63
  exports.AccessManagementExtension = AccessManagementExtension;
79
64
  var AccessManagement = /*#__PURE__*/(0, _react.memo)(AccessManagementExtension);
80
65
  exports.AccessManagement = AccessManagement;
package/index.js.map CHANGED
@@ -1 +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;eACe;EAAA,OAAM,EAAN;AAAA,C;;;;AAER,IAAMA,yBAAyB,GAAG,SAA5BA,yBAA4B,GAAM;EAC3CC,gBAAA,CAAQC,QAAR,CAAiB,IAAAC,iBAAA,GAAjB;;EAEA,oBACI,6BAAC,iBAAD,qBACI,6BAAC,0BAAD;IAAe,IAAI,EAAEC,qBAAA,CAAWC;EAAhC,gBACI,6BAAC,kBAAD;IAAU,KAAK,MAAf;IAAgB,IAAI,EAAE;EAAtB,gBACI,6BAAC,gBAAD;IAAQ,KAAK,EAAE;EAAf,gBACI,6BAAC,cAAD,OADJ,CADJ,CADJ,CADJ,eAQI,6BAAC,0BAAD;IAAe,IAAI,EAAED,qBAAA,CAAWE;EAAhC,gBACI,6BAAC,kBAAD;IAAU,KAAK,MAAf;IAAgB,IAAI,EAAE;EAAtB,gBACI,6BAAC,gBAAD;IAAQ,KAAK,EAAE;EAAf,gBACI,6BAAC,gBAAD,OADJ,CADJ,CADJ,CARJ,eAeI,6BAAC,0BAAD;IAAe,GAAG,EAAE,CAACF,qBAAA,CAAWC,MAAZ,EAAoBD,qBAAA,CAAWE,OAA/B;EAApB,gBACI,6BAAC,iBAAD;IAAS,IAAI,EAAE;EAAf,gBACI,6BAAC,iBAAD;IAAS,IAAI,EAAE,2BAAf;IAA4C,KAAK,EAAE;EAAnD,gBACI,6BAAC,0BAAD;IAAe,IAAI,EAAEF,qBAAA,CAAWC;EAAhC,gBACI,6BAAC,iBAAD;IACI,IAAI,EAAE,kCADV;IAEI,KAAK,EAAE,QAFX;IAGI,IAAI,EAAE;EAHV,EADJ,CADJ,eAQI,6BAAC,0BAAD;IAAe,IAAI,EAAED,qBAAA,CAAWE;EAAhC,gBACI,6BAAC,iBAAD;IACI,IAAI,EAAE,mCADV;IAEI,KAAK,EAAE,UAFX;IAGI,IAAI,EAAE;EAHV,EADJ,CARJ,CADJ,CADJ,CAfJ,CADJ;AAsCH,CAzCM;;;AA2CA,IAAMC,gBAAgB,gBAAG,IAAAC,WAAA,EAAKR,yBAAL,CAAzB"}
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": "5.34.8",
3
+ "version": "5.35.0-beta.0",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -14,15 +14,15 @@
14
14
  "license": "MIT",
15
15
  "dependencies": {
16
16
  "@apollo/react-hooks": "3.1.5",
17
- "@emotion/styled": "10.3.0",
18
- "@webiny/app": "5.34.8",
19
- "@webiny/app-admin": "5.34.8",
20
- "@webiny/app-security": "5.34.8",
21
- "@webiny/form": "5.34.8",
22
- "@webiny/plugins": "5.34.8",
23
- "@webiny/react-router": "5.34.8",
24
- "@webiny/ui": "5.34.8",
25
- "@webiny/validation": "5.34.8",
17
+ "@emotion/styled": "11.10.6",
18
+ "@webiny/app": "5.35.0-beta.0",
19
+ "@webiny/app-admin": "5.35.0-beta.0",
20
+ "@webiny/app-security": "5.35.0-beta.0",
21
+ "@webiny/form": "5.35.0-beta.0",
22
+ "@webiny/plugins": "5.35.0-beta.0",
23
+ "@webiny/react-router": "5.35.0-beta.0",
24
+ "@webiny/ui": "5.35.0-beta.0",
25
+ "@webiny/validation": "5.35.0-beta.0",
26
26
  "emotion": "10.0.27",
27
27
  "graphql-tag": "2.12.6",
28
28
  "lodash": "4.17.21",
@@ -38,8 +38,8 @@
38
38
  "@babel/preset-react": "^7.18.6",
39
39
  "@babel/preset-typescript": "^7.18.6",
40
40
  "@types/react-helmet": "^6.1.5",
41
- "@webiny/cli": "^5.34.8",
42
- "@webiny/project-utils": "^5.34.8",
41
+ "@webiny/cli": "^5.35.0-beta.0",
42
+ "@webiny/project-utils": "^5.35.0-beta.0",
43
43
  "babel-plugin-emotion": "^9.2.8",
44
44
  "babel-plugin-lodash": "^3.3.4",
45
45
  "rimraf": "^3.0.2",
@@ -61,5 +61,5 @@
61
61
  ]
62
62
  }
63
63
  },
64
- "gitHead": "6e77eebaac687279fe82ea04f667b7e84214b96a"
64
+ "gitHead": "8acc9e8892842cabb3980ce0b6432fde55968d5b"
65
65
  }
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.Permission = void 0;
7
7
  var Permission;
8
8
  exports.Permission = Permission;
9
-
10
9
  (function (Permission) {
11
10
  Permission["Groups"] = "security.group";
12
11
  Permission["ApiKeys"] = "security.apiKey";
@@ -1 +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,U;;;WAAAA,U;EAAAA,U;EAAAA,U;GAAAA,U,0BAAAA,U"}
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,20 +1,14 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _installation = _interopRequireDefault(require("./installation"));
11
-
12
9
  var _permissionRenderer = _interopRequireDefault(require("./permissionRenderer"));
13
-
14
10
  var _secureRouteError = _interopRequireDefault(require("./secureRouteError"));
15
-
16
11
  var _default = function _default() {
17
12
  return [_installation.default, _permissionRenderer.default, _secureRouteError.default];
18
13
  };
19
-
20
14
  exports.default = _default;
@@ -1 +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;;eAEe;EAAA,OAAwB,CAACA,qBAAD,EAAeC,2BAAf,EAAmCC,yBAAnC,CAAxB;AAAA,C"}
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,38 +1,23 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.default = void 0;
11
-
12
9
  var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
13
-
14
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
-
16
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
-
18
12
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
19
-
20
13
  var _react = _interopRequireWildcard(require("react"));
21
-
22
14
  var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
23
-
24
15
  var _reactHooks = require("@apollo/react-hooks");
25
-
26
16
  var _Alert = require("@webiny/ui/Alert");
27
-
28
17
  var _Progress = require("@webiny/ui/Progress");
29
-
30
18
  var _SimpleForm = require("@webiny/app-admin/components/SimpleForm");
31
-
32
19
  var _styled = _interopRequireDefault(require("@emotion/styled"));
33
-
34
20
  var _templateObject, _templateObject2;
35
-
36
21
  var SimpleFormPlaceholder = /*#__PURE__*/(0, _styled.default)("div", {
37
22
  target: "evolwsn0",
38
23
  label: "SimpleFormPlaceholder"
@@ -42,29 +27,25 @@ var SimpleFormPlaceholder = /*#__PURE__*/(0, _styled.default)("div", {
42
27
  });
43
28
  var IS_INSTALLED = (0, _graphqlTag.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n query IsSecurityInstalled {\n security {\n version\n }\n }\n"])));
44
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"])));
45
-
46
30
  var SecurityInstaller = function SecurityInstaller(_ref) {
47
31
  var onInstalled = _ref.onInstalled;
48
32
  var client = (0, _reactHooks.useApolloClient)();
49
-
50
33
  var _useState = (0, _react.useState)(null),
51
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
52
- error = _useState2[0],
53
- setError = _useState2[1];
54
-
34
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
35
+ error = _useState2[0],
36
+ setError = _useState2[1];
55
37
  (0, _react.useEffect)(function () {
56
38
  client.mutate({
57
39
  mutation: INSTALL
58
40
  }).then(function (_ref2) {
59
41
  var data = _ref2.data;
60
42
  var error = data.security.install.error;
61
-
62
43
  if (error) {
63
44
  setError(error.message);
64
45
  return;
65
- } // Just so the user sees the actual message.
66
-
46
+ }
67
47
 
48
+ // Just so the user sees the actual message.
68
49
  setTimeout(onInstalled, 3000);
69
50
  });
70
51
  }, []);
@@ -76,7 +57,6 @@ var SecurityInstaller = function SecurityInstaller(_ref) {
76
57
  label: label
77
58
  }), /*#__PURE__*/_react.default.createElement(_SimpleForm.SimpleFormContent, null, /*#__PURE__*/_react.default.createElement(SimpleFormPlaceholder, null)));
78
59
  };
79
-
80
60
  var plugin = {
81
61
  name: "admin-installation-security",
82
62
  type: "admin-installation",
@@ -86,26 +66,21 @@ var plugin = {
86
66
  getInstalledVersion: function getInstalledVersion(_ref3) {
87
67
  return (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
88
68
  var client, _yield$client$query, data;
89
-
90
69
  return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
91
- while (1) {
92
- switch (_context.prev = _context.next) {
93
- case 0:
94
- client = _ref3.client;
95
- _context.next = 3;
96
- return client.query({
97
- query: IS_INSTALLED
98
- });
99
-
100
- case 3:
101
- _yield$client$query = _context.sent;
102
- data = _yield$client$query.data;
103
- return _context.abrupt("return", data.security.version);
104
-
105
- case 6:
106
- case "end":
107
- return _context.stop();
108
- }
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();
109
84
  }
110
85
  }, _callee);
111
86
  }))();
@@ -1 +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;;;;AAGA,IAAMA,qBAAqB,oBAAGC,eAAH;EAAA;EAAA;AAAA,GAAc;EACrCC,SAAS,EAAE,GAD0B;EAErCC,QAAQ,EAAE;AAF2B,CAAd,CAA3B;AAKA,IAAMC,YAAY,OAAGC,mBAAH,kLAAlB;AAQA,IAAMC,OAAO,OAAGD,mBAAH,6TAAb;;AAiBA,IAAME,iBAAmD,GAAG,SAAtDA,iBAAsD,OAAqB;EAAA,IAAlBC,WAAkB,QAAlBA,WAAkB;EAC7E,IAAMC,MAAM,GAAG,IAAAC,2BAAA,GAAf;;EACA,gBAA0B,IAAAC,eAAA,EAAS,IAAT,CAA1B;EAAA;EAAA,IAAOC,KAAP;EAAA,IAAcC,QAAd;;EAEA,IAAAC,gBAAA,EAAU,YAAM;IACZL,MAAM,CAACM,MAAP,CAAc;MAAEC,QAAQ,EAAEV;IAAZ,CAAd,EAAqCW,IAArC,CAA0C,iBAAc;MAAA,IAAXC,IAAW,SAAXA,IAAW;MACpD,IAAQN,KAAR,GAAkBM,IAAI,CAACC,QAAL,CAAcC,OAAhC,CAAQR,KAAR;;MACA,IAAIA,KAAJ,EAAW;QACPC,QAAQ,CAACD,KAAK,CAACS,OAAP,CAAR;QACA;MACH,CALmD,CAOpD;;;MACAC,UAAU,CAACd,WAAD,EAAc,IAAd,CAAV;IACH,CATD;EAUH,CAXD,EAWG,EAXH;EAaA,IAAMe,KAAK,GAAGX,KAAK,gBACf,6BAAC,YAAD;IAAO,KAAK,wBAAZ;IAAsC,IAAI,EAAE;EAA5C,GACKA,KADL,CADe,2BAAnB;EAQA,oBACI,6BAAC,sBAAD,qBACI,6BAAC,0BAAD;IAAkB,KAAK,EAAEW;EAAzB,EADJ,eAEI,6BAAC,6BAAD,qBACI,6BAAC,qBAAD,OADJ,CAFJ,CADJ;AAQH,CAjCD;;AAmCA,IAAMC,MAA+B,GAAG;EACpCC,IAAI,EAAE,6BAD8B;EAEpCC,IAAI,EAAE,oBAF8B;EAGpCC,KAAK,YAH+B;EAIpCC,YAAY,EAAE,8BAJsB;EAKpCC,MAAM,EAAE,KAL4B;EAM9BC,mBAN8B,sCAME;IAAA;MAAA;;MAAA;QAAA;UAAA;YAAA;cAAVrB,MAAU,SAAVA,MAAU;cAAA;cAAA,OACXA,MAAM,CAACsB,KAAP,CAAa;gBAAEA,KAAK,EAAE3B;cAAT,CAAb,CADW;;YAAA;cAAA;cAC1Bc,IAD0B,uBAC1BA,IAD0B;cAAA,iCAE3BA,IAAI,CAACC,QAAL,CAAca,OAFa;;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA;EAGrC,CATmC;EAUpCC,MAVoC,yBAUZ;IAAA,IAAfzB,WAAe,SAAfA,WAAe;IACpB,oBAAO,6BAAC,iBAAD;MAAmB,WAAW,EAAEA;IAAhC,EAAP;EACH;AAZmC,CAAxC;eAeegB,M"}
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,36 +1,22 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.SecurityPermissions = void 0;
11
-
12
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
-
14
10
  var _react = _interopRequireWildcard(require("react"));
15
-
16
11
  var _Grid = require("@webiny/ui/Grid");
17
-
18
12
  var _Select = require("@webiny/ui/Select");
19
-
20
13
  var _i18n = require("@webiny/app/i18n");
21
-
22
14
  var _Permissions = require("@webiny/app-admin/components/Permissions");
23
-
24
15
  var _form = require("@webiny/form");
25
-
26
16
  var _Elevation = require("@webiny/ui/Elevation");
27
-
28
17
  var _Typography = require("@webiny/ui/Typography");
29
-
30
18
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13;
31
-
32
19
  var t = _i18n.i18n.ns("app-security-admin-users/plugins/permissionRenderer");
33
-
34
20
  var SECURITY = "security";
35
21
  var SECURITY_FULL_ACCESS = "".concat(SECURITY, ".*");
36
22
  var SECURITY_GROUP_ACCESS = "".concat(SECURITY, ".group");
@@ -38,22 +24,18 @@ var SECURITY_API_KEY_ACCESS = "".concat(SECURITY, ".apiKey");
38
24
  var FULL_ACCESS = "full";
39
25
  var NO_ACCESS = "no";
40
26
  var CUSTOM_ACCESS = "custom";
41
-
42
27
  var SecurityPermissions = function SecurityPermissions(_ref) {
43
28
  var value = _ref.value,
44
- onChange = _ref.onChange;
29
+ onChange = _ref.onChange;
45
30
  var onFormChange = (0, _react.useCallback)(function (data) {
46
31
  var newValue = [];
47
-
48
32
  if (Array.isArray(value)) {
49
33
  // Let's just filter out the `security*` permission objects, it's easier to build new ones from scratch.
50
34
  newValue = value.filter(function (item) {
51
35
  return !item.name.startsWith(SECURITY);
52
36
  });
53
37
  }
54
-
55
38
  var permissions = [];
56
-
57
39
  if (data.accessLevel === FULL_ACCESS) {
58
40
  permissions.push({
59
41
  name: SECURITY_FULL_ACCESS
@@ -64,20 +46,16 @@ var SecurityPermissions = function SecurityPermissions(_ref) {
64
46
  name: SECURITY_GROUP_ACCESS
65
47
  });
66
48
  }
67
-
68
49
  if (data.apiKeyAccessScope === FULL_ACCESS) {
69
50
  permissions.push({
70
51
  name: SECURITY_API_KEY_ACCESS
71
52
  });
72
53
  }
73
54
  }
74
-
75
55
  if (permissions && permissions.length) {
76
56
  var _newValue;
77
-
78
57
  (_newValue = newValue).push.apply(_newValue, permissions);
79
58
  }
80
-
81
59
  onChange(newValue);
82
60
  }, [value]);
83
61
  var formData = (0, _react.useMemo)(function () {
@@ -86,27 +64,22 @@ var SecurityPermissions = function SecurityPermissions(_ref) {
86
64
  accessLevel: NO_ACCESS
87
65
  };
88
66
  }
89
-
90
67
  var hasFullAccess = value.find(function (item) {
91
68
  return item.name === SECURITY_FULL_ACCESS || item.name === "*";
92
69
  });
93
-
94
70
  if (hasFullAccess) {
95
71
  return {
96
72
  accessLevel: FULL_ACCESS
97
73
  };
98
74
  }
99
-
100
75
  var permissions = value.filter(function (item) {
101
76
  return item.name.startsWith(SECURITY);
102
77
  });
103
-
104
78
  if (permissions.length === 0) {
105
79
  return {
106
80
  accessLevel: NO_ACCESS
107
81
  };
108
82
  }
109
-
110
83
  var data = {
111
84
  accessLevel: CUSTOM_ACCESS,
112
85
  groupAccessScope: NO_ACCESS,
@@ -115,19 +88,15 @@ var SecurityPermissions = function SecurityPermissions(_ref) {
115
88
  var hasGroupAccess = permissions.find(function (item) {
116
89
  return item.name === SECURITY_GROUP_ACCESS;
117
90
  });
118
-
119
91
  if (hasGroupAccess) {
120
92
  data.groupAccessScope = FULL_ACCESS;
121
93
  }
122
-
123
94
  var hasApiKeyAccess = permissions.find(function (item) {
124
95
  return item.name === SECURITY_API_KEY_ACCESS;
125
96
  });
126
-
127
97
  if (hasApiKeyAccess) {
128
98
  data.apiKeyAccessScope = FULL_ACCESS;
129
99
  }
130
-
131
100
  return data;
132
101
  }, []);
133
102
  return /*#__PURE__*/_react.default.createElement(_form.Form, {
@@ -135,7 +104,7 @@ var SecurityPermissions = function SecurityPermissions(_ref) {
135
104
  onChange: onFormChange
136
105
  }, function (_ref2) {
137
106
  var data = _ref2.data,
138
- Bind = _ref2.Bind;
107
+ Bind = _ref2.Bind;
139
108
  return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_Grid.Grid, {
140
109
  className: _Permissions.gridNoPaddingClass
141
110
  }, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
@@ -195,5 +164,4 @@ var SecurityPermissions = function SecurityPermissions(_ref) {
195
164
  }, t(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2.default)(["Full access"])))))))))));
196
165
  });
197
166
  };
198
-
199
167
  exports.SecurityPermissions = SecurityPermissions;