@webiny/app-security-access-management 5.43.2 → 6.0.0-alpha.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.
- package/components/GroupAutocomplete/graphql.js +16 -11
- package/components/GroupAutocomplete/graphql.js.map +1 -1
- package/components/GroupAutocomplete/index.js +11 -17
- package/components/GroupAutocomplete/index.js.map +1 -1
- package/components/GroupsMultiAutocomplete/graphql.js +21 -11
- package/components/GroupsMultiAutocomplete/graphql.js.map +1 -1
- package/components/GroupsMultiAutocomplete/index.js +11 -17
- package/components/GroupsMultiAutocomplete/index.js.map +1 -1
- package/components/NotAuthorizedError/NotAuthorizedError.js +18 -61
- package/components/NotAuthorizedError/NotAuthorizedError.js.map +1 -1
- package/components/NotAuthorizedError/index.js +1 -12
- package/components/NotAuthorizedError/index.js.map +1 -1
- package/components/TeamAutocomplete/graphql.js +16 -11
- package/components/TeamAutocomplete/graphql.js.map +1 -1
- package/components/TeamAutocomplete/index.js +11 -17
- package/components/TeamAutocomplete/index.js.map +1 -1
- package/components/TeamsMultiAutocomplete/graphql.js +21 -11
- package/components/TeamsMultiAutocomplete/graphql.js.map +1 -1
- package/components/TeamsMultiAutocomplete/index.js +11 -17
- package/components/TeamsMultiAutocomplete/index.js.map +1 -1
- package/index.d.ts +0 -7
- package/index.js +80 -71
- package/index.js.map +1 -1
- package/package.json +13 -13
- package/plugins/constants.js +1 -7
- package/plugins/constants.js.map +1 -1
- package/plugins/index.js +4 -13
- package/plugins/index.js.map +1 -1
- package/plugins/installation.js +61 -50
- package/plugins/installation.js.map +1 -1
- package/plugins/permissionRenderer/SecurityPermissions.js +84 -127
- package/plugins/permissionRenderer/SecurityPermissions.js.map +1 -1
- package/plugins/permissionRenderer/index.js +17 -23
- package/plugins/permissionRenderer/index.js.map +1 -1
- package/plugins/routes.js +22 -33
- package/plugins/routes.js.map +1 -1
- package/plugins/secureRouteError.js +6 -13
- package/plugins/secureRouteError.js.map +1 -1
- package/types.js +1 -5
- package/ui/elements/GroupAutocompleteElement.js +29 -45
- package/ui/elements/GroupAutocompleteElement.js.map +1 -1
- package/ui/elements/GroupsMultiAutocompleteElement.js +29 -45
- package/ui/elements/GroupsMultiAutocompleteElement.js.map +1 -1
- package/ui/elements/TeamAutocompleteElement.js +29 -45
- package/ui/elements/TeamAutocompleteElement.js.map +1 -1
- package/ui/views/ApiKeys/ApiKeyForm.js +137 -200
- package/ui/views/ApiKeys/ApiKeyForm.js.map +1 -1
- package/ui/views/ApiKeys/ApiKeys.js +9 -17
- package/ui/views/ApiKeys/ApiKeys.js.map +1 -1
- package/ui/views/ApiKeys/ApiKeysDataList.js +110 -134
- package/ui/views/ApiKeys/ApiKeysDataList.js.map +1 -1
- package/ui/views/ApiKeys/graphql.js +80 -16
- package/ui/views/ApiKeys/graphql.js.map +1 -1
- package/ui/views/ApiKeys/index.js +1 -16
- package/ui/views/ApiKeys/index.js.map +1 -1
- package/ui/views/ApiKeys/utils.js +3 -11
- package/ui/views/ApiKeys/utils.js.map +1 -1
- package/ui/views/Groups/Groups.js +9 -17
- package/ui/views/Groups/Groups.js.map +1 -1
- package/ui/views/Groups/GroupsDataList.js +114 -141
- package/ui/views/Groups/GroupsDataList.js.map +1 -1
- package/ui/views/Groups/GroupsForm.js +139 -188
- package/ui/views/Groups/GroupsForm.js.map +1 -1
- package/ui/views/Groups/graphql.js +83 -16
- package/ui/views/Groups/graphql.js.map +1 -1
- package/ui/views/Groups/index.js +1 -16
- package/ui/views/Groups/index.js.map +1 -1
- package/ui/views/Teams/Teams.js +9 -17
- package/ui/views/Teams/Teams.js.map +1 -1
- package/ui/views/Teams/TeamsDataList.js +116 -141
- package/ui/views/Teams/TeamsDataList.js.map +1 -1
- package/ui/views/Teams/TeamsForm.js +118 -150
- package/ui/views/Teams/TeamsForm.js.map +1 -1
- package/ui/views/Teams/graphql.js +87 -16
- package/ui/views/Teams/graphql.js.map +1 -1
- package/ui/views/Teams/index.js +1 -16
- package/ui/views/Teams/index.js.map +1 -1
- package/ui/views/utils.js +3 -14
- package/ui/views/utils.js.map +1 -1
package/index.js
CHANGED
|
@@ -1,74 +1,83 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}, /*#__PURE__*/
|
|
36
|
-
|
|
37
|
-
}, /*#__PURE__*/
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}, /*#__PURE__*/
|
|
53
|
-
name:
|
|
54
|
-
}, /*#__PURE__*/
|
|
55
|
-
name: "
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
})))
|
|
1
|
+
import React, { memo } from "react";
|
|
2
|
+
import { plugins } from "@webiny/plugins";
|
|
3
|
+
import { Layout, Wcp } from "@webiny/app-admin";
|
|
4
|
+
import { HasPermission } from "@webiny/app-security";
|
|
5
|
+
import { Permission } from "./plugins/constants";
|
|
6
|
+
import { Groups } from "./ui/views/Groups";
|
|
7
|
+
import { Teams } from "./ui/views/Teams";
|
|
8
|
+
import { ApiKeys } from "./ui/views/ApiKeys";
|
|
9
|
+
import accessManagementPlugins from "./plugins";
|
|
10
|
+
import { AdminConfig } from "@webiny/app-admin";
|
|
11
|
+
const {
|
|
12
|
+
Menu,
|
|
13
|
+
Route
|
|
14
|
+
} = AdminConfig;
|
|
15
|
+
const AccessManagementExtension = () => {
|
|
16
|
+
plugins.register(accessManagementPlugins());
|
|
17
|
+
return /*#__PURE__*/React.createElement(AdminConfig, null, /*#__PURE__*/React.createElement(HasPermission, {
|
|
18
|
+
name: Permission.Groups
|
|
19
|
+
}, /*#__PURE__*/React.createElement(Route, {
|
|
20
|
+
name: "security.groups",
|
|
21
|
+
exact: true,
|
|
22
|
+
path: "/access-management/roles",
|
|
23
|
+
element: /*#__PURE__*/React.createElement(Layout, {
|
|
24
|
+
title: "Access Management - Roles"
|
|
25
|
+
}, /*#__PURE__*/React.createElement(Groups, null))
|
|
26
|
+
})), /*#__PURE__*/React.createElement(Wcp.CanUseTeams, null, /*#__PURE__*/React.createElement(HasPermission, {
|
|
27
|
+
name: Permission.Teams
|
|
28
|
+
}, /*#__PURE__*/React.createElement(Route, {
|
|
29
|
+
name: "security.teams",
|
|
30
|
+
exact: true,
|
|
31
|
+
path: "/access-management/teams",
|
|
32
|
+
element: /*#__PURE__*/React.createElement(Layout, {
|
|
33
|
+
title: "Access Management - Teams"
|
|
34
|
+
}, /*#__PURE__*/React.createElement(Teams, null))
|
|
35
|
+
}))), /*#__PURE__*/React.createElement(HasPermission, {
|
|
36
|
+
name: Permission.ApiKeys
|
|
37
|
+
}, /*#__PURE__*/React.createElement(Route, {
|
|
38
|
+
name: "security.apiKeys",
|
|
39
|
+
exact: true,
|
|
40
|
+
path: "/access-management/api-keys",
|
|
41
|
+
element: /*#__PURE__*/React.createElement(Layout, {
|
|
42
|
+
title: "Access Management - API Keys"
|
|
43
|
+
}, /*#__PURE__*/React.createElement(ApiKeys, null))
|
|
44
|
+
})), /*#__PURE__*/React.createElement(HasPermission, {
|
|
45
|
+
any: [Permission.Groups, Permission.ApiKeys, Permission.Teams]
|
|
46
|
+
}, /*#__PURE__*/React.createElement(Menu, {
|
|
47
|
+
name: "security.settings",
|
|
48
|
+
parent: "settings",
|
|
49
|
+
element: /*#__PURE__*/React.createElement(Menu.Group, {
|
|
50
|
+
text: "Access Management"
|
|
51
|
+
})
|
|
52
|
+
})), /*#__PURE__*/React.createElement(HasPermission, {
|
|
53
|
+
name: Permission.Groups
|
|
54
|
+
}, /*#__PURE__*/React.createElement(Menu, {
|
|
55
|
+
name: "security.roles",
|
|
56
|
+
parent: "settings",
|
|
57
|
+
element: /*#__PURE__*/React.createElement(Menu.Link, {
|
|
58
|
+
text: "Roles",
|
|
59
|
+
to: "/access-management/roles"
|
|
60
|
+
})
|
|
61
|
+
})), /*#__PURE__*/React.createElement(Wcp.CanUseTeams, null, /*#__PURE__*/React.createElement(HasPermission, {
|
|
62
|
+
name: Permission.Teams
|
|
63
|
+
}, /*#__PURE__*/React.createElement(Menu, {
|
|
64
|
+
name: "security.teams",
|
|
65
|
+
parent: "settings",
|
|
66
|
+
element: /*#__PURE__*/React.createElement(Menu.Link, {
|
|
67
|
+
text: "Teams",
|
|
68
|
+
to: "/access-management/teams"
|
|
69
|
+
})
|
|
70
|
+
}))), /*#__PURE__*/React.createElement(HasPermission, {
|
|
71
|
+
name: Permission.ApiKeys
|
|
72
|
+
}, /*#__PURE__*/React.createElement(Menu, {
|
|
73
|
+
name: "security.apiKeys",
|
|
74
|
+
parent: "settings",
|
|
75
|
+
element: /*#__PURE__*/React.createElement(Menu.Link, {
|
|
76
|
+
text: "API Keys",
|
|
77
|
+
to: "/access-management/api-keys"
|
|
78
|
+
})
|
|
79
|
+
})));
|
|
71
80
|
};
|
|
72
|
-
|
|
81
|
+
export const AccessManagement = /*#__PURE__*/memo(AccessManagementExtension);
|
|
73
82
|
|
|
74
83
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["React","memo","plugins","Layout","Wcp","HasPermission","Permission","Groups","Teams","ApiKeys","accessManagementPlugins","AdminConfig","Menu","Route","AccessManagementExtension","register","createElement","name","exact","path","element","title","CanUseTeams","any","parent","Group","text","Link","to","AccessManagement"],"sources":["index.tsx"],"sourcesContent":["import React, { memo } from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Layout, Wcp } from \"@webiny/app-admin\";\nimport { HasPermission } from \"@webiny/app-security\";\nimport { Permission } from \"~/plugins/constants\";\nimport { Groups } from \"~/ui/views/Groups\";\nimport { Teams } from \"~/ui/views/Teams\";\nimport { ApiKeys } from \"~/ui/views/ApiKeys\";\nimport accessManagementPlugins from \"./plugins\";\nimport { AdminConfig } from \"@webiny/app-admin\";\n\nconst { Menu, Route } = AdminConfig;\n\nconst AccessManagementExtension = () => {\n plugins.register(accessManagementPlugins());\n\n return (\n <AdminConfig>\n <HasPermission name={Permission.Groups}>\n <Route\n name={\"security.groups\"}\n exact\n path={\"/access-management/roles\"}\n element={\n <Layout title={\"Access Management - Roles\"}>\n <Groups />\n </Layout>\n }\n />\n </HasPermission>\n <Wcp.CanUseTeams>\n <HasPermission name={Permission.Teams}>\n <Route\n name={\"security.teams\"}\n exact\n path={\"/access-management/teams\"}\n element={\n <Layout title={\"Access Management - Teams\"}>\n <Teams />\n </Layout>\n }\n />\n </HasPermission>\n </Wcp.CanUseTeams>\n <HasPermission name={Permission.ApiKeys}>\n <Route\n name={\"security.apiKeys\"}\n exact\n path={\"/access-management/api-keys\"}\n element={\n <Layout title={\"Access Management - API Keys\"}>\n <ApiKeys />\n </Layout>\n }\n />\n </HasPermission>\n\n <HasPermission any={[Permission.Groups, Permission.ApiKeys, Permission.Teams]}>\n <Menu\n name={\"security.settings\"}\n parent={\"settings\"}\n element={<Menu.Group text={\"Access Management\"} />}\n />\n </HasPermission>\n <HasPermission name={Permission.Groups}>\n <Menu\n name={\"security.roles\"}\n parent={\"settings\"}\n element={<Menu.Link text={\"Roles\"} to={\"/access-management/roles\"} />}\n />\n </HasPermission>\n <Wcp.CanUseTeams>\n <HasPermission name={Permission.Teams}>\n <Menu\n name={\"security.teams\"}\n parent={\"settings\"}\n element={<Menu.Link text={\"Teams\"} to={\"/access-management/teams\"} />}\n />\n </HasPermission>\n </Wcp.CanUseTeams>\n\n <HasPermission name={Permission.ApiKeys}>\n <Menu\n name={\"security.apiKeys\"}\n parent={\"settings\"}\n element={<Menu.Link text={\"API Keys\"} to={\"/access-management/api-keys\"} />}\n />\n </HasPermission>\n </AdminConfig>\n );\n};\n\nexport const AccessManagement = memo(AccessManagementExtension);\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/app-security-access-management",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0-alpha.0",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -15,16 +15,16 @@
|
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"@apollo/react-hooks": "3.1.5",
|
|
17
17
|
"@emotion/styled": "11.10.6",
|
|
18
|
-
"@
|
|
19
|
-
"@webiny/app": "
|
|
20
|
-
"@webiny/app-admin": "
|
|
21
|
-
"@webiny/app-security": "
|
|
22
|
-
"@webiny/form": "
|
|
23
|
-
"@webiny/
|
|
24
|
-
"@webiny/
|
|
25
|
-
"@webiny/
|
|
26
|
-
"@webiny/
|
|
27
|
-
"
|
|
18
|
+
"@webiny/admin-ui": "6.0.0-alpha.0",
|
|
19
|
+
"@webiny/app": "6.0.0-alpha.0",
|
|
20
|
+
"@webiny/app-admin": "6.0.0-alpha.0",
|
|
21
|
+
"@webiny/app-security": "6.0.0-alpha.0",
|
|
22
|
+
"@webiny/form": "6.0.0-alpha.0",
|
|
23
|
+
"@webiny/icons": "6.0.0-alpha.0",
|
|
24
|
+
"@webiny/plugins": "6.0.0-alpha.0",
|
|
25
|
+
"@webiny/react-router": "6.0.0-alpha.0",
|
|
26
|
+
"@webiny/ui": "6.0.0-alpha.0",
|
|
27
|
+
"@webiny/validation": "6.0.0-alpha.0",
|
|
28
28
|
"graphql-tag": "2.12.6",
|
|
29
29
|
"lodash": "4.17.21",
|
|
30
30
|
"react": "18.2.0",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@emotion/babel-plugin": "11.11.0",
|
|
36
36
|
"@types/react-helmet": "6.1.11",
|
|
37
|
-
"@webiny/project-utils": "
|
|
37
|
+
"@webiny/project-utils": "6.0.0-alpha.0",
|
|
38
38
|
"rimraf": "6.0.1",
|
|
39
39
|
"typescript": "5.3.3"
|
|
40
40
|
},
|
|
@@ -53,5 +53,5 @@
|
|
|
53
53
|
]
|
|
54
54
|
}
|
|
55
55
|
},
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "a5b28fed7a242d8f56712197a8ea83aa6d2ed101"
|
|
57
57
|
}
|
package/plugins/constants.js
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.Permission = void 0;
|
|
7
|
-
var Permission = exports.Permission = /*#__PURE__*/function (Permission) {
|
|
1
|
+
export let Permission = /*#__PURE__*/function (Permission) {
|
|
8
2
|
Permission["Groups"] = "security.group";
|
|
9
3
|
Permission["Teams"] = "security.team";
|
|
10
4
|
Permission["ApiKeys"] = "security.apiKey";
|
package/plugins/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Permission"
|
|
1
|
+
{"version":3,"names":["Permission"],"sources":["constants.ts"],"sourcesContent":["export enum Permission {\n Groups = \"security.group\",\n Teams = \"security.team\",\n ApiKeys = \"security.apiKey\"\n}\n"],"mappings":"AAAA,WAAYA,UAAU,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA","ignoreList":[]}
|
package/plugins/index.js
CHANGED
|
@@ -1,15 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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 = exports.default = function _default() {
|
|
12
|
-
return [_installation.default, _permissionRenderer.default, _secureRouteError.default];
|
|
13
|
-
};
|
|
1
|
+
import installation from "./installation";
|
|
2
|
+
import permissionRenderer from "./permissionRenderer";
|
|
3
|
+
import secureRouteError from "./secureRouteError";
|
|
4
|
+
export default () => [installation, permissionRenderer, secureRouteError];
|
|
14
5
|
|
|
15
6
|
//# sourceMappingURL=index.js.map
|
package/plugins/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
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,OAAOA,YAAY;AACnB,OAAOC,kBAAkB;AACzB,OAAOC,gBAAgB;AAEvB,eAAe,MAAwB,CAACF,YAAY,EAAEC,kBAAkB,EAAEC,gBAAgB,CAAC","ignoreList":[]}
|
package/plugins/installation.js
CHANGED
|
@@ -1,23 +1,12 @@
|
|
|
1
|
-
|
|
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 _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
-
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
-
var _base = _interopRequireDefault(require("@emotion/styled/base"));
|
|
12
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
-
var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
|
|
14
|
-
var _reactHooks = require("@apollo/react-hooks");
|
|
15
|
-
var _Alert = require("@webiny/ui/Alert");
|
|
16
|
-
var _Progress = require("@webiny/ui/Progress");
|
|
17
|
-
var _SimpleForm = require("@webiny/app-admin/components/SimpleForm");
|
|
18
|
-
var _templateObject, _templateObject2;
|
|
1
|
+
import _styled from "@emotion/styled/base";
|
|
19
2
|
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
20
|
-
|
|
3
|
+
import React, { useState, useEffect } from "react";
|
|
4
|
+
import gql from "graphql-tag";
|
|
5
|
+
import { useApolloClient } from "@apollo/react-hooks";
|
|
6
|
+
import { Alert } from "@webiny/ui/Alert";
|
|
7
|
+
import { CircularProgress } from "@webiny/ui/Progress";
|
|
8
|
+
import { SimpleForm, SimpleFormContent } from "@webiny/app-admin/components/SimpleForm";
|
|
9
|
+
const SimpleFormPlaceholder = /*#__PURE__*/_styled("div", process.env.NODE_ENV === "production" ? {
|
|
21
10
|
target: "evolwsn0"
|
|
22
11
|
} : {
|
|
23
12
|
target: "evolwsn0",
|
|
@@ -31,21 +20,40 @@ var SimpleFormPlaceholder = /*#__PURE__*/(0, _base.default)("div", process.env.N
|
|
|
31
20
|
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluc3RhbGxhdGlvbi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUzhCIiwiZmlsZSI6Imluc3RhbGxhdGlvbi50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGdxbCBmcm9tIFwiZ3JhcGhxbC10YWdcIjtcbmltcG9ydCB7IHVzZUFwb2xsb0NsaWVudCB9IGZyb20gXCJAYXBvbGxvL3JlYWN0LWhvb2tzXCI7XG5pbXBvcnQgeyBBbGVydCB9IGZyb20gXCJAd2ViaW55L3VpL0FsZXJ0XCI7XG5pbXBvcnQgeyBDaXJjdWxhclByb2dyZXNzIH0gZnJvbSBcIkB3ZWJpbnkvdWkvUHJvZ3Jlc3NcIjtcbmltcG9ydCB7IFNpbXBsZUZvcm0sIFNpbXBsZUZvcm1Db250ZW50IH0gZnJvbSBcIkB3ZWJpbnkvYXBwLWFkbWluL2NvbXBvbmVudHMvU2ltcGxlRm9ybVwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBBZG1pbkluc3RhbGxhdGlvblBsdWdpbiB9IGZyb20gXCJAd2ViaW55L2FwcC1hZG1pbi90eXBlc1wiO1xuXG5jb25zdCBTaW1wbGVGb3JtUGxhY2Vob2xkZXIgPSBzdHlsZWQuZGl2KHtcbiAgICBtaW5IZWlnaHQ6IDMwMCxcbiAgICBtaW5XaWR0aDogNDAwXG59KTtcblxuY29uc3QgSVNfSU5TVEFMTEVEID0gZ3FsYFxuICAgIHF1ZXJ5IElzU2VjdXJpdHlJbnN0YWxsZWQge1xuICAgICAgICBzZWN1cml0eSB7XG4gICAgICAgICAgICB2ZXJzaW9uXG4gICAgICAgIH1cbiAgICB9XG5gO1xuXG5jb25zdCBJTlNUQUxMID0gZ3FsYFxuICAgIG11dGF0aW9uIEluc3RhbGxTZWN1cml0eSB7XG4gICAgICAgIHNlY3VyaXR5IHtcbiAgICAgICAgICAgIGluc3RhbGwge1xuICAgICAgICAgICAgICAgIGRhdGFcbiAgICAgICAgICAgICAgICBlcnJvciB7XG4gICAgICAgICAgICAgICAgICAgIGNvZGVcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbmA7XG5cbmludGVyZmFjZSBTZWN1cml0eUluc3RhbGxlclByb3BzIHtcbiAgICBvbkluc3RhbGxlZDogKCkgPT4gdm9pZDtcbn1cbmNvbnN0IFNlY3VyaXR5SW5zdGFsbGVyID0gKHsgb25JbnN0YWxsZWQgfTogU2VjdXJpdHlJbnN0YWxsZXJQcm9wcykgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IHVzZUFwb2xsb0NsaWVudCgpO1xuICAgIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGUobnVsbCk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjbGllbnQubXV0YXRlKHsgbXV0YXRpb246IElOU1RBTEwgfSkudGhlbigoeyBkYXRhIH0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgZXJyb3IgfSA9IGRhdGEuc2VjdXJpdHkuaW5zdGFsbDtcbiAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHNldEVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSnVzdCBzbyB0aGUgdXNlciBzZWVzIHRoZSBhY3R1YWwgbWVzc2FnZS5cbiAgICAgICAgICAgIHNldFRpbWVvdXQob25JbnN0YWxsZWQsIDMwMDApO1xuICAgICAgICB9KTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBsYWJlbCA9IGVycm9yID8gKFxuICAgICAgICA8QWxlcnQgdGl0bGU9e2BTb21ldGhpbmcgd2VudCB3cm9uZ2B9IHR5cGU9e1wiZGFuZ2VyXCJ9PlxuICAgICAgICAgICAge2Vycm9yfVxuICAgICAgICA8L0FsZXJ0PlxuICAgICkgOiAoXG4gICAgICAgIGBJbnN0YWxsaW5nIFNlY3VyaXR5Li4uYFxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8U2ltcGxlRm9ybT5cbiAgICAgICAgICAgIDxDaXJjdWxhclByb2dyZXNzIGxhYmVsPXtsYWJlbH0gLz5cbiAgICAgICAgICAgIDxTaW1wbGVGb3JtQ29udGVudD5cbiAgICAgICAgICAgICAgICA8U2ltcGxlRm9ybVBsYWNlaG9sZGVyIC8+XG4gICAgICAgICAgICA8L1NpbXBsZUZvcm1Db250ZW50PlxuICAgICAgICA8L1NpbXBsZUZvcm0+XG4gICAgKTtcbn07XG5cbmNvbnN0IHBsdWdpbjogQWRtaW5JbnN0YWxsYXRpb25QbHVnaW4gPSB7XG4gICAgbmFtZTogXCJhZG1pbi1pbnN0YWxsYXRpb24tc2VjdXJpdHlcIixcbiAgICB0eXBlOiBcImFkbWluLWluc3RhbGxhdGlvblwiLFxuICAgIHRpdGxlOiBgU2VjdXJpdHlgLFxuICAgIGRlcGVuZGVuY2llczogW2BhZG1pbi1pbnN0YWxsYXRpb24tdGVuYW5jeWBdLFxuICAgIHNlY3VyZTogZmFsc2UsXG4gICAgYXN5bmMgZ2V0SW5zdGFsbGVkVmVyc2lvbih7IGNsaWVudCB9KSB7XG4gICAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgY2xpZW50LnF1ZXJ5KHsgcXVlcnk6IElTX0lOU1RBTExFRCB9KTtcbiAgICAgICAgcmV0dXJuIGRhdGEuc2VjdXJpdHkudmVyc2lvbjtcbiAgICB9LFxuICAgIHJlbmRlcih7IG9uSW5zdGFsbGVkIH0pIHtcbiAgICAgICAgcmV0dXJuIDxTZWN1cml0eUluc3RhbGxlciBvbkluc3RhbGxlZD17b25JbnN0YWxsZWR9IC8+O1xuICAgIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IHBsdWdpbjtcbiJdfQ== */",
|
|
32
21
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
33
22
|
});
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
23
|
+
const IS_INSTALLED = gql`
|
|
24
|
+
query IsSecurityInstalled {
|
|
25
|
+
security {
|
|
26
|
+
version
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
`;
|
|
30
|
+
const INSTALL = gql`
|
|
31
|
+
mutation InstallSecurity {
|
|
32
|
+
security {
|
|
33
|
+
install {
|
|
34
|
+
data
|
|
35
|
+
error {
|
|
36
|
+
code
|
|
37
|
+
message
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
`;
|
|
43
|
+
const SecurityInstaller = ({
|
|
44
|
+
onInstalled
|
|
45
|
+
}) => {
|
|
46
|
+
const client = useApolloClient();
|
|
47
|
+
const [error, setError] = useState(null);
|
|
48
|
+
useEffect(() => {
|
|
44
49
|
client.mutate({
|
|
45
50
|
mutation: INSTALL
|
|
46
|
-
}).then(
|
|
47
|
-
|
|
48
|
-
|
|
51
|
+
}).then(({
|
|
52
|
+
data
|
|
53
|
+
}) => {
|
|
54
|
+
const {
|
|
55
|
+
error
|
|
56
|
+
} = data.security.install;
|
|
49
57
|
if (error) {
|
|
50
58
|
setError(error.message);
|
|
51
59
|
return;
|
|
@@ -55,35 +63,38 @@ var SecurityInstaller = function SecurityInstaller(_ref) {
|
|
|
55
63
|
setTimeout(onInstalled, 3000);
|
|
56
64
|
});
|
|
57
65
|
}, []);
|
|
58
|
-
|
|
59
|
-
title:
|
|
66
|
+
const label = error ? /*#__PURE__*/React.createElement(Alert, {
|
|
67
|
+
title: `Something went wrong`,
|
|
60
68
|
type: "danger"
|
|
61
|
-
}, error) :
|
|
62
|
-
return /*#__PURE__*/
|
|
69
|
+
}, error) : `Installing Security...`;
|
|
70
|
+
return /*#__PURE__*/React.createElement(SimpleForm, null, /*#__PURE__*/React.createElement(CircularProgress, {
|
|
63
71
|
label: label
|
|
64
|
-
}), /*#__PURE__*/
|
|
72
|
+
}), /*#__PURE__*/React.createElement(SimpleFormContent, null, /*#__PURE__*/React.createElement(SimpleFormPlaceholder, null)));
|
|
65
73
|
};
|
|
66
|
-
|
|
74
|
+
const plugin = {
|
|
67
75
|
name: "admin-installation-security",
|
|
68
76
|
type: "admin-installation",
|
|
69
|
-
title:
|
|
70
|
-
dependencies: [
|
|
77
|
+
title: `Security`,
|
|
78
|
+
dependencies: [`admin-installation-tenancy`],
|
|
71
79
|
secure: false,
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
80
|
+
async getInstalledVersion({
|
|
81
|
+
client
|
|
82
|
+
}) {
|
|
83
|
+
const {
|
|
84
|
+
data
|
|
85
|
+
} = await client.query({
|
|
86
|
+
query: IS_INSTALLED
|
|
87
|
+
});
|
|
78
88
|
return data.security.version;
|
|
79
89
|
},
|
|
80
|
-
render
|
|
81
|
-
|
|
82
|
-
|
|
90
|
+
render({
|
|
91
|
+
onInstalled
|
|
92
|
+
}) {
|
|
93
|
+
return /*#__PURE__*/React.createElement(SecurityInstaller, {
|
|
83
94
|
onInstalled: onInstalled
|
|
84
95
|
});
|
|
85
96
|
}
|
|
86
97
|
};
|
|
87
|
-
|
|
98
|
+
export default plugin;
|
|
88
99
|
|
|
89
100
|
//# sourceMappingURL=installation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["React","useState","useEffect","gql","useApolloClient","Alert","CircularProgress","SimpleForm","SimpleFormContent","SimpleFormPlaceholder","_styled","process","env","NODE_ENV","target","label","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","IS_INSTALLED","INSTALL","SecurityInstaller","onInstalled","client","error","setError","mutate","mutation","then","data","security","install","message","setTimeout","createElement","title","type","plugin","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 = ({ onInstalled }: SecurityInstallerProps) => {\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,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,QAAQ,OAAO;AAClD,OAAOC,GAAG,MAAM,aAAa;AAC7B,SAASC,eAAe,QAAQ,qBAAqB;AACrD,SAASC,KAAK,QAAQ,kBAAkB;AACxC,SAASC,gBAAgB,QAAQ,qBAAqB;AACtD,SAASC,UAAU,EAAEC,iBAAiB,QAAQ,yCAAyC;AAIvF,MAAMC,qBAAqB,gBAAGC,OAAA,QAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,GAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAC;AAAA,CAG7B,CAAC;AAEF,MAAMC,YAAY,GAAGlB,GAAG;AACxB;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,MAAMmB,OAAO,GAAGnB,GAAG;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAKD,MAAMoB,iBAAiB,GAAGA,CAAC;EAAEC;AAAoC,CAAC,KAAK;EACnE,MAAMC,MAAM,GAAGrB,eAAe,CAAC,CAAC;EAChC,MAAM,CAACsB,KAAK,EAAEC,QAAQ,CAAC,GAAG1B,QAAQ,CAAC,IAAI,CAAC;EAExCC,SAAS,CAAC,MAAM;IACZuB,MAAM,CAACG,MAAM,CAAC;MAAEC,QAAQ,EAAEP;IAAQ,CAAC,CAAC,CAACQ,IAAI,CAAC,CAAC;MAAEC;IAAK,CAAC,KAAK;MACpD,MAAM;QAAEL;MAAM,CAAC,GAAGK,IAAI,CAACC,QAAQ,CAACC,OAAO;MACvC,IAAIP,KAAK,EAAE;QACPC,QAAQ,CAACD,KAAK,CAACQ,OAAO,CAAC;QACvB;MACJ;;MAEA;MACAC,UAAU,CAACX,WAAW,EAAE,IAAI,CAAC;IACjC,CAAC,CAAC;EACN,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMT,KAAK,GAAGW,KAAK,gBACf1B,KAAA,CAAAoC,aAAA,CAAC/B,KAAK;IAACgC,KAAK,EAAE,sBAAuB;IAACC,IAAI,EAAE;EAAS,GAChDZ,KACE,CAAC,GAER,wBACH;EAED,oBACI1B,KAAA,CAAAoC,aAAA,CAAC7B,UAAU,qBACPP,KAAA,CAAAoC,aAAA,CAAC9B,gBAAgB;IAACS,KAAK,EAAEA;EAAM,CAAE,CAAC,eAClCf,KAAA,CAAAoC,aAAA,CAAC5B,iBAAiB,qBACdR,KAAA,CAAAoC,aAAA,CAAC3B,qBAAqB,MAAE,CACT,CACX,CAAC;AAErB,CAAC;AAED,MAAM8B,MAA+B,GAAG;EACpCvB,IAAI,EAAE,6BAA6B;EACnCsB,IAAI,EAAE,oBAAoB;EAC1BD,KAAK,EAAE,UAAU;EACjBG,YAAY,EAAE,CAAC,4BAA4B,CAAC;EAC5CC,MAAM,EAAE,KAAK;EACb,MAAMC,mBAAmBA,CAAC;IAAEjB;EAAO,CAAC,EAAE;IAClC,MAAM;MAAEM;IAAK,CAAC,GAAG,MAAMN,MAAM,CAACkB,KAAK,CAAC;MAAEA,KAAK,EAAEtB;IAAa,CAAC,CAAC;IAC5D,OAAOU,IAAI,CAACC,QAAQ,CAACY,OAAO;EAChC,CAAC;EACDC,MAAMA,CAAC;IAAErB;EAAY,CAAC,EAAE;IACpB,oBAAOxB,KAAA,CAAAoC,aAAA,CAACb,iBAAiB;MAACC,WAAW,EAAEA;IAAY,CAAE,CAAC;EAC1D;AACJ,CAAC;AAED,eAAee,MAAM","ignoreList":[]}
|