@webiny/app-security-access-management 6.3.0 → 6.4.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.
- package/Extension.js +74 -73
- package/Extension.js.map +1 -1
- package/SecurityPermissions.js +49 -41
- package/SecurityPermissions.js.map +1 -1
- package/constants.js +6 -5
- package/constants.js.map +1 -1
- package/domain/permissionsSchema.js +30 -19
- package/domain/permissionsSchema.js.map +1 -1
- package/features/permissions/abstractions.js +2 -1
- package/features/permissions/abstractions.js.map +1 -1
- package/features/permissions/feature.js +2 -1
- package/features/permissions/feature.js.map +1 -1
- package/index.js +0 -2
- package/package.json +9 -11
- package/routes.js +32 -37
- package/routes.js.map +1 -1
- package/types.js +0 -3
- package/ui/views/ApiKeys/ApiKeyForm.js +203 -220
- package/ui/views/ApiKeys/ApiKeyForm.js.map +1 -1
- package/ui/views/ApiKeys/ApiKeys.js +11 -12
- package/ui/views/ApiKeys/ApiKeys.js.map +1 -1
- package/ui/views/ApiKeys/ApiKeysDataList.js +129 -143
- package/ui/views/ApiKeys/ApiKeysDataList.js.map +1 -1
- package/ui/views/ApiKeys/graphql.js +7 -6
- package/ui/views/ApiKeys/graphql.js.map +1 -1
- package/ui/views/ApiKeys/index.js +0 -2
- package/ui/views/ApiKeys/utils.js +12 -6
- package/ui/views/ApiKeys/utils.js.map +1 -1
- package/ui/views/Roles/Roles.js +11 -12
- package/ui/views/Roles/Roles.js.map +1 -1
- package/ui/views/Roles/RolesDataList.js +130 -144
- package/ui/views/Roles/RolesDataList.js.map +1 -1
- package/ui/views/Roles/RolesForm.js +198 -223
- package/ui/views/Roles/RolesForm.js.map +1 -1
- package/ui/views/Roles/graphql.js +7 -6
- package/ui/views/Roles/graphql.js.map +1 -1
- package/ui/views/Roles/index.js +0 -2
- package/ui/views/Teams/Teams.js +11 -12
- package/ui/views/Teams/Teams.js.map +1 -1
- package/ui/views/Teams/TeamsDataList.js +130 -146
- package/ui/views/Teams/TeamsDataList.js.map +1 -1
- package/ui/views/Teams/TeamsForm.js +174 -182
- package/ui/views/Teams/TeamsForm.js.map +1 -1
- package/ui/views/Teams/graphql.js +7 -6
- package/ui/views/Teams/graphql.js.map +1 -1
- package/ui/views/Teams/index.js +0 -2
- package/ui/views/utils.js +9 -7
- package/ui/views/utils.js.map +1 -1
- package/index.js.map +0 -1
- package/types.js.map +0 -1
- package/ui/views/ApiKeys/index.js.map +0 -1
- package/ui/views/Roles/index.js.map +0 -1
- package/ui/views/Teams/index.js.map +0 -1
package/Extension.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import { HasPermission } from "@webiny/app-admin";
|
|
1
|
+
import react, { Fragment, memo } from "react";
|
|
2
|
+
import { AdminConfig, AdminLayout, HasPermission, RegisterFeature, Wcp, useRouter } from "@webiny/app-admin";
|
|
4
3
|
import { Permission } from "./constants.js";
|
|
5
4
|
import { Roles } from "./ui/views/Roles/index.js";
|
|
6
5
|
import { Teams } from "./ui/views/Teams/index.js";
|
|
@@ -8,76 +7,78 @@ import { ApiKeys } from "./ui/views/ApiKeys/index.js";
|
|
|
8
7
|
import { Routes } from "./routes.js";
|
|
9
8
|
import { SecurityPermissions } from "./SecurityPermissions.js";
|
|
10
9
|
import { SecurityPermissionsFeature } from "./features/permissions/feature.js";
|
|
11
|
-
const {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}, /*#__PURE__*/
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}, /*#__PURE__*/
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
10
|
+
const { Menu: Menu, Route: Route } = AdminConfig;
|
|
11
|
+
const AccessManagementExtension = ()=>{
|
|
12
|
+
const router = useRouter();
|
|
13
|
+
return /*#__PURE__*/ react.createElement(Fragment, null, /*#__PURE__*/ react.createElement(RegisterFeature, {
|
|
14
|
+
feature: SecurityPermissionsFeature
|
|
15
|
+
}), /*#__PURE__*/ react.createElement(SecurityPermissions, null), /*#__PURE__*/ react.createElement(AdminConfig, null, /*#__PURE__*/ react.createElement(HasPermission, {
|
|
16
|
+
name: Permission.Roles
|
|
17
|
+
}, /*#__PURE__*/ react.createElement(Route, {
|
|
18
|
+
route: Routes.Roles.List,
|
|
19
|
+
element: /*#__PURE__*/ react.createElement(AdminLayout, {
|
|
20
|
+
title: "Access Management - Roles"
|
|
21
|
+
}, /*#__PURE__*/ react.createElement(Roles, null))
|
|
22
|
+
})), /*#__PURE__*/ react.createElement(Wcp.CanUseTeams, null, /*#__PURE__*/ react.createElement(HasPermission, {
|
|
23
|
+
name: Permission.Teams
|
|
24
|
+
}, /*#__PURE__*/ react.createElement(Route, {
|
|
25
|
+
route: Routes.Teams.List,
|
|
26
|
+
element: /*#__PURE__*/ react.createElement(AdminLayout, {
|
|
27
|
+
title: "Access Management - Teams"
|
|
28
|
+
}, /*#__PURE__*/ react.createElement(Teams, null))
|
|
29
|
+
}))), /*#__PURE__*/ react.createElement(HasPermission, {
|
|
30
|
+
name: Permission.ApiKeys
|
|
31
|
+
}, /*#__PURE__*/ react.createElement(Route, {
|
|
32
|
+
route: Routes.ApiKeys.List,
|
|
33
|
+
element: /*#__PURE__*/ react.createElement(AdminLayout, {
|
|
34
|
+
title: "Access Management - API Keys"
|
|
35
|
+
}, /*#__PURE__*/ react.createElement(ApiKeys, null))
|
|
36
|
+
})), /*#__PURE__*/ react.createElement(HasPermission, {
|
|
37
|
+
any: [
|
|
38
|
+
Permission.Roles,
|
|
39
|
+
Permission.ApiKeys,
|
|
40
|
+
Permission.Teams
|
|
41
|
+
]
|
|
42
|
+
}, /*#__PURE__*/ react.createElement(Menu, {
|
|
43
|
+
name: "settings.security",
|
|
44
|
+
parent: "settings",
|
|
45
|
+
element: /*#__PURE__*/ react.createElement(Menu.Group, {
|
|
46
|
+
text: "Access Management",
|
|
47
|
+
collapsible: false
|
|
48
|
+
})
|
|
49
|
+
})), /*#__PURE__*/ react.createElement(HasPermission, {
|
|
50
|
+
name: Permission.Roles
|
|
51
|
+
}, /*#__PURE__*/ react.createElement(Menu, {
|
|
52
|
+
name: "security.roles",
|
|
53
|
+
parent: "settings.security",
|
|
54
|
+
element: /*#__PURE__*/ react.createElement(Menu.Link, {
|
|
55
|
+
text: "Roles",
|
|
56
|
+
to: router.getLink(Routes.Roles.List),
|
|
57
|
+
pinnable: true
|
|
58
|
+
})
|
|
59
|
+
})), /*#__PURE__*/ react.createElement(Wcp.CanUseTeams, null, /*#__PURE__*/ react.createElement(HasPermission, {
|
|
60
|
+
name: Permission.Teams
|
|
61
|
+
}, /*#__PURE__*/ react.createElement(Menu, {
|
|
62
|
+
name: "security.teams",
|
|
63
|
+
parent: "settings.security",
|
|
64
|
+
element: /*#__PURE__*/ react.createElement(Menu.Link, {
|
|
65
|
+
text: "Teams",
|
|
66
|
+
to: router.getLink(Routes.Teams.List),
|
|
67
|
+
pinnable: true
|
|
68
|
+
})
|
|
69
|
+
}))), /*#__PURE__*/ react.createElement(HasPermission, {
|
|
70
|
+
name: Permission.ApiKeys
|
|
71
|
+
}, /*#__PURE__*/ react.createElement(Menu, {
|
|
72
|
+
name: "security.apiKeys",
|
|
73
|
+
parent: "settings.security",
|
|
74
|
+
element: /*#__PURE__*/ react.createElement(Menu.Link, {
|
|
75
|
+
text: "API Keys",
|
|
76
|
+
to: router.getLink(Routes.ApiKeys.List),
|
|
77
|
+
pinnable: true
|
|
78
|
+
})
|
|
79
|
+
}))));
|
|
80
80
|
};
|
|
81
|
-
|
|
81
|
+
const AccessManagement = /*#__PURE__*/ memo(AccessManagementExtension);
|
|
82
|
+
export { AccessManagement };
|
|
82
83
|
|
|
83
84
|
//# sourceMappingURL=Extension.js.map
|
package/Extension.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"Extension.js","sources":["../src/Extension.tsx"],"sourcesContent":["import React, { Fragment, memo } from \"react\";\nimport { useRouter, AdminConfig, AdminLayout, Wcp, RegisterFeature } from \"@webiny/app-admin\";\nimport { HasPermission } from \"@webiny/app-admin\";\nimport { Permission } from \"~/constants.js\";\nimport { Roles } from \"~/ui/views/Roles/index.js\";\nimport { Teams } from \"~/ui/views/Teams/index.js\";\nimport { ApiKeys } from \"~/ui/views/ApiKeys/index.js\";\nimport { Routes } from \"~/routes.js\";\nimport { SecurityPermissions } from \"./SecurityPermissions.js\";\nimport { SecurityPermissionsFeature } from \"~/features/permissions/feature.js\";\n\nconst { Menu, Route } = AdminConfig;\n\nconst AccessManagementExtension = () => {\n const router = useRouter();\n\n return (\n <Fragment>\n <RegisterFeature feature={SecurityPermissionsFeature} />\n <SecurityPermissions />\n <AdminConfig>\n <HasPermission name={Permission.Roles}>\n <Route\n route={Routes.Roles.List}\n element={\n <AdminLayout title={\"Access Management - Roles\"}>\n <Roles />\n </AdminLayout>\n }\n />\n </HasPermission>\n <Wcp.CanUseTeams>\n <HasPermission name={Permission.Teams}>\n <Route\n route={Routes.Teams.List}\n element={\n <AdminLayout title={\"Access Management - Teams\"}>\n <Teams />\n </AdminLayout>\n }\n />\n </HasPermission>\n </Wcp.CanUseTeams>\n <HasPermission name={Permission.ApiKeys}>\n <Route\n route={Routes.ApiKeys.List}\n element={\n <AdminLayout title={\"Access Management - API Keys\"}>\n <ApiKeys />\n </AdminLayout>\n }\n />\n </HasPermission>\n\n <HasPermission any={[Permission.Roles, Permission.ApiKeys, Permission.Teams]}>\n <Menu\n name={\"settings.security\"}\n parent={\"settings\"}\n element={<Menu.Group text={\"Access Management\"} collapsible={false} />}\n />\n </HasPermission>\n <HasPermission name={Permission.Roles}>\n <Menu\n name={\"security.roles\"}\n parent={\"settings.security\"}\n element={\n <Menu.Link\n text={\"Roles\"}\n to={router.getLink(Routes.Roles.List)}\n pinnable={true}\n />\n }\n />\n </HasPermission>\n <Wcp.CanUseTeams>\n <HasPermission name={Permission.Teams}>\n <Menu\n name={\"security.teams\"}\n parent={\"settings.security\"}\n element={\n <Menu.Link\n text={\"Teams\"}\n to={router.getLink(Routes.Teams.List)}\n pinnable={true}\n />\n }\n />\n </HasPermission>\n </Wcp.CanUseTeams>\n\n <HasPermission name={Permission.ApiKeys}>\n <Menu\n name={\"security.apiKeys\"}\n parent={\"settings.security\"}\n element={\n <Menu.Link\n text={\"API Keys\"}\n to={router.getLink(Routes.ApiKeys.List)}\n pinnable={true}\n />\n }\n />\n </HasPermission>\n </AdminConfig>\n </Fragment>\n );\n};\n\nexport const AccessManagement = memo(AccessManagementExtension);\n"],"names":["Menu","Route","AdminConfig","AccessManagementExtension","router","useRouter","Fragment","RegisterFeature","SecurityPermissionsFeature","SecurityPermissions","HasPermission","Permission","Routes","AdminLayout","Roles","Wcp","Teams","ApiKeys","AccessManagement","memo"],"mappings":";;;;;;;;;AAWA,MAAM,EAAEA,MAAAA,IAAI,EAAEC,OAAAA,KAAK,EAAE,GAAGC;AAExB,MAAMC,4BAA4B;IAC9B,MAAMC,SAASC;IAEf,OAAO,WAAP,GACI,oBAACC,UAAQA,MAAAA,WAAAA,GACL,oBAACC,iBAAeA;QAAC,SAASC;sBAC1B,oBAACC,qBAAmBA,OAAAA,WAAAA,GACpB,oBAACP,aAAWA,MAAAA,WAAAA,GACR,oBAACQ,eAAaA;QAAC,MAAMC,WAAW,KAAK;qBACjC,oBAACV,OAAKA;QACF,OAAOW,OAAO,KAAK,CAAC,IAAI;QACxB,uBACI,oBAACC,aAAWA;YAAC,OAAO;yBAChB,oBAACC,OAAKA;uBAKtB,oBAACC,IAAI,WAAW,sBACZ,oBAACL,eAAaA;QAAC,MAAMC,WAAW,KAAK;qBACjC,oBAACV,OAAKA;QACF,OAAOW,OAAO,KAAK,CAAC,IAAI;QACxB,uBACI,oBAACC,aAAWA;YAAC,OAAO;yBAChB,oBAACG,OAAKA;wBAM1B,oBAACN,eAAaA;QAAC,MAAMC,WAAW,OAAO;qBACnC,oBAACV,OAAKA;QACF,OAAOW,OAAO,OAAO,CAAC,IAAI;QAC1B,uBACI,oBAACC,aAAWA;YAAC,OAAO;yBAChB,oBAACI,SAAOA;uBAMxB,oBAACP,eAAaA;QAAC,KAAK;YAACC,WAAW,KAAK;YAAEA,WAAW,OAAO;YAAEA,WAAW,KAAK;SAAC;qBACxE,oBAACX,MAAIA;QACD,MAAM;QACN,QAAQ;QACR,uBAAS,oBAACA,KAAK,KAAK;YAAC,MAAM;YAAqB,aAAa;;uBAGrE,oBAACU,eAAaA;QAAC,MAAMC,WAAW,KAAK;qBACjC,oBAACX,MAAIA;QACD,MAAM;QACN,QAAQ;QACR,uBACI,oBAACA,KAAK,IAAI;YACN,MAAM;YACN,IAAII,OAAO,OAAO,CAACQ,OAAO,KAAK,CAAC,IAAI;YACpC,UAAU;;uBAK1B,oBAACG,IAAI,WAAW,sBACZ,oBAACL,eAAaA;QAAC,MAAMC,WAAW,KAAK;qBACjC,oBAACX,MAAIA;QACD,MAAM;QACN,QAAQ;QACR,uBACI,oBAACA,KAAK,IAAI;YACN,MAAM;YACN,IAAII,OAAO,OAAO,CAACQ,OAAO,KAAK,CAAC,IAAI;YACpC,UAAU;;wBAO9B,oBAACF,eAAaA;QAAC,MAAMC,WAAW,OAAO;qBACnC,oBAACX,MAAIA;QACD,MAAM;QACN,QAAQ;QACR,uBACI,oBAACA,KAAK,IAAI;YACN,MAAM;YACN,IAAII,OAAO,OAAO,CAACQ,OAAO,OAAO,CAAC,IAAI;YACtC,UAAU;;;AAQ1C;AAEO,MAAMM,mBAAmB,WAAHA,GAAGC,KAAKhB"}
|
package/SecurityPermissions.js
CHANGED
|
@@ -1,45 +1,53 @@
|
|
|
1
|
-
import
|
|
1
|
+
import react, { useMemo } from "react";
|
|
2
2
|
import { AdminConfig, useWcp } from "@webiny/app-admin";
|
|
3
|
-
import { ReactComponent
|
|
4
|
-
const {
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
3
|
+
import { ReactComponent } from "@webiny/icons/security.svg";
|
|
4
|
+
const { Security: Security } = AdminConfig;
|
|
5
|
+
const SecurityPermissions = ()=>{
|
|
6
|
+
const wcp = useWcp();
|
|
7
|
+
const teams = wcp.canUseTeams();
|
|
8
|
+
const schema = useMemo(()=>{
|
|
9
|
+
const entities = [
|
|
10
|
+
{
|
|
11
|
+
id: "apiKey",
|
|
12
|
+
title: "API Keys",
|
|
13
|
+
permission: "security.apiKey",
|
|
14
|
+
scopes: [
|
|
15
|
+
"full"
|
|
16
|
+
]
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
id: "group",
|
|
20
|
+
title: "Roles",
|
|
21
|
+
permission: "security.group",
|
|
22
|
+
scopes: [
|
|
23
|
+
"full"
|
|
24
|
+
]
|
|
25
|
+
}
|
|
26
|
+
];
|
|
27
|
+
if (teams) entities.push({
|
|
28
|
+
id: "team",
|
|
29
|
+
title: "Teams",
|
|
30
|
+
permission: "security.team",
|
|
31
|
+
scopes: [
|
|
32
|
+
"full"
|
|
33
|
+
]
|
|
34
|
+
});
|
|
35
|
+
return {
|
|
36
|
+
prefix: "security",
|
|
37
|
+
fullAccess: true,
|
|
38
|
+
entities
|
|
39
|
+
};
|
|
40
|
+
}, [
|
|
41
|
+
teams
|
|
42
|
+
]);
|
|
43
|
+
return /*#__PURE__*/ react.createElement(AdminConfig, null, /*#__PURE__*/ react.createElement(Security.Permissions, {
|
|
44
|
+
name: "security",
|
|
45
|
+
title: "Security",
|
|
46
|
+
description: "Manage Security permissions.",
|
|
47
|
+
icon: /*#__PURE__*/ react.createElement(ReactComponent, null),
|
|
48
|
+
schema: schema
|
|
49
|
+
}));
|
|
43
50
|
};
|
|
51
|
+
export { SecurityPermissions };
|
|
44
52
|
|
|
45
53
|
//# sourceMappingURL=SecurityPermissions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"SecurityPermissions.js","sources":["../src/SecurityPermissions.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { AdminConfig, useWcp } from \"@webiny/app-admin\";\nimport type { EntityDefinition } from \"@webiny/app-admin\";\nimport { ReactComponent as PermissionsIcon } from \"@webiny/icons/security.svg\";\n\nconst { Security } = AdminConfig;\n\nexport const SecurityPermissions = () => {\n const wcp = useWcp();\n const teams = wcp.canUseTeams();\n\n const schema = useMemo(() => {\n const entities: EntityDefinition[] = [\n {\n id: \"apiKey\",\n title: \"API Keys\",\n permission: \"security.apiKey\",\n scopes: [\"full\"]\n },\n {\n id: \"group\",\n title: \"Roles\",\n permission: \"security.group\",\n scopes: [\"full\"]\n }\n ];\n\n if (teams) {\n entities.push({\n id: \"team\",\n title: \"Teams\",\n permission: \"security.team\",\n scopes: [\"full\"]\n });\n }\n\n return {\n prefix: \"security\",\n fullAccess: true,\n entities\n };\n }, [teams]);\n\n return (\n <AdminConfig>\n <Security.Permissions\n name=\"security\"\n title=\"Security\"\n description=\"Manage Security permissions.\"\n icon={<PermissionsIcon />}\n schema={schema}\n />\n </AdminConfig>\n );\n};\n"],"names":["Security","AdminConfig","SecurityPermissions","wcp","useWcp","teams","schema","useMemo","entities","PermissionsIcon"],"mappings":";;;AAKA,MAAM,EAAEA,UAAAA,QAAQ,EAAE,GAAGC;AAEd,MAAMC,sBAAsB;IAC/B,MAAMC,MAAMC;IACZ,MAAMC,QAAQF,IAAI,WAAW;IAE7B,MAAMG,SAASC,QAAQ;QACnB,MAAMC,WAA+B;YACjC;gBACI,IAAI;gBACJ,OAAO;gBACP,YAAY;gBACZ,QAAQ;oBAAC;iBAAO;YACpB;YACA;gBACI,IAAI;gBACJ,OAAO;gBACP,YAAY;gBACZ,QAAQ;oBAAC;iBAAO;YACpB;SACH;QAED,IAAIH,OACAG,SAAS,IAAI,CAAC;YACV,IAAI;YACJ,OAAO;YACP,YAAY;YACZ,QAAQ;gBAAC;aAAO;QACpB;QAGJ,OAAO;YACH,QAAQ;YACR,YAAY;YACZA;QACJ;IACJ,GAAG;QAACH;KAAM;IAEV,OAAO,WAAP,GACI,oBAACJ,aAAWA,MAAAA,WAAAA,GACR,oBAACD,SAAS,WAAW;QACjB,MAAK;QACL,OAAM;QACN,aAAY;QACZ,oBAAM,oBAACS,gBAAeA;QACtB,QAAQH;;AAIxB"}
|
package/constants.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
var constants_Permission = /*#__PURE__*/ function(Permission) {
|
|
2
|
+
Permission["Roles"] = "security.role";
|
|
3
|
+
Permission["Teams"] = "security.team";
|
|
4
|
+
Permission["ApiKeys"] = "security.apiKey";
|
|
5
|
+
return Permission;
|
|
6
6
|
}({});
|
|
7
|
+
export { constants_Permission as Permission };
|
|
7
8
|
|
|
8
9
|
//# sourceMappingURL=constants.js.map
|
package/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../src/constants.ts"],"sourcesContent":["export enum Permission {\n Roles = \"security.role\",\n Teams = \"security.team\",\n ApiKeys = \"security.apiKey\"\n}\n"],"names":["Permission"],"mappings":"AAAO,IAAKA,uBAAUA,WAAAA,GAAAA,SAAVA,UAAU;;;;WAAVA"}
|
|
@@ -1,23 +1,34 @@
|
|
|
1
1
|
import { createPermissionSchema } from "@webiny/app-admin";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
2
|
+
const SECURITY_PERMISSIONS_SCHEMA = createPermissionSchema({
|
|
3
|
+
prefix: "security",
|
|
4
|
+
fullAccess: true,
|
|
5
|
+
entities: [
|
|
6
|
+
{
|
|
7
|
+
id: "apiKey",
|
|
8
|
+
title: "API Keys",
|
|
9
|
+
permission: "security.apiKey",
|
|
10
|
+
scopes: [
|
|
11
|
+
"full"
|
|
12
|
+
]
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
id: "group",
|
|
16
|
+
title: "Roles",
|
|
17
|
+
permission: "security.group",
|
|
18
|
+
scopes: [
|
|
19
|
+
"full"
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
id: "team",
|
|
24
|
+
title: "Teams",
|
|
25
|
+
permission: "security.team",
|
|
26
|
+
scopes: [
|
|
27
|
+
"full"
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
]
|
|
21
31
|
});
|
|
32
|
+
export { SECURITY_PERMISSIONS_SCHEMA };
|
|
22
33
|
|
|
23
34
|
//# sourceMappingURL=permissionsSchema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"domain/permissionsSchema.js","sources":["../../src/domain/permissionsSchema.ts"],"sourcesContent":["import { createPermissionSchema } from \"@webiny/app-admin\";\n\nexport const SECURITY_PERMISSIONS_SCHEMA = createPermissionSchema({\n prefix: \"security\",\n fullAccess: true,\n entities: [\n {\n id: \"apiKey\",\n title: \"API Keys\",\n permission: \"security.apiKey\",\n scopes: [\"full\"]\n },\n {\n id: \"group\",\n title: \"Roles\",\n permission: \"security.group\",\n scopes: [\"full\"]\n },\n {\n id: \"team\",\n title: \"Teams\",\n permission: \"security.team\",\n scopes: [\"full\"]\n }\n ]\n});\n"],"names":["SECURITY_PERMISSIONS_SCHEMA","createPermissionSchema"],"mappings":";AAEO,MAAMA,8BAA8BC,uBAAuB;IAC9D,QAAQ;IACR,YAAY;IACZ,UAAU;QACN;YACI,IAAI;YACJ,OAAO;YACP,YAAY;YACZ,QAAQ;gBAAC;aAAO;QACpB;QACA;YACI,IAAI;YACJ,OAAO;YACP,YAAY;YACZ,QAAQ;gBAAC;aAAO;QACpB;QACA;YACI,IAAI;YACJ,OAAO;YACP,YAAY;YACZ,QAAQ;gBAAC;aAAO;QACpB;KACH;AACL"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createPermissionsAbstraction } from "@webiny/app-admin/exports/admin/security.js";
|
|
2
2
|
import { SECURITY_PERMISSIONS_SCHEMA } from "../../domain/permissionsSchema.js";
|
|
3
|
-
|
|
3
|
+
const SecurityPermissions = createPermissionsAbstraction(SECURITY_PERMISSIONS_SCHEMA);
|
|
4
|
+
export { SecurityPermissions };
|
|
4
5
|
|
|
5
6
|
//# sourceMappingURL=abstractions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/permissions/abstractions.js","sources":["../../../src/features/permissions/abstractions.ts"],"sourcesContent":["import { createPermissionsAbstraction } from \"@webiny/app-admin/exports/admin/security.js\";\nimport type { Permissions } from \"@webiny/app-admin/exports/admin/security.js\";\nimport { SECURITY_PERMISSIONS_SCHEMA } from \"~/domain/permissionsSchema.js\";\n\nexport const SecurityPermissions = createPermissionsAbstraction(SECURITY_PERMISSIONS_SCHEMA);\n\nexport namespace SecurityPermissions {\n export type Interface = Permissions<typeof SECURITY_PERMISSIONS_SCHEMA>;\n}\n"],"names":["SecurityPermissions","createPermissionsAbstraction","SECURITY_PERMISSIONS_SCHEMA"],"mappings":";;AAIO,MAAMA,sBAAsBC,6BAA6BC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createPermissionsFeature } from "@webiny/app-admin/exports/admin/security.js";
|
|
2
2
|
import { SECURITY_PERMISSIONS_SCHEMA } from "../../domain/permissionsSchema.js";
|
|
3
3
|
import { SecurityPermissions } from "./abstractions.js";
|
|
4
|
-
|
|
4
|
+
const SecurityPermissionsFeature = createPermissionsFeature(SECURITY_PERMISSIONS_SCHEMA, SecurityPermissions);
|
|
5
|
+
export { SecurityPermissionsFeature };
|
|
5
6
|
|
|
6
7
|
//# sourceMappingURL=feature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/permissions/feature.js","sources":["../../../src/features/permissions/feature.ts"],"sourcesContent":["import { createPermissionsFeature } from \"@webiny/app-admin/exports/admin/security.js\";\nimport { SECURITY_PERMISSIONS_SCHEMA } from \"~/domain/permissionsSchema.js\";\nimport { SecurityPermissions } from \"./abstractions.js\";\n\nexport const SecurityPermissionsFeature = createPermissionsFeature(\n SECURITY_PERMISSIONS_SCHEMA,\n SecurityPermissions\n);\n"],"names":["SecurityPermissionsFeature","createPermissionsFeature","SECURITY_PERMISSIONS_SCHEMA","SecurityPermissions"],"mappings":";;;AAIO,MAAMA,6BAA6BC,yBACtCC,6BACAC"}
|
package/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/app-security-access-management",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.4.0-beta.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./index.js",
|
|
@@ -18,22 +18,20 @@
|
|
|
18
18
|
"license": "MIT",
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@apollo/react-hooks": "3.1.5",
|
|
21
|
-
"@webiny/admin-ui": "6.
|
|
22
|
-
"@webiny/app": "6.
|
|
23
|
-
"@webiny/app-admin": "6.
|
|
24
|
-
"@webiny/form": "6.
|
|
25
|
-
"@webiny/icons": "6.
|
|
26
|
-
"@webiny/
|
|
27
|
-
"@webiny/validation": "6.3.0",
|
|
21
|
+
"@webiny/admin-ui": "6.4.0-beta.0",
|
|
22
|
+
"@webiny/app": "6.4.0-beta.0",
|
|
23
|
+
"@webiny/app-admin": "6.4.0-beta.0",
|
|
24
|
+
"@webiny/form": "6.4.0-beta.0",
|
|
25
|
+
"@webiny/icons": "6.4.0-beta.0",
|
|
26
|
+
"@webiny/validation": "6.4.0-beta.0",
|
|
28
27
|
"graphql-tag": "2.12.6",
|
|
29
28
|
"lodash": "4.18.1",
|
|
30
29
|
"react": "18.3.1",
|
|
31
30
|
"react-dom": "18.3.1"
|
|
32
31
|
},
|
|
33
32
|
"devDependencies": {
|
|
34
|
-
"@emotion/babel-plugin": "11.13.5",
|
|
35
33
|
"@types/react-helmet": "6.1.11",
|
|
36
|
-
"@webiny/build-tools": "6.
|
|
34
|
+
"@webiny/build-tools": "6.4.0-beta.0",
|
|
37
35
|
"rimraf": "6.1.3",
|
|
38
36
|
"typescript": "6.0.3"
|
|
39
37
|
},
|
|
@@ -48,5 +46,5 @@
|
|
|
48
46
|
]
|
|
49
47
|
}
|
|
50
48
|
},
|
|
51
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "a545d7529828af07d08d49c3da1bcb967483b9ce"
|
|
52
50
|
}
|
package/routes.js
CHANGED
|
@@ -1,41 +1,36 @@
|
|
|
1
1
|
import { Route } from "@webiny/app-admin";
|
|
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
|
-
id: z.string().optional(),
|
|
34
|
-
new: z.boolean().optional()
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
})
|
|
38
|
-
}
|
|
2
|
+
const Routes = {
|
|
3
|
+
Roles: {
|
|
4
|
+
List: new Route({
|
|
5
|
+
name: "Security/Roles/List",
|
|
6
|
+
path: "/access-management/roles",
|
|
7
|
+
params: (z)=>({
|
|
8
|
+
id: z.string().optional(),
|
|
9
|
+
new: z.boolean().optional()
|
|
10
|
+
})
|
|
11
|
+
})
|
|
12
|
+
},
|
|
13
|
+
Teams: {
|
|
14
|
+
List: new Route({
|
|
15
|
+
name: "Security/Teams/List",
|
|
16
|
+
path: "/access-management/teams",
|
|
17
|
+
params: (z)=>({
|
|
18
|
+
id: z.string().optional(),
|
|
19
|
+
new: z.boolean().optional()
|
|
20
|
+
})
|
|
21
|
+
})
|
|
22
|
+
},
|
|
23
|
+
ApiKeys: {
|
|
24
|
+
List: new Route({
|
|
25
|
+
name: "Security/ApiKeys/List",
|
|
26
|
+
path: "/access-management/api-keys",
|
|
27
|
+
params: (z)=>({
|
|
28
|
+
id: z.string().optional(),
|
|
29
|
+
new: z.boolean().optional()
|
|
30
|
+
})
|
|
31
|
+
})
|
|
32
|
+
}
|
|
39
33
|
};
|
|
34
|
+
export { Routes };
|
|
40
35
|
|
|
41
36
|
//# sourceMappingURL=routes.js.map
|
package/routes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"routes.js","sources":["../src/routes.ts"],"sourcesContent":["import { Route } from \"@webiny/app-admin\";\n\nexport const Routes = {\n Roles: {\n List: new Route({\n name: \"Security/Roles/List\",\n path: \"/access-management/roles\",\n params: z => {\n return {\n id: z.string().optional(),\n new: z.boolean().optional()\n };\n }\n })\n },\n Teams: {\n List: new Route({\n name: \"Security/Teams/List\",\n path: \"/access-management/teams\",\n params: z => {\n return {\n id: z.string().optional(),\n new: z.boolean().optional()\n };\n }\n })\n },\n ApiKeys: {\n List: new Route({\n name: \"Security/ApiKeys/List\",\n path: \"/access-management/api-keys\",\n params: z => {\n return {\n id: z.string().optional(),\n new: z.boolean().optional()\n };\n }\n })\n }\n};\n"],"names":["Routes","Route","z"],"mappings":";AAEO,MAAMA,SAAS;IAClB,OAAO;QACH,MAAM,IAAIC,MAAM;YACZ,MAAM;YACN,MAAM;YACN,QAAQC,CAAAA,IACG;oBACH,IAAIA,EAAE,MAAM,GAAG,QAAQ;oBACvB,KAAKA,EAAE,OAAO,GAAG,QAAQ;gBAC7B;QAER;IACJ;IACA,OAAO;QACH,MAAM,IAAID,MAAM;YACZ,MAAM;YACN,MAAM;YACN,QAAQC,CAAAA,IACG;oBACH,IAAIA,EAAE,MAAM,GAAG,QAAQ;oBACvB,KAAKA,EAAE,OAAO,GAAG,QAAQ;gBAC7B;QAER;IACJ;IACA,SAAS;QACL,MAAM,IAAID,MAAM;YACZ,MAAM;YACN,MAAM;YACN,QAAQC,CAAAA,IACG;oBACH,IAAIA,EAAE,MAAM,GAAG,QAAQ;oBACvB,KAAKA,EAAE,OAAO,GAAG,QAAQ;gBAC7B;QAER;IACJ;AACJ"}
|
package/types.js
CHANGED