@webiny/app-security-access-management 6.0.0-alpha.0 → 6.0.0-alpha.2
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/index.d.ts +1 -1
- package/components/GroupAutocomplete/index.js.map +1 -1
- package/components/GroupsMultiAutocomplete/index.d.ts +1 -1
- package/components/GroupsMultiAutocomplete/index.js.map +1 -1
- package/components/TeamAutocomplete/index.d.ts +1 -1
- package/components/TeamAutocomplete/index.js.map +1 -1
- package/components/TeamsMultiAutocomplete/index.d.ts +1 -1
- package/components/TeamsMultiAutocomplete/index.js.map +1 -1
- package/package.json +13 -13
- package/plugins/index.d.ts +1 -1
- package/plugins/index.js.map +1 -1
- package/plugins/installation.d.ts +1 -1
- package/plugins/installation.js +1 -1
- package/plugins/installation.js.map +1 -1
- package/plugins/permissionRenderer/SecurityPermissions.d.ts +1 -1
- package/plugins/permissionRenderer/SecurityPermissions.js.map +1 -1
- package/plugins/routes.d.ts +1 -1
- package/plugins/routes.js.map +1 -1
- package/plugins/secureRouteError.d.ts +1 -1
- package/plugins/secureRouteError.js.map +1 -1
- package/types.d.ts +1 -1
- package/types.js.map +1 -1
- package/ui/elements/GroupAutocompleteElement.d.ts +1 -1
- package/ui/elements/GroupAutocompleteElement.js.map +1 -1
- package/ui/elements/GroupsMultiAutocompleteElement.d.ts +1 -1
- package/ui/elements/GroupsMultiAutocompleteElement.js.map +1 -1
- package/ui/elements/TeamAutocompleteElement.d.ts +1 -1
- package/ui/elements/TeamAutocompleteElement.js.map +1 -1
- package/ui/views/ApiKeys/ApiKeyForm.js.map +1 -1
- package/ui/views/ApiKeys/ApiKeys.d.ts +2 -2
- package/ui/views/ApiKeys/ApiKeys.js.map +1 -1
- package/ui/views/ApiKeys/ApiKeysDataList.js.map +1 -1
- package/ui/views/ApiKeys/graphql.d.ts +1 -1
- package/ui/views/ApiKeys/graphql.js.map +1 -1
- package/ui/views/ApiKeys/utils.d.ts +1 -1
- package/ui/views/ApiKeys/utils.js.map +1 -1
- package/ui/views/Groups/Groups.d.ts +2 -2
- package/ui/views/Groups/Groups.js.map +1 -1
- package/ui/views/Groups/GroupsDataList.js.map +1 -1
- package/ui/views/Groups/GroupsForm.js +24 -7
- package/ui/views/Groups/GroupsForm.js.map +1 -1
- package/ui/views/Groups/graphql.d.ts +1 -1
- package/ui/views/Groups/graphql.js.map +1 -1
- package/ui/views/Teams/Teams.d.ts +2 -2
- package/ui/views/Teams/Teams.js.map +1 -1
- package/ui/views/Teams/TeamsDataList.js.map +1 -1
- package/ui/views/Teams/TeamsForm.js.map +1 -1
- package/ui/views/Teams/graphql.d.ts +1 -1
- package/ui/views/Teams/graphql.js.map +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { AutoCompleteProps } from "@webiny/ui/AutoComplete";
|
|
2
|
+
import type { AutoCompleteProps } from "@webiny/ui/AutoComplete";
|
|
3
3
|
type GroupAutocompleteProps = Partial<AutoCompleteProps>;
|
|
4
4
|
export declare const GroupAutocomplete: (props: GroupAutocompleteProps) => React.JSX.Element;
|
|
5
5
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","AutoComplete","LIST_GROUPS","useQuery","GroupAutocomplete","props","data","loading","options","security","groups","createElement","Object","assign","valueProp","value","undefined"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { AutoComplete
|
|
1
|
+
{"version":3,"names":["React","AutoComplete","LIST_GROUPS","useQuery","GroupAutocomplete","props","data","loading","options","security","groups","createElement","Object","assign","valueProp","value","undefined"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport type { AutoCompleteProps } from \"@webiny/ui/AutoComplete\";\nimport { AutoComplete } from \"@webiny/ui/AutoComplete\";\nimport { LIST_GROUPS } from \"./graphql\";\nimport { useQuery } from \"@apollo/react-hooks\";\n\ntype GroupAutocompleteProps = Partial<AutoCompleteProps>;\nexport const GroupAutocomplete = (props: GroupAutocompleteProps) => {\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,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,YAAY,QAAQ,yBAAyB;AACtD,SAASC,WAAW;AACpB,SAASC,QAAQ,QAAQ,qBAAqB;AAG9C,OAAO,MAAMC,iBAAiB,GAAIC,KAA6B,IAAK;EAChE,MAAM;IAAEC,IAAI;IAAEC;EAAQ,CAAC,GAAGJ,QAAQ,CAACD,WAAW,CAAC;EAE/C,MAAMM,OAAO,GAAGD,OAAO,IAAI,CAACD,IAAI,GAAG,EAAE,GAAGA,IAAI,CAACG,QAAQ,CAACC,MAAM,CAACJ,IAAI;EAEjE,oBACIN,KAAA,CAAAW,aAAA,CAACV,YAAY,EAAAW,MAAA,CAAAC,MAAA,KACLR,KAAK;IACTG,OAAO,EAAEA,OAAQ;IACjBM,SAAS,EAAE,IAAK;IAChBC,KAAK,EAAER,OAAO,GAAGS,SAAS,GAAGX,KAAK,CAACU;EAAM,EAC5C,CAAC;AAEV,CAAC","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { MultiAutoCompleteProps } from "@webiny/ui/AutoComplete";
|
|
2
|
+
import type { MultiAutoCompleteProps } from "@webiny/ui/AutoComplete";
|
|
3
3
|
type GroupsMultiAutocompleteProps = Partial<MultiAutoCompleteProps>;
|
|
4
4
|
export declare const GroupsMultiAutocomplete: (props: GroupsMultiAutocompleteProps) => React.JSX.Element;
|
|
5
5
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","MultiAutoComplete","LIST_GROUPS","useQuery","GroupsMultiAutocomplete","props","data","loading","options","security","groups","createElement","Object","assign","valueProp","unique","value","undefined"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport {
|
|
1
|
+
{"version":3,"names":["React","MultiAutoComplete","LIST_GROUPS","useQuery","GroupsMultiAutocomplete","props","data","loading","options","security","groups","createElement","Object","assign","valueProp","unique","value","undefined"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport type { MultiAutoCompleteProps } from \"@webiny/ui/AutoComplete\";\nimport { MultiAutoComplete } from \"@webiny/ui/AutoComplete\";\nimport { LIST_GROUPS } from \"./graphql\";\nimport { useQuery } from \"@apollo/react-hooks\";\n\ntype GroupsMultiAutocompleteProps = Partial<MultiAutoCompleteProps>;\n\nexport const GroupsMultiAutocomplete = (props: GroupsMultiAutocompleteProps) => {\n const { data, loading } = useQuery(LIST_GROUPS);\n\n const options = loading || !data ? [] : data.security.groups.data;\n\n return (\n <MultiAutoComplete\n {...props}\n options={options}\n valueProp={\"id\"}\n unique={true}\n value={loading ? undefined : props.value}\n />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,iBAAiB,QAAQ,yBAAyB;AAC3D,SAASC,WAAW;AACpB,SAASC,QAAQ,QAAQ,qBAAqB;AAI9C,OAAO,MAAMC,uBAAuB,GAAIC,KAAmC,IAAK;EAC5E,MAAM;IAAEC,IAAI;IAAEC;EAAQ,CAAC,GAAGJ,QAAQ,CAACD,WAAW,CAAC;EAE/C,MAAMM,OAAO,GAAGD,OAAO,IAAI,CAACD,IAAI,GAAG,EAAE,GAAGA,IAAI,CAACG,QAAQ,CAACC,MAAM,CAACJ,IAAI;EAEjE,oBACIN,KAAA,CAAAW,aAAA,CAACV,iBAAiB,EAAAW,MAAA,CAAAC,MAAA,KACVR,KAAK;IACTG,OAAO,EAAEA,OAAQ;IACjBM,SAAS,EAAE,IAAK;IAChBC,MAAM,EAAE,IAAK;IACbC,KAAK,EAAET,OAAO,GAAGU,SAAS,GAAGZ,KAAK,CAACW;EAAM,EAC5C,CAAC;AAEV,CAAC","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { AutoCompleteProps } from "@webiny/ui/AutoComplete";
|
|
2
|
+
import type { AutoCompleteProps } from "@webiny/ui/AutoComplete";
|
|
3
3
|
type TeamAutocompleteProps = Partial<AutoCompleteProps>;
|
|
4
4
|
export declare const TeamAutocomplete: (props: TeamAutocompleteProps) => React.JSX.Element;
|
|
5
5
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","AutoComplete","LIST_TEAMS","useQuery","TeamAutocomplete","props","data","loading","options","security","teams","createElement","Object","assign","valueProp","value","undefined"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { AutoComplete
|
|
1
|
+
{"version":3,"names":["React","AutoComplete","LIST_TEAMS","useQuery","TeamAutocomplete","props","data","loading","options","security","teams","createElement","Object","assign","valueProp","value","undefined"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport type { AutoCompleteProps } from \"@webiny/ui/AutoComplete\";\nimport { AutoComplete } from \"@webiny/ui/AutoComplete\";\nimport { LIST_TEAMS } from \"./graphql\";\nimport { useQuery } from \"@apollo/react-hooks\";\n\ntype TeamAutocompleteProps = Partial<AutoCompleteProps>;\nexport const TeamAutocomplete = (props: TeamAutocompleteProps) => {\n const { data, loading } = useQuery(LIST_TEAMS);\n\n const options = loading || !data ? [] : data.security.teams.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,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,YAAY,QAAQ,yBAAyB;AACtD,SAASC,UAAU;AACnB,SAASC,QAAQ,QAAQ,qBAAqB;AAG9C,OAAO,MAAMC,gBAAgB,GAAIC,KAA4B,IAAK;EAC9D,MAAM;IAAEC,IAAI;IAAEC;EAAQ,CAAC,GAAGJ,QAAQ,CAACD,UAAU,CAAC;EAE9C,MAAMM,OAAO,GAAGD,OAAO,IAAI,CAACD,IAAI,GAAG,EAAE,GAAGA,IAAI,CAACG,QAAQ,CAACC,KAAK,CAACJ,IAAI;EAEhE,oBACIN,KAAA,CAAAW,aAAA,CAACV,YAAY,EAAAW,MAAA,CAAAC,MAAA,KACLR,KAAK;IACTG,OAAO,EAAEA,OAAQ;IACjBM,SAAS,EAAE,IAAK;IAChBC,KAAK,EAAER,OAAO,GAAGS,SAAS,GAAGX,KAAK,CAACU;EAAM,EAC5C,CAAC;AAEV,CAAC","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { MultiAutoCompleteProps } from "@webiny/ui/AutoComplete";
|
|
2
|
+
import type { MultiAutoCompleteProps } from "@webiny/ui/AutoComplete";
|
|
3
3
|
type TeamsMultiAutocompleteProps = Partial<MultiAutoCompleteProps>;
|
|
4
4
|
export declare const TeamsMultiAutocomplete: (props: TeamsMultiAutocompleteProps) => React.JSX.Element;
|
|
5
5
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","MultiAutoComplete","LIST_TEAMS","useQuery","TeamsMultiAutocomplete","props","data","loading","options","security","teams","createElement","Object","assign","valueProp","unique","value","undefined"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport {
|
|
1
|
+
{"version":3,"names":["React","MultiAutoComplete","LIST_TEAMS","useQuery","TeamsMultiAutocomplete","props","data","loading","options","security","teams","createElement","Object","assign","valueProp","unique","value","undefined"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport type { MultiAutoCompleteProps } from \"@webiny/ui/AutoComplete\";\nimport { MultiAutoComplete } from \"@webiny/ui/AutoComplete\";\nimport { LIST_TEAMS } from \"./graphql\";\nimport { useQuery } from \"@apollo/react-hooks\";\n\ntype TeamsMultiAutocompleteProps = Partial<MultiAutoCompleteProps>;\n\nexport const TeamsMultiAutocomplete = (props: TeamsMultiAutocompleteProps) => {\n const { data, loading } = useQuery(LIST_TEAMS);\n\n const options = loading || !data ? [] : data.security.teams.data;\n\n return (\n <MultiAutoComplete\n {...props}\n options={options}\n valueProp={\"id\"}\n unique={true}\n value={loading ? undefined : props.value}\n />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,iBAAiB,QAAQ,yBAAyB;AAC3D,SAASC,UAAU;AACnB,SAASC,QAAQ,QAAQ,qBAAqB;AAI9C,OAAO,MAAMC,sBAAsB,GAAIC,KAAkC,IAAK;EAC1E,MAAM;IAAEC,IAAI;IAAEC;EAAQ,CAAC,GAAGJ,QAAQ,CAACD,UAAU,CAAC;EAE9C,MAAMM,OAAO,GAAGD,OAAO,IAAI,CAACD,IAAI,GAAG,EAAE,GAAGA,IAAI,CAACG,QAAQ,CAACC,KAAK,CAACJ,IAAI;EAEhE,oBACIN,KAAA,CAAAW,aAAA,CAACV,iBAAiB,EAAAW,MAAA,CAAAC,MAAA,KACVR,KAAK;IACTG,OAAO,EAAEA,OAAQ;IACjBM,SAAS,EAAE,IAAK;IAChBC,MAAM,EAAE,IAAK;IACbC,KAAK,EAAET,OAAO,GAAGU,SAAS,GAAGZ,KAAK,CAACW;EAAM,EAC5C,CAAC;AAEV,CAAC","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/app-security-access-management",
|
|
3
|
-
"version": "6.0.0-alpha.
|
|
3
|
+
"version": "6.0.0-alpha.2",
|
|
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
|
-
"@webiny/admin-ui": "6.0.0-alpha.
|
|
19
|
-
"@webiny/app": "6.0.0-alpha.
|
|
20
|
-
"@webiny/app-admin": "6.0.0-alpha.
|
|
21
|
-
"@webiny/app-security": "6.0.0-alpha.
|
|
22
|
-
"@webiny/form": "6.0.0-alpha.
|
|
23
|
-
"@webiny/icons": "6.0.0-alpha.
|
|
24
|
-
"@webiny/plugins": "6.0.0-alpha.
|
|
25
|
-
"@webiny/react-router": "6.0.0-alpha.
|
|
26
|
-
"@webiny/ui": "6.0.0-alpha.
|
|
27
|
-
"@webiny/validation": "6.0.0-alpha.
|
|
18
|
+
"@webiny/admin-ui": "6.0.0-alpha.2",
|
|
19
|
+
"@webiny/app": "6.0.0-alpha.2",
|
|
20
|
+
"@webiny/app-admin": "6.0.0-alpha.2",
|
|
21
|
+
"@webiny/app-security": "6.0.0-alpha.2",
|
|
22
|
+
"@webiny/form": "6.0.0-alpha.2",
|
|
23
|
+
"@webiny/icons": "6.0.0-alpha.2",
|
|
24
|
+
"@webiny/plugins": "6.0.0-alpha.2",
|
|
25
|
+
"@webiny/react-router": "6.0.0-alpha.2",
|
|
26
|
+
"@webiny/ui": "6.0.0-alpha.2",
|
|
27
|
+
"@webiny/validation": "6.0.0-alpha.2",
|
|
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": "6.0.0-alpha.
|
|
37
|
+
"@webiny/project-utils": "6.0.0-alpha.2",
|
|
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": "7c9e8fbfd62a57ece5f880dbad6c864636b0355e"
|
|
57
57
|
}
|
package/plugins/index.d.ts
CHANGED
package/plugins/index.js.map
CHANGED
|
@@ -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,OAAOA,YAAY;AACnB,OAAOC,kBAAkB;AACzB,OAAOC,gBAAgB;AAEvB,eAAe,MAAwB,CAACF,YAAY,EAAEC,kBAAkB,EAAEC,gBAAgB,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["installation","permissionRenderer","secureRouteError"],"sources":["index.ts"],"sourcesContent":["import type { 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
|
@@ -17,7 +17,7 @@ const SimpleFormPlaceholder = /*#__PURE__*/_styled("div", process.env.NODE_ENV =
|
|
|
17
17
|
} : {
|
|
18
18
|
name: "u16u3o",
|
|
19
19
|
styles: "min-height:300px;min-width:400px",
|
|
20
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
20
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluc3RhbGxhdGlvbi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUzhCIiwiZmlsZSI6Imluc3RhbGxhdGlvbi50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGdxbCBmcm9tIFwiZ3JhcGhxbC10YWdcIjtcbmltcG9ydCB7IHVzZUFwb2xsb0NsaWVudCB9IGZyb20gXCJAYXBvbGxvL3JlYWN0LWhvb2tzXCI7XG5pbXBvcnQgeyBBbGVydCB9IGZyb20gXCJAd2ViaW55L3VpL0FsZXJ0XCI7XG5pbXBvcnQgeyBDaXJjdWxhclByb2dyZXNzIH0gZnJvbSBcIkB3ZWJpbnkvdWkvUHJvZ3Jlc3NcIjtcbmltcG9ydCB7IFNpbXBsZUZvcm0sIFNpbXBsZUZvcm1Db250ZW50IH0gZnJvbSBcIkB3ZWJpbnkvYXBwLWFkbWluL2NvbXBvbmVudHMvU2ltcGxlRm9ybVwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IEFkbWluSW5zdGFsbGF0aW9uUGx1Z2luIH0gZnJvbSBcIkB3ZWJpbnkvYXBwLWFkbWluL3R5cGVzXCI7XG5cbmNvbnN0IFNpbXBsZUZvcm1QbGFjZWhvbGRlciA9IHN0eWxlZC5kaXYoe1xuICAgIG1pbkhlaWdodDogMzAwLFxuICAgIG1pbldpZHRoOiA0MDBcbn0pO1xuXG5jb25zdCBJU19JTlNUQUxMRUQgPSBncWxgXG4gICAgcXVlcnkgSXNTZWN1cml0eUluc3RhbGxlZCB7XG4gICAgICAgIHNlY3VyaXR5IHtcbiAgICAgICAgICAgIHZlcnNpb25cbiAgICAgICAgfVxuICAgIH1cbmA7XG5cbmNvbnN0IElOU1RBTEwgPSBncWxgXG4gICAgbXV0YXRpb24gSW5zdGFsbFNlY3VyaXR5IHtcbiAgICAgICAgc2VjdXJpdHkge1xuICAgICAgICAgICAgaW5zdGFsbCB7XG4gICAgICAgICAgICAgICAgZGF0YVxuICAgICAgICAgICAgICAgIGVycm9yIHtcbiAgICAgICAgICAgICAgICAgICAgY29kZVxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuYDtcblxuaW50ZXJmYWNlIFNlY3VyaXR5SW5zdGFsbGVyUHJvcHMge1xuICAgIG9uSW5zdGFsbGVkOiAoKSA9PiB2b2lkO1xufVxuY29uc3QgU2VjdXJpdHlJbnN0YWxsZXIgPSAoeyBvbkluc3RhbGxlZCB9OiBTZWN1cml0eUluc3RhbGxlclByb3BzKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gdXNlQXBvbGxvQ2xpZW50KCk7XG4gICAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZShudWxsKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNsaWVudC5tdXRhdGUoeyBtdXRhdGlvbjogSU5TVEFMTCB9KS50aGVuKCh7IGRhdGEgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBlcnJvciB9ID0gZGF0YS5zZWN1cml0eS5pbnN0YWxsO1xuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgc2V0RXJyb3IoZXJyb3IubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBKdXN0IHNvIHRoZSB1c2VyIHNlZXMgdGhlIGFjdHVhbCBtZXNzYWdlLlxuICAgICAgICAgICAgc2V0VGltZW91dChvbkluc3RhbGxlZCwgMzAwMCk7XG4gICAgICAgIH0pO1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IGxhYmVsID0gZXJyb3IgPyAoXG4gICAgICAgIDxBbGVydCB0aXRsZT17YFNvbWV0aGluZyB3ZW50IHdyb25nYH0gdHlwZT17XCJkYW5nZXJcIn0+XG4gICAgICAgICAgICB7ZXJyb3J9XG4gICAgICAgIDwvQWxlcnQ+XG4gICAgKSA6IChcbiAgICAgICAgYEluc3RhbGxpbmcgU2VjdXJpdHkuLi5gXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxTaW1wbGVGb3JtPlxuICAgICAgICAgICAgPENpcmN1bGFyUHJvZ3Jlc3MgbGFiZWw9e2xhYmVsfSAvPlxuICAgICAgICAgICAgPFNpbXBsZUZvcm1Db250ZW50PlxuICAgICAgICAgICAgICAgIDxTaW1wbGVGb3JtUGxhY2Vob2xkZXIgLz5cbiAgICAgICAgICAgIDwvU2ltcGxlRm9ybUNvbnRlbnQ+XG4gICAgICAgIDwvU2ltcGxlRm9ybT5cbiAgICApO1xufTtcblxuY29uc3QgcGx1Z2luOiBBZG1pbkluc3RhbGxhdGlvblBsdWdpbiA9IHtcbiAgICBuYW1lOiBcImFkbWluLWluc3RhbGxhdGlvbi1zZWN1cml0eVwiLFxuICAgIHR5cGU6IFwiYWRtaW4taW5zdGFsbGF0aW9uXCIsXG4gICAgdGl0bGU6IGBTZWN1cml0eWAsXG4gICAgZGVwZW5kZW5jaWVzOiBbYGFkbWluLWluc3RhbGxhdGlvbi10ZW5hbmN5YF0sXG4gICAgc2VjdXJlOiBmYWxzZSxcbiAgICBhc3luYyBnZXRJbnN0YWxsZWRWZXJzaW9uKHsgY2xpZW50IH0pIHtcbiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCBjbGllbnQucXVlcnkoeyBxdWVyeTogSVNfSU5TVEFMTEVEIH0pO1xuICAgICAgICByZXR1cm4gZGF0YS5zZWN1cml0eS52ZXJzaW9uO1xuICAgIH0sXG4gICAgcmVuZGVyKHsgb25JbnN0YWxsZWQgfSkge1xuICAgICAgICByZXR1cm4gPFNlY3VyaXR5SW5zdGFsbGVyIG9uSW5zdGFsbGVkPXtvbkluc3RhbGxlZH0gLz47XG4gICAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgcGx1Z2luO1xuIl19 */",
|
|
21
21
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
22
22
|
});
|
|
23
23
|
const IS_INSTALLED = gql`
|
|
@@ -1 +1 @@
|
|
|
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":[]}
|
|
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 type { 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":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { SecurityPermission } from "@webiny/app-security/types";
|
|
2
|
+
import type { SecurityPermission } from "@webiny/app-security/types";
|
|
3
3
|
interface SecurityPermissionsProps {
|
|
4
4
|
value: SecurityPermission[];
|
|
5
5
|
onChange: (value: SecurityPermission[]) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Fragment","useCallback","useMemo","Grid","Cell","Select","i18n","CannotUseAaclAlert","PermissionInfo","gridWithPaddingClass","PermissionsGroup","Form","useSecurity","useWcp","t","ns","SECURITY","SECURITY_FULL_ACCESS","SECURITY_GROUP_ACCESS","SECURITY_TEAM_ACCESS","SECURITY_API_KEY_ACCESS","FULL_ACCESS","NO_ACCESS","CUSTOM_ACCESS","SecurityPermissions","value","onChange","getPermission","wcp","cannotUseAacl","teams","canUseTeams","onFormChange","formData","newValue","Array","isArray","filter","item","name","startsWith","permissions","accessLevel","push","groupAccessScope","teamAccessScope","apiKeyAccessScope","length","hasFullAccess","find","data","hasGroupAccess","hasTeamAccess","hasApiKeyAccess","createElement","Bind","className","span","title","label","disabled"],"sources":["SecurityPermissions.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useMemo } from \"react\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport {\n CannotUseAaclAlert,\n PermissionInfo,\n gridWithPaddingClass,\n PermissionsGroup\n} from \"@webiny/app-admin/components/Permissions\";\nimport { Form } from \"@webiny/form\";\nimport { SecurityPermission } from \"@webiny/app-security/types\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport { AaclPermission, useWcp } from \"@webiny/app-admin\";\n\nconst t = i18n.ns(\"app-security-admin-users/plugins/permissionRenderer\");\n\nconst SECURITY = \"security\";\nconst SECURITY_FULL_ACCESS = `${SECURITY}.*`;\nconst SECURITY_GROUP_ACCESS = `${SECURITY}.group`;\nconst SECURITY_TEAM_ACCESS = `${SECURITY}.team`;\nconst SECURITY_API_KEY_ACCESS = `${SECURITY}.apiKey`;\nconst FULL_ACCESS = \"full\";\nconst NO_ACCESS = \"no\";\nconst CUSTOM_ACCESS = \"custom\";\n\ninterface SecurityPermissionsProps {\n value: SecurityPermission[];\n onChange: (value: SecurityPermission[]) => void;\n}\n\nexport const SecurityPermissions = ({ value, onChange }: SecurityPermissionsProps) => {\n const { getPermission } = useSecurity();\n const wcp = useWcp();\n\n // We disable form elements for custom permissions if AACL cannot be used.\n const cannotUseAacl = useMemo(() => {\n return !getPermission<AaclPermission>(\"aacl\", true);\n }, []);\n\n const teams = wcp.canUseTeams();\n\n const onFormChange = useCallback(\n (formData: SecurityPermission) => {\n let newValue: SecurityPermission[] = [];\n if (Array.isArray(value)) {\n // Let's just filter out the `security*` permission objects, it's easier to build new ones from scratch.\n newValue = value.filter(item => !item.name.startsWith(SECURITY));\n }\n\n const permissions = [];\n if (formData.accessLevel === FULL_ACCESS) {\n permissions.push({ name: SECURITY_FULL_ACCESS });\n } else if (formData.accessLevel === CUSTOM_ACCESS) {\n if (formData.groupAccessScope === FULL_ACCESS) {\n permissions.push({ name: SECURITY_GROUP_ACCESS });\n }\n\n if (formData.teamAccessScope === FULL_ACCESS) {\n permissions.push({ name: SECURITY_TEAM_ACCESS });\n }\n\n if (formData.apiKeyAccessScope === FULL_ACCESS) {\n permissions.push({ name: SECURITY_API_KEY_ACCESS });\n }\n }\n\n if (permissions && permissions.length) {\n newValue.push(...permissions);\n }\n\n onChange(newValue);\n },\n [value]\n );\n\n const formData = useMemo(() => {\n if (!Array.isArray(value)) {\n return { accessLevel: NO_ACCESS };\n }\n\n const hasFullAccess = value.find(\n item => item.name === SECURITY_FULL_ACCESS || item.name === \"*\"\n );\n\n if (hasFullAccess) {\n return { accessLevel: FULL_ACCESS };\n }\n\n const permissions = value.filter(item => item.name.startsWith(SECURITY));\n if (permissions.length === 0) {\n return { accessLevel: NO_ACCESS };\n }\n\n const data = {\n accessLevel: CUSTOM_ACCESS,\n groupAccessScope: NO_ACCESS,\n teamAccessScope: NO_ACCESS,\n apiKeyAccessScope: NO_ACCESS\n };\n\n const hasGroupAccess = permissions.find(item => item.name === SECURITY_GROUP_ACCESS);\n if (hasGroupAccess) {\n data.groupAccessScope = FULL_ACCESS;\n }\n const hasTeamAccess = permissions.find(item => item.name === SECURITY_TEAM_ACCESS);\n if (hasTeamAccess) {\n data.teamAccessScope = FULL_ACCESS;\n }\n\n const hasApiKeyAccess = permissions.find(item => item.name === SECURITY_API_KEY_ACCESS);\n if (hasApiKeyAccess) {\n data.apiKeyAccessScope = FULL_ACCESS;\n }\n\n return data;\n }, []);\n\n return (\n <Form data={formData} onChange={onFormChange}>\n {({ data, Bind }) => {\n return (\n <Fragment>\n <Grid className={gridWithPaddingClass}>\n <Cell span={12}>\n {data.accessLevel === \"custom\" && cannotUseAacl && (\n <CannotUseAaclAlert />\n )}\n </Cell>\n </Grid>\n <Grid className={gridWithPaddingClass}>\n <Cell span={6}>\n <PermissionInfo title={t`Access Level`} />\n </Cell>\n <Cell span={6}>\n <Bind name={\"accessLevel\"}>\n <Select>\n <option value={NO_ACCESS}>{t`No access`}</option>\n <option value={FULL_ACCESS}>{t`Full access`}</option>\n <option value={CUSTOM_ACCESS}>{t`Custom access`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n {data.accessLevel === CUSTOM_ACCESS && (\n <div className={\"wby-mt-lg\"}>\n <PermissionsGroup title={t`API Keys`}>\n <Grid>\n <Cell span={12}>\n <Bind name={\"apiKeyAccessScope\"}>\n <Select\n label={t`Access Scope`}\n disabled={cannotUseAacl}\n >\n <option\n value={NO_ACCESS}\n >{t`No access`}</option>\n <option\n value={FULL_ACCESS}\n >{t`Full access`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n </PermissionsGroup>\n <PermissionsGroup title={t`Roles`}>\n <Grid>\n <Cell span={12}>\n <Bind name={\"groupAccessScope\"}>\n <Select\n label={t`Access Scope`}\n disabled={cannotUseAacl}\n >\n <option\n value={NO_ACCESS}\n >{t`No access`}</option>\n <option\n value={FULL_ACCESS}\n >{t`Full access`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n </PermissionsGroup>\n {teams && (\n <PermissionsGroup title={t`Teams`}>\n <Grid>\n <Cell span={12}>\n <Bind name={\"teamAccessScope\"}>\n <Select\n label={t`Access Scope`}\n disabled={cannotUseAacl}\n >\n <option\n value={NO_ACCESS}\n >{t`No access`}</option>\n <option\n value={FULL_ACCESS}\n >{t`Full access`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n </PermissionsGroup>\n )}\n </div>\n )}\n </Fragment>\n );\n }}\n </Form>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Fragment","useCallback","useMemo","Grid","Cell","Select","i18n","CannotUseAaclAlert","PermissionInfo","gridWithPaddingClass","PermissionsGroup","Form","useSecurity","useWcp","t","ns","SECURITY","SECURITY_FULL_ACCESS","SECURITY_GROUP_ACCESS","SECURITY_TEAM_ACCESS","SECURITY_API_KEY_ACCESS","FULL_ACCESS","NO_ACCESS","CUSTOM_ACCESS","SecurityPermissions","value","onChange","getPermission","wcp","cannotUseAacl","teams","canUseTeams","onFormChange","formData","newValue","Array","isArray","filter","item","name","startsWith","permissions","accessLevel","push","groupAccessScope","teamAccessScope","apiKeyAccessScope","length","hasFullAccess","find","data","hasGroupAccess","hasTeamAccess","hasApiKeyAccess","createElement","Bind","className","span","title","label","disabled"],"sources":["SecurityPermissions.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useMemo } from \"react\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport {\n CannotUseAaclAlert,\n PermissionInfo,\n gridWithPaddingClass,\n PermissionsGroup\n} from \"@webiny/app-admin/components/Permissions\";\nimport { Form } from \"@webiny/form\";\nimport type { SecurityPermission } from \"@webiny/app-security/types\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport type { AaclPermission } from \"@webiny/app-admin\";\nimport { useWcp } from \"@webiny/app-admin\";\n\nconst t = i18n.ns(\"app-security-admin-users/plugins/permissionRenderer\");\n\nconst SECURITY = \"security\";\nconst SECURITY_FULL_ACCESS = `${SECURITY}.*`;\nconst SECURITY_GROUP_ACCESS = `${SECURITY}.group`;\nconst SECURITY_TEAM_ACCESS = `${SECURITY}.team`;\nconst SECURITY_API_KEY_ACCESS = `${SECURITY}.apiKey`;\nconst FULL_ACCESS = \"full\";\nconst NO_ACCESS = \"no\";\nconst CUSTOM_ACCESS = \"custom\";\n\ninterface SecurityPermissionsProps {\n value: SecurityPermission[];\n onChange: (value: SecurityPermission[]) => void;\n}\n\nexport const SecurityPermissions = ({ value, onChange }: SecurityPermissionsProps) => {\n const { getPermission } = useSecurity();\n const wcp = useWcp();\n\n // We disable form elements for custom permissions if AACL cannot be used.\n const cannotUseAacl = useMemo(() => {\n return !getPermission<AaclPermission>(\"aacl\", true);\n }, []);\n\n const teams = wcp.canUseTeams();\n\n const onFormChange = useCallback(\n (formData: SecurityPermission) => {\n let newValue: SecurityPermission[] = [];\n if (Array.isArray(value)) {\n // Let's just filter out the `security*` permission objects, it's easier to build new ones from scratch.\n newValue = value.filter(item => !item.name.startsWith(SECURITY));\n }\n\n const permissions = [];\n if (formData.accessLevel === FULL_ACCESS) {\n permissions.push({ name: SECURITY_FULL_ACCESS });\n } else if (formData.accessLevel === CUSTOM_ACCESS) {\n if (formData.groupAccessScope === FULL_ACCESS) {\n permissions.push({ name: SECURITY_GROUP_ACCESS });\n }\n\n if (formData.teamAccessScope === FULL_ACCESS) {\n permissions.push({ name: SECURITY_TEAM_ACCESS });\n }\n\n if (formData.apiKeyAccessScope === FULL_ACCESS) {\n permissions.push({ name: SECURITY_API_KEY_ACCESS });\n }\n }\n\n if (permissions && permissions.length) {\n newValue.push(...permissions);\n }\n\n onChange(newValue);\n },\n [value]\n );\n\n const formData = useMemo(() => {\n if (!Array.isArray(value)) {\n return { accessLevel: NO_ACCESS };\n }\n\n const hasFullAccess = value.find(\n item => item.name === SECURITY_FULL_ACCESS || item.name === \"*\"\n );\n\n if (hasFullAccess) {\n return { accessLevel: FULL_ACCESS };\n }\n\n const permissions = value.filter(item => item.name.startsWith(SECURITY));\n if (permissions.length === 0) {\n return { accessLevel: NO_ACCESS };\n }\n\n const data = {\n accessLevel: CUSTOM_ACCESS,\n groupAccessScope: NO_ACCESS,\n teamAccessScope: NO_ACCESS,\n apiKeyAccessScope: NO_ACCESS\n };\n\n const hasGroupAccess = permissions.find(item => item.name === SECURITY_GROUP_ACCESS);\n if (hasGroupAccess) {\n data.groupAccessScope = FULL_ACCESS;\n }\n const hasTeamAccess = permissions.find(item => item.name === SECURITY_TEAM_ACCESS);\n if (hasTeamAccess) {\n data.teamAccessScope = FULL_ACCESS;\n }\n\n const hasApiKeyAccess = permissions.find(item => item.name === SECURITY_API_KEY_ACCESS);\n if (hasApiKeyAccess) {\n data.apiKeyAccessScope = FULL_ACCESS;\n }\n\n return data;\n }, []);\n\n return (\n <Form data={formData} onChange={onFormChange}>\n {({ data, Bind }) => {\n return (\n <Fragment>\n <Grid className={gridWithPaddingClass}>\n <Cell span={12}>\n {data.accessLevel === \"custom\" && cannotUseAacl && (\n <CannotUseAaclAlert />\n )}\n </Cell>\n </Grid>\n <Grid className={gridWithPaddingClass}>\n <Cell span={6}>\n <PermissionInfo title={t`Access Level`} />\n </Cell>\n <Cell span={6}>\n <Bind name={\"accessLevel\"}>\n <Select>\n <option value={NO_ACCESS}>{t`No access`}</option>\n <option value={FULL_ACCESS}>{t`Full access`}</option>\n <option value={CUSTOM_ACCESS}>{t`Custom access`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n {data.accessLevel === CUSTOM_ACCESS && (\n <div className={\"wby-mt-lg\"}>\n <PermissionsGroup title={t`API Keys`}>\n <Grid>\n <Cell span={12}>\n <Bind name={\"apiKeyAccessScope\"}>\n <Select\n label={t`Access Scope`}\n disabled={cannotUseAacl}\n >\n <option\n value={NO_ACCESS}\n >{t`No access`}</option>\n <option\n value={FULL_ACCESS}\n >{t`Full access`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n </PermissionsGroup>\n <PermissionsGroup title={t`Roles`}>\n <Grid>\n <Cell span={12}>\n <Bind name={\"groupAccessScope\"}>\n <Select\n label={t`Access Scope`}\n disabled={cannotUseAacl}\n >\n <option\n value={NO_ACCESS}\n >{t`No access`}</option>\n <option\n value={FULL_ACCESS}\n >{t`Full access`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n </PermissionsGroup>\n {teams && (\n <PermissionsGroup title={t`Teams`}>\n <Grid>\n <Cell span={12}>\n <Bind name={\"teamAccessScope\"}>\n <Select\n label={t`Access Scope`}\n disabled={cannotUseAacl}\n >\n <option\n value={NO_ACCESS}\n >{t`No access`}</option>\n <option\n value={FULL_ACCESS}\n >{t`Full access`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n </PermissionsGroup>\n )}\n </div>\n )}\n </Fragment>\n );\n }}\n </Form>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
package/plugins/routes.d.ts
CHANGED
package/plugins/routes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Helmet","Route","AdminLayout","SecureRoute","Groups","ApiKeys","Permission","plugins","name","type","route","createElement","exact","path","render","permission","title"],"sources":["routes.tsx"],"sourcesContent":["import React from \"react\";\nimport Helmet from \"react-helmet\";\nimport { Route } from \"@webiny/react-router\";\nimport { AdminLayout } from \"@webiny/app-admin/components/AdminLayout\";\nimport { SecureRoute } from \"@webiny/app-security/components\";\nimport { RoutePlugin } from \"@webiny/app/types\";\nimport { Groups } from \"~/ui/views/Groups\";\nimport { ApiKeys } from \"~/ui/views/ApiKeys\";\nimport { Permission } from \"./constants\";\n\nconst plugins: RoutePlugin[] = [\n {\n name: \"route-security-groups\",\n type: \"route\",\n route: (\n <Route\n exact\n path={\"/access-management/groups\"}\n render={() => (\n <SecureRoute permission={Permission.Groups}>\n <AdminLayout>\n <Helmet title={\"Access Management - Groups\"} />\n <Groups />\n </AdminLayout>\n </SecureRoute>\n )}\n />\n )\n },\n {\n name: \"route-security-api-keys\",\n type: \"route\",\n route: (\n <Route\n exact\n path={\"/access-management/api-keys\"}\n render={() => (\n <SecureRoute permission={Permission.ApiKeys}>\n <AdminLayout title={\"Access Management - API Keys\"}>\n <ApiKeys />\n </AdminLayout>\n </SecureRoute>\n )}\n />\n )\n }\n];\n\nexport default plugins;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,MAAM,MAAM,cAAc;AACjC,SAASC,KAAK,QAAQ,sBAAsB;AAC5C,SAASC,WAAW,QAAQ,0CAA0C;AACtE,SAASC,WAAW,QAAQ,iCAAiC;AAE7D,SAASC,MAAM;AACf,SAASC,OAAO;AAChB,SAASC,UAAU;AAEnB,MAAMC,OAAsB,GAAG,CAC3B;EACIC,IAAI,EAAE,uBAAuB;EAC7BC,IAAI,EAAE,OAAO;EACbC,KAAK,eACDX,KAAA,CAAAY,aAAA,CAACV,KAAK;IACFW,KAAK;IACLC,IAAI,EAAE,2BAA4B;IAClCC,MAAM,EAAEA,CAAA,kBACJf,KAAA,CAAAY,aAAA,CAACR,WAAW;MAACY,UAAU,EAAET,UAAU,CAACF;IAAO,gBACvCL,KAAA,CAAAY,aAAA,CAACT,WAAW,qBACRH,KAAA,CAAAY,aAAA,CAACX,MAAM;MAACgB,KAAK,EAAE;IAA6B,CAAE,CAAC,eAC/CjB,KAAA,CAAAY,aAAA,CAACP,MAAM,MAAE,CACA,CACJ;EACf,CACL;AAET,CAAC,EACD;EACII,IAAI,EAAE,yBAAyB;EAC/BC,IAAI,EAAE,OAAO;EACbC,KAAK,eACDX,KAAA,CAAAY,aAAA,CAACV,KAAK;IACFW,KAAK;IACLC,IAAI,EAAE,6BAA8B;IACpCC,MAAM,EAAEA,CAAA,kBACJf,KAAA,CAAAY,aAAA,CAACR,WAAW;MAACY,UAAU,EAAET,UAAU,CAACD;IAAQ,gBACxCN,KAAA,CAAAY,aAAA,CAACT,WAAW;MAACc,KAAK,EAAE;IAA+B,gBAC/CjB,KAAA,CAAAY,aAAA,CAACN,OAAO,MAAE,CACD,CACJ;EACf,CACL;AAET,CAAC,CACJ;AAED,eAAeE,OAAO","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Helmet","Route","AdminLayout","SecureRoute","Groups","ApiKeys","Permission","plugins","name","type","route","createElement","exact","path","render","permission","title"],"sources":["routes.tsx"],"sourcesContent":["import React from \"react\";\nimport Helmet from \"react-helmet\";\nimport { Route } from \"@webiny/react-router\";\nimport { AdminLayout } from \"@webiny/app-admin/components/AdminLayout\";\nimport { SecureRoute } from \"@webiny/app-security/components\";\nimport type { RoutePlugin } from \"@webiny/app/types\";\nimport { Groups } from \"~/ui/views/Groups\";\nimport { ApiKeys } from \"~/ui/views/ApiKeys\";\nimport { Permission } from \"./constants\";\n\nconst plugins: RoutePlugin[] = [\n {\n name: \"route-security-groups\",\n type: \"route\",\n route: (\n <Route\n exact\n path={\"/access-management/groups\"}\n render={() => (\n <SecureRoute permission={Permission.Groups}>\n <AdminLayout>\n <Helmet title={\"Access Management - Groups\"} />\n <Groups />\n </AdminLayout>\n </SecureRoute>\n )}\n />\n )\n },\n {\n name: \"route-security-api-keys\",\n type: \"route\",\n route: (\n <Route\n exact\n path={\"/access-management/api-keys\"}\n render={() => (\n <SecureRoute permission={Permission.ApiKeys}>\n <AdminLayout title={\"Access Management - API Keys\"}>\n <ApiKeys />\n </AdminLayout>\n </SecureRoute>\n )}\n />\n )\n }\n];\n\nexport default plugins;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,MAAM,MAAM,cAAc;AACjC,SAASC,KAAK,QAAQ,sBAAsB;AAC5C,SAASC,WAAW,QAAQ,0CAA0C;AACtE,SAASC,WAAW,QAAQ,iCAAiC;AAE7D,SAASC,MAAM;AACf,SAASC,OAAO;AAChB,SAASC,UAAU;AAEnB,MAAMC,OAAsB,GAAG,CAC3B;EACIC,IAAI,EAAE,uBAAuB;EAC7BC,IAAI,EAAE,OAAO;EACbC,KAAK,eACDX,KAAA,CAAAY,aAAA,CAACV,KAAK;IACFW,KAAK;IACLC,IAAI,EAAE,2BAA4B;IAClCC,MAAM,EAAEA,CAAA,kBACJf,KAAA,CAAAY,aAAA,CAACR,WAAW;MAACY,UAAU,EAAET,UAAU,CAACF;IAAO,gBACvCL,KAAA,CAAAY,aAAA,CAACT,WAAW,qBACRH,KAAA,CAAAY,aAAA,CAACX,MAAM;MAACgB,KAAK,EAAE;IAA6B,CAAE,CAAC,eAC/CjB,KAAA,CAAAY,aAAA,CAACP,MAAM,MAAE,CACA,CACJ;EACf,CACL;AAET,CAAC,EACD;EACII,IAAI,EAAE,yBAAyB;EAC/BC,IAAI,EAAE,OAAO;EACbC,KAAK,eACDX,KAAA,CAAAY,aAAA,CAACV,KAAK;IACFW,KAAK;IACLC,IAAI,EAAE,6BAA8B;IACpCC,MAAM,EAAEA,CAAA,kBACJf,KAAA,CAAAY,aAAA,CAACR,WAAW;MAACY,UAAU,EAAET,UAAU,CAACD;IAAQ,gBACxCN,KAAA,CAAAY,aAAA,CAACT,WAAW;MAACc,KAAK,EAAE;IAA+B,gBAC/CjB,KAAA,CAAAY,aAAA,CAACN,OAAO,MAAE,CACD,CACJ;EACf,CACL;AAET,CAAC,CACJ;AAED,eAAeE,OAAO","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","NotAuthorizedError","plugin","type","name","render","createElement"],"sources":["secureRouteError.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Plugin } from \"@webiny/plugins/types\";\nimport { NotAuthorizedError } from \"~/components/NotAuthorizedError\";\n\ntype SecureRouteErrorPlugin = Plugin & { render: () => React.ReactNode };\n\nconst plugin: SecureRouteErrorPlugin = {\n type: \"secure-route-error\",\n name: \"secure-route-error\",\n render(): React.ReactElement {\n return <NotAuthorizedError />;\n }\n};\n\nexport default plugin;\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,kBAAkB;AAI3B,MAAMC,MAA8B,GAAG;EACnCC,IAAI,EAAE,oBAAoB;EAC1BC,IAAI,EAAE,oBAAoB;EAC1BC,MAAMA,CAAA,EAAuB;IACzB,oBAAOL,KAAA,CAAAM,aAAA,CAACL,kBAAkB,MAAE,CAAC;EACjC;AACJ,CAAC;AAED,eAAeC,MAAM","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","NotAuthorizedError","plugin","type","name","render","createElement"],"sources":["secureRouteError.tsx"],"sourcesContent":["import * as React from \"react\";\nimport type { Plugin } from \"@webiny/plugins/types\";\nimport { NotAuthorizedError } from \"~/components/NotAuthorizedError\";\n\ntype SecureRouteErrorPlugin = Plugin & { render: () => React.ReactNode };\n\nconst plugin: SecureRouteErrorPlugin = {\n type: \"secure-route-error\",\n name: \"secure-route-error\",\n render(): React.ReactElement {\n return <NotAuthorizedError />;\n }\n};\n\nexport default plugin;\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,kBAAkB;AAI3B,MAAMC,MAA8B,GAAG;EACnCC,IAAI,EAAE,oBAAoB;EAC1BC,IAAI,EAAE,oBAAoB;EAC1BC,MAAMA,CAAA,EAAuB;IACzB,oBAAOL,KAAA,CAAAM,aAAA,CAACL,kBAAkB,MAAE,CAAC;EACjC;AACJ,CAAC;AAED,eAAeC,MAAM","ignoreList":[]}
|
package/types.d.ts
CHANGED
package/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import { SecurityPermission } from \"@webiny/app-security/types\";\n\nexport interface Group {\n id: string;\n name: string;\n description: string;\n slug: string;\n system?: boolean;\n plugin: boolean | null;\n permissions: SecurityPermission[];\n createdOn: string;\n}\n\nexport interface Team {\n id: string;\n name: string;\n description: string;\n slug: string;\n system?: boolean;\n plugin: boolean | null;\n createdOn: string;\n}\n\nexport interface ApiKey {\n id: string;\n token: string;\n name: string;\n description: string;\n permissions: SecurityPermission[];\n createdOn: string;\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { SecurityPermission } from \"@webiny/app-security/types\";\n\nexport interface Group {\n id: string;\n name: string;\n description: string;\n slug: string;\n system?: boolean;\n plugin: boolean | null;\n permissions: SecurityPermission[];\n createdOn: string;\n}\n\nexport interface Team {\n id: string;\n name: string;\n description: string;\n slug: string;\n system?: boolean;\n plugin: boolean | null;\n createdOn: string;\n}\n\nexport interface ApiKey {\n id: string;\n token: string;\n name: string;\n description: string;\n permissions: SecurityPermission[];\n createdOn: string;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { InputElement } from "@webiny/app-admin/ui/elements/form/InputElement";
|
|
3
|
-
import { FormFieldElementRenderProps } from "@webiny/app-admin/ui/elements/form/FormFieldElement";
|
|
3
|
+
import type { FormFieldElementRenderProps } from "@webiny/app-admin/ui/elements/form/FormFieldElement";
|
|
4
4
|
export declare class GroupAutocompleteElement extends InputElement {
|
|
5
5
|
render(props: FormFieldElementRenderProps): React.ReactElement;
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","InputElement","GroupAutocomplete","GroupAutocompleteElement","render","props","formProps","Bind","validators","config","console","log","createElement","name","id","label"],"sources":["GroupAutocompleteElement.tsx"],"sourcesContent":["import React from \"react\";\nimport { FormRenderPropParams } from \"@webiny/form\";\nimport { InputElement } from \"@webiny/app-admin/ui/elements/form/InputElement\";\nimport { GroupAutocomplete } from \"~/components/GroupAutocomplete\";\nimport { FormFieldElementRenderProps } from \"@webiny/app-admin/ui/elements/form/FormFieldElement\";\n\nexport class GroupAutocompleteElement extends InputElement {\n public override render(props: FormFieldElementRenderProps): React.ReactElement {\n const { formProps } = props;\n const { Bind } = formProps as FormRenderPropParams;\n const validators = this.config.validators;\n /**\n * TODO @ts-refactor @bruno\n * Figure out what can validators be.\n */\n if (validators && typeof validators !== \"function\") {\n console.log(\n \"packages/app-security-access-management/src/ui/elements/GroupAutocompleteElement.tsx validators is set but not a function.\"\n );\n console.log(validators);\n }\n return (\n <Bind\n name={this.id}\n validators={typeof validators === \"function\" ? validators({ formProps }) : []}\n >\n <GroupAutocomplete label={\"Group\"} />\n </Bind>\n );\n }\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,YAAY,QAAQ,iDAAiD;AAC9E,SAASC,iBAAiB;AAG1B,OAAO,MAAMC,wBAAwB,SAASF,YAAY,CAAC;EACvCG,MAAMA,CAACC,KAAkC,EAAsB;IAC3E,MAAM;MAAEC;IAAU,CAAC,GAAGD,KAAK;IAC3B,MAAM;MAAEE;IAAK,CAAC,GAAGD,SAAiC;IAClD,MAAME,UAAU,GAAG,IAAI,CAACC,MAAM,CAACD,UAAU;IACzC;AACR;AACA;AACA;IACQ,IAAIA,UAAU,IAAI,OAAOA,UAAU,KAAK,UAAU,EAAE;MAChDE,OAAO,CAACC,GAAG,CACP,4HACJ,CAAC;MACDD,OAAO,CAACC,GAAG,CAACH,UAAU,CAAC;IAC3B;IACA,oBACIR,KAAA,CAAAY,aAAA,CAACL,IAAI;MACDM,IAAI,EAAE,IAAI,CAACC,EAAG;MACdN,UAAU,EAAE,OAAOA,UAAU,KAAK,UAAU,GAAGA,UAAU,CAAC;QAAEF;MAAU,CAAC,CAAC,GAAG;IAAG,gBAE9EN,KAAA,CAAAY,aAAA,CAACV,iBAAiB;MAACa,KAAK,EAAE;IAAQ,CAAE,CAClC,CAAC;EAEf;AACJ","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","InputElement","GroupAutocomplete","GroupAutocompleteElement","render","props","formProps","Bind","validators","config","console","log","createElement","name","id","label"],"sources":["GroupAutocompleteElement.tsx"],"sourcesContent":["import React from \"react\";\nimport type { FormRenderPropParams } from \"@webiny/form\";\nimport { InputElement } from \"@webiny/app-admin/ui/elements/form/InputElement\";\nimport { GroupAutocomplete } from \"~/components/GroupAutocomplete\";\nimport type { FormFieldElementRenderProps } from \"@webiny/app-admin/ui/elements/form/FormFieldElement\";\n\nexport class GroupAutocompleteElement extends InputElement {\n public override render(props: FormFieldElementRenderProps): React.ReactElement {\n const { formProps } = props;\n const { Bind } = formProps as FormRenderPropParams;\n const validators = this.config.validators;\n /**\n * TODO @ts-refactor @bruno\n * Figure out what can validators be.\n */\n if (validators && typeof validators !== \"function\") {\n console.log(\n \"packages/app-security-access-management/src/ui/elements/GroupAutocompleteElement.tsx validators is set but not a function.\"\n );\n console.log(validators);\n }\n return (\n <Bind\n name={this.id}\n validators={typeof validators === \"function\" ? validators({ formProps }) : []}\n >\n <GroupAutocomplete label={\"Group\"} />\n </Bind>\n );\n }\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,YAAY,QAAQ,iDAAiD;AAC9E,SAASC,iBAAiB;AAG1B,OAAO,MAAMC,wBAAwB,SAASF,YAAY,CAAC;EACvCG,MAAMA,CAACC,KAAkC,EAAsB;IAC3E,MAAM;MAAEC;IAAU,CAAC,GAAGD,KAAK;IAC3B,MAAM;MAAEE;IAAK,CAAC,GAAGD,SAAiC;IAClD,MAAME,UAAU,GAAG,IAAI,CAACC,MAAM,CAACD,UAAU;IACzC;AACR;AACA;AACA;IACQ,IAAIA,UAAU,IAAI,OAAOA,UAAU,KAAK,UAAU,EAAE;MAChDE,OAAO,CAACC,GAAG,CACP,4HACJ,CAAC;MACDD,OAAO,CAACC,GAAG,CAACH,UAAU,CAAC;IAC3B;IACA,oBACIR,KAAA,CAAAY,aAAA,CAACL,IAAI;MACDM,IAAI,EAAE,IAAI,CAACC,EAAG;MACdN,UAAU,EAAE,OAAOA,UAAU,KAAK,UAAU,GAAGA,UAAU,CAAC;QAAEF;MAAU,CAAC,CAAC,GAAG;IAAG,gBAE9EN,KAAA,CAAAY,aAAA,CAACV,iBAAiB;MAACa,KAAK,EAAE;IAAQ,CAAE,CAClC,CAAC;EAEf;AACJ","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { InputElement } from "@webiny/app-admin/ui/elements/form/InputElement";
|
|
3
|
-
import { FormFieldElementRenderProps } from "@webiny/app-admin/ui/elements/form/FormFieldElement";
|
|
3
|
+
import type { FormFieldElementRenderProps } from "@webiny/app-admin/ui/elements/form/FormFieldElement";
|
|
4
4
|
export declare class GroupsAutocompleteElement extends InputElement {
|
|
5
5
|
render(props: FormFieldElementRenderProps): React.ReactElement;
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","InputElement","GroupsMultiAutocomplete","GroupsAutocompleteElement","render","props","formProps","Bind","validators","config","console","log","createElement","name","id","label"],"sources":["GroupsMultiAutocompleteElement.tsx"],"sourcesContent":["import React from \"react\";\nimport { FormRenderPropParams } from \"@webiny/form\";\nimport { InputElement } from \"@webiny/app-admin/ui/elements/form/InputElement\";\nimport { GroupsMultiAutocomplete } from \"~/components/GroupsMultiAutocomplete\";\nimport { FormFieldElementRenderProps } from \"@webiny/app-admin/ui/elements/form/FormFieldElement\";\n\nexport class GroupsAutocompleteElement extends InputElement {\n public override render(props: FormFieldElementRenderProps): React.ReactElement {\n const { formProps } = props;\n const { Bind } = formProps as FormRenderPropParams;\n const validators = this.config.validators;\n /**\n * TODO @ts-refactor @bruno\n * Figure out what can validators be.\n */\n if (validators && typeof validators !== \"function\") {\n console.log(\n \"packages/app-security-access-management/src/ui/elements/GroupsAutocompleteElement.tsx validators is set but not a function.\"\n );\n console.log(validators);\n }\n return (\n <Bind\n name={this.id}\n validators={typeof validators === \"function\" ? validators({ formProps }) : []}\n >\n <GroupsMultiAutocomplete label={\"Groups\"} />\n </Bind>\n );\n }\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,YAAY,QAAQ,iDAAiD;AAC9E,SAASC,uBAAuB;AAGhC,OAAO,MAAMC,yBAAyB,SAASF,YAAY,CAAC;EACxCG,MAAMA,CAACC,KAAkC,EAAsB;IAC3E,MAAM;MAAEC;IAAU,CAAC,GAAGD,KAAK;IAC3B,MAAM;MAAEE;IAAK,CAAC,GAAGD,SAAiC;IAClD,MAAME,UAAU,GAAG,IAAI,CAACC,MAAM,CAACD,UAAU;IACzC;AACR;AACA;AACA;IACQ,IAAIA,UAAU,IAAI,OAAOA,UAAU,KAAK,UAAU,EAAE;MAChDE,OAAO,CAACC,GAAG,CACP,6HACJ,CAAC;MACDD,OAAO,CAACC,GAAG,CAACH,UAAU,CAAC;IAC3B;IACA,oBACIR,KAAA,CAAAY,aAAA,CAACL,IAAI;MACDM,IAAI,EAAE,IAAI,CAACC,EAAG;MACdN,UAAU,EAAE,OAAOA,UAAU,KAAK,UAAU,GAAGA,UAAU,CAAC;QAAEF;MAAU,CAAC,CAAC,GAAG;IAAG,gBAE9EN,KAAA,CAAAY,aAAA,CAACV,uBAAuB;MAACa,KAAK,EAAE;IAAS,CAAE,CACzC,CAAC;EAEf;AACJ","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","InputElement","GroupsMultiAutocomplete","GroupsAutocompleteElement","render","props","formProps","Bind","validators","config","console","log","createElement","name","id","label"],"sources":["GroupsMultiAutocompleteElement.tsx"],"sourcesContent":["import React from \"react\";\nimport type { FormRenderPropParams } from \"@webiny/form\";\nimport { InputElement } from \"@webiny/app-admin/ui/elements/form/InputElement\";\nimport { GroupsMultiAutocomplete } from \"~/components/GroupsMultiAutocomplete\";\nimport type { FormFieldElementRenderProps } from \"@webiny/app-admin/ui/elements/form/FormFieldElement\";\n\nexport class GroupsAutocompleteElement extends InputElement {\n public override render(props: FormFieldElementRenderProps): React.ReactElement {\n const { formProps } = props;\n const { Bind } = formProps as FormRenderPropParams;\n const validators = this.config.validators;\n /**\n * TODO @ts-refactor @bruno\n * Figure out what can validators be.\n */\n if (validators && typeof validators !== \"function\") {\n console.log(\n \"packages/app-security-access-management/src/ui/elements/GroupsAutocompleteElement.tsx validators is set but not a function.\"\n );\n console.log(validators);\n }\n return (\n <Bind\n name={this.id}\n validators={typeof validators === \"function\" ? validators({ formProps }) : []}\n >\n <GroupsMultiAutocomplete label={\"Groups\"} />\n </Bind>\n );\n }\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,YAAY,QAAQ,iDAAiD;AAC9E,SAASC,uBAAuB;AAGhC,OAAO,MAAMC,yBAAyB,SAASF,YAAY,CAAC;EACxCG,MAAMA,CAACC,KAAkC,EAAsB;IAC3E,MAAM;MAAEC;IAAU,CAAC,GAAGD,KAAK;IAC3B,MAAM;MAAEE;IAAK,CAAC,GAAGD,SAAiC;IAClD,MAAME,UAAU,GAAG,IAAI,CAACC,MAAM,CAACD,UAAU;IACzC;AACR;AACA;AACA;IACQ,IAAIA,UAAU,IAAI,OAAOA,UAAU,KAAK,UAAU,EAAE;MAChDE,OAAO,CAACC,GAAG,CACP,6HACJ,CAAC;MACDD,OAAO,CAACC,GAAG,CAACH,UAAU,CAAC;IAC3B;IACA,oBACIR,KAAA,CAAAY,aAAA,CAACL,IAAI;MACDM,IAAI,EAAE,IAAI,CAACC,EAAG;MACdN,UAAU,EAAE,OAAOA,UAAU,KAAK,UAAU,GAAGA,UAAU,CAAC;QAAEF;MAAU,CAAC,CAAC,GAAG;IAAG,gBAE9EN,KAAA,CAAAY,aAAA,CAACV,uBAAuB;MAACa,KAAK,EAAE;IAAS,CAAE,CACzC,CAAC;EAEf;AACJ","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { InputElement } from "@webiny/app-admin/ui/elements/form/InputElement";
|
|
3
|
-
import { FormFieldElementRenderProps } from "@webiny/app-admin/ui/elements/form/FormFieldElement";
|
|
3
|
+
import type { FormFieldElementRenderProps } from "@webiny/app-admin/ui/elements/form/FormFieldElement";
|
|
4
4
|
export declare class TeamAutocompleteElement extends InputElement {
|
|
5
5
|
render(props: FormFieldElementRenderProps): React.ReactElement;
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","InputElement","TeamAutocomplete","TeamAutocompleteElement","render","props","formProps","Bind","validators","config","console","log","createElement","name","id","label"],"sources":["TeamAutocompleteElement.tsx"],"sourcesContent":["import React from \"react\";\nimport { FormRenderPropParams } from \"@webiny/form\";\nimport { InputElement } from \"@webiny/app-admin/ui/elements/form/InputElement\";\nimport { TeamAutocomplete } from \"~/components/TeamAutocomplete\";\nimport { FormFieldElementRenderProps } from \"@webiny/app-admin/ui/elements/form/FormFieldElement\";\n\nexport class TeamAutocompleteElement extends InputElement {\n public override render(props: FormFieldElementRenderProps): React.ReactElement {\n const { formProps } = props;\n const { Bind } = formProps as FormRenderPropParams;\n const validators = this.config.validators;\n /**\n * TODO @ts-refactor @bruno\n * Figure out what can validators be.\n */\n if (validators && typeof validators !== \"function\") {\n console.log(\n \"packages/app-security-access-management/src/ui/elements/TeamAutocompleteElement.tsx validators is set but not a function.\"\n );\n console.log(validators);\n }\n return (\n <Bind\n name={this.id}\n validators={typeof validators === \"function\" ? validators({ formProps }) : []}\n >\n <TeamAutocomplete label={\"Team\"} />\n </Bind>\n );\n }\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,YAAY,QAAQ,iDAAiD;AAC9E,SAASC,gBAAgB;AAGzB,OAAO,MAAMC,uBAAuB,SAASF,YAAY,CAAC;EACtCG,MAAMA,CAACC,KAAkC,EAAsB;IAC3E,MAAM;MAAEC;IAAU,CAAC,GAAGD,KAAK;IAC3B,MAAM;MAAEE;IAAK,CAAC,GAAGD,SAAiC;IAClD,MAAME,UAAU,GAAG,IAAI,CAACC,MAAM,CAACD,UAAU;IACzC;AACR;AACA;AACA;IACQ,IAAIA,UAAU,IAAI,OAAOA,UAAU,KAAK,UAAU,EAAE;MAChDE,OAAO,CAACC,GAAG,CACP,2HACJ,CAAC;MACDD,OAAO,CAACC,GAAG,CAACH,UAAU,CAAC;IAC3B;IACA,oBACIR,KAAA,CAAAY,aAAA,CAACL,IAAI;MACDM,IAAI,EAAE,IAAI,CAACC,EAAG;MACdN,UAAU,EAAE,OAAOA,UAAU,KAAK,UAAU,GAAGA,UAAU,CAAC;QAAEF;MAAU,CAAC,CAAC,GAAG;IAAG,gBAE9EN,KAAA,CAAAY,aAAA,CAACV,gBAAgB;MAACa,KAAK,EAAE;IAAO,CAAE,CAChC,CAAC;EAEf;AACJ","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","InputElement","TeamAutocomplete","TeamAutocompleteElement","render","props","formProps","Bind","validators","config","console","log","createElement","name","id","label"],"sources":["TeamAutocompleteElement.tsx"],"sourcesContent":["import React from \"react\";\nimport type { FormRenderPropParams } from \"@webiny/form\";\nimport { InputElement } from \"@webiny/app-admin/ui/elements/form/InputElement\";\nimport { TeamAutocomplete } from \"~/components/TeamAutocomplete\";\nimport type { FormFieldElementRenderProps } from \"@webiny/app-admin/ui/elements/form/FormFieldElement\";\n\nexport class TeamAutocompleteElement extends InputElement {\n public override render(props: FormFieldElementRenderProps): React.ReactElement {\n const { formProps } = props;\n const { Bind } = formProps as FormRenderPropParams;\n const validators = this.config.validators;\n /**\n * TODO @ts-refactor @bruno\n * Figure out what can validators be.\n */\n if (validators && typeof validators !== \"function\") {\n console.log(\n \"packages/app-security-access-management/src/ui/elements/TeamAutocompleteElement.tsx validators is set but not a function.\"\n );\n console.log(validators);\n }\n return (\n <Bind\n name={this.id}\n validators={typeof validators === \"function\" ? validators({ formProps }) : []}\n >\n <TeamAutocomplete label={\"Team\"} />\n </Bind>\n );\n }\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,YAAY,QAAQ,iDAAiD;AAC9E,SAASC,gBAAgB;AAGzB,OAAO,MAAMC,uBAAuB,SAASF,YAAY,CAAC;EACtCG,MAAMA,CAACC,KAAkC,EAAsB;IAC3E,MAAM;MAAEC;IAAU,CAAC,GAAGD,KAAK;IAC3B,MAAM;MAAEE;IAAK,CAAC,GAAGD,SAAiC;IAClD,MAAME,UAAU,GAAG,IAAI,CAACC,MAAM,CAACD,UAAU;IACzC;AACR;AACA;AACA;IACQ,IAAIA,UAAU,IAAI,OAAOA,UAAU,KAAK,UAAU,EAAE;MAChDE,OAAO,CAACC,GAAG,CACP,2HACJ,CAAC;MACDD,OAAO,CAACC,GAAG,CAACH,UAAU,CAAC;IAC3B;IACA,oBACIR,KAAA,CAAAY,aAAA,CAACL,IAAI;MACDM,IAAI,EAAE,IAAI,CAACC,EAAG;MACdN,UAAU,EAAE,OAAOA,UAAU,KAAK,UAAU,GAAGA,UAAU,CAAC;QAAEF;MAAU,CAAC,CAAC,GAAG;IAAG,gBAE9EN,KAAA,CAAAY,aAAA,CAACV,gBAAgB;MAACa,KAAK,EAAE;IAAO,CAAE,CAChC,CAAC;EAEf;AACJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useMutation","useQuery","get","useRouter","i18n","Form","Permissions","validation","SimpleForm","SimpleFormFooter","SimpleFormContent","SimpleFormHeader","useSnackbar","pickDataForAPI","GQL","isEmpty","EmptyView","ReactComponent","AddIcon","CopyIcon","SettingsIcon","Alert","Button","CopyButton","Grid","IconButton","Input","Label","OverlayLoader","Textarea","Tooltip","t","ns","ApiKeyForm","location","history","showSnackbar","newEntry","URLSearchParams","search","id","getQuery","READ_API_KEY","variables","skip","onCompleted","data","error","security","apiKey","push","message","create","createMutation","CREATE_API_KEY","refetchQueries","query","LIST_API_KEYS","update","updateMutation","UPDATE_API_KEY","loading","find","item","onSubmit","formData","permissions","length","timeout","dismissesOnAction","isUpdate","createdOn","operation","args","response","showEmptyView","createElement","icon","title","action","text","onClick","form","Bind","size","name","Column","span","validators","label","rows","token","className","variant","value","onCopy","rounded","content","trigger","navigator","clipboard","writeText","JSON","stringify","defaultValue","bind","Object","assign","ev","submit"],"sources":["ApiKeyForm.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { useMutation, useQuery } from \"@apollo/react-hooks\";\nimport get from \"lodash/get\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { Form } from \"@webiny/form\";\nimport { Permissions } from \"@webiny/app-admin/components/Permissions\";\nimport { validation } from \"@webiny/validation\";\nimport {\n SimpleForm,\n SimpleFormFooter,\n SimpleFormContent,\n SimpleFormHeader\n} from \"@webiny/app-admin/components/SimpleForm\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { pickDataForAPI } from \"./utils\";\nimport * as GQL from \"./graphql\";\nimport isEmpty from \"lodash/isEmpty\";\nimport EmptyView from \"@webiny/app-admin/components/EmptyView\";\nimport { ReactComponent as AddIcon } from \"@webiny/icons/add.svg\";\nimport { ReactComponent as CopyIcon } from \"@webiny/icons/content_copy.svg\";\nimport { ReactComponent as SettingsIcon } from \"@webiny/icons/settings.svg\";\nimport { ApiKey } from \"~/types\";\nimport {\n Alert,\n Button,\n CopyButton,\n Grid,\n IconButton,\n Input,\n Label,\n OverlayLoader,\n Textarea,\n Tooltip\n} from \"@webiny/admin-ui\";\n\nconst t = i18n.ns(\"app-security-admin-users/admin/api-keys/form\");\n\nexport interface ApiKeyFormProps {\n // TODO @ts-refactor delete and go up the tree and sort it out\n [key: string]: any;\n}\n\nexport const ApiKeyForm = () => {\n const { location, history } = useRouter();\n const { showSnackbar } = useSnackbar();\n const newEntry = new URLSearchParams(location.search).get(\"new\") === \"true\";\n const id = new URLSearchParams(location.search).get(\"id\");\n\n const getQuery = useQuery(GQL.READ_API_KEY, {\n variables: { id },\n skip: !id,\n onCompleted: data => {\n if (!data) {\n return;\n }\n\n const { error } = data.security.apiKey;\n if (error) {\n history.push(\"/access-management/api-keys\");\n showSnackbar(error.message);\n }\n }\n });\n\n const [create, createMutation] = useMutation(GQL.CREATE_API_KEY, {\n refetchQueries: [{ query: GQL.LIST_API_KEYS }]\n });\n\n const [update, updateMutation] = useMutation(GQL.UPDATE_API_KEY, {\n refetchQueries: [{ query: GQL.LIST_API_KEYS }]\n });\n\n const loading = [getQuery, createMutation, updateMutation].find(item => item.loading);\n\n const onSubmit = useCallback(\n async (formData: ApiKey) => {\n if (!formData.permissions || !formData.permissions.length) {\n showSnackbar(t`You must configure permissions before saving!`, {\n timeout: 60000,\n dismissesOnAction: true\n });\n return;\n }\n\n const isUpdate = formData.createdOn;\n const [operation, args] = isUpdate\n ? [update, { variables: { id: formData.id, data: pickDataForAPI(formData) } }]\n : [create, { variables: { data: pickDataForAPI(formData) } }];\n\n const response = await operation(args);\n\n const { error } = response.data.security.apiKey;\n if (error) {\n return showSnackbar(error.message);\n }\n\n const { id } = response.data.security.apiKey.data;\n\n !isUpdate && history.push(`/access-management/api-keys?id=${id}`);\n showSnackbar(t`API key saved successfully.`);\n },\n [id]\n );\n\n const data: ApiKey = get(getQuery, \"data.security.apiKey.data\", {});\n\n const showEmptyView = !newEntry && !loading && isEmpty(data);\n // Render \"No content\" selected view.\n if (showEmptyView) {\n return (\n <EmptyView\n icon={<SettingsIcon />}\n title={t`Click on the left side list to display API key details or create a...`}\n action={\n <Button\n icon={<AddIcon />}\n text={t`New API Key`}\n data-testid=\"new-record-button\"\n onClick={() => history.push(\"/access-management/api-keys?new=true\")}\n />\n }\n />\n );\n }\n\n return (\n <Form data={data} onSubmit={onSubmit}>\n {({ data, form, Bind }) => {\n return (\n <SimpleForm size={\"lg\"}>\n {loading && <OverlayLoader />}\n <SimpleFormHeader title={data.name ? data.name : \"Untitled\"} />\n <SimpleFormContent>\n <Grid>\n <Grid.Column span={12}>\n <Bind name=\"name\" validators={validation.create(\"required\")}>\n <Input\n size={\"lg\"}\n label={t`Name`}\n data-testid=\"sam.key.new.form.name\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name=\"description\"\n validators={validation.create(\"required\")}\n >\n <Textarea\n size={\"lg\"}\n label={t`Description`}\n rows={4}\n data-testid=\"sam.key.new.form.description\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <div>\n <Label text={t`Token`} />\n {data.token ? (\n <div\n className={\n \"wby-py-sm wby-pl-sm-extra wby-pr-xs wby-rounded-md wby-mt-xs wby-bg-neutral-disabled wby-flex wby-justify-between wby-items-center\"\n }\n >\n <div>{data.token}</div>\n <CopyButton\n variant={\"ghost\"}\n value={data.token}\n onCopy={() =>\n showSnackbar(\"Successfully copied!\")\n }\n />\n </div>\n ) : (\n <Alert className={\"wby-mt-xs\"}>\n {\n \"Your token will be shown once you submit the form.\"\n }\n </Alert>\n )}\n </div>\n </Grid.Column>\n </Grid>\n </SimpleFormContent>\n <SimpleFormHeader title={\"Permissions\"} rounded={false}>\n <div className={\"wby-flex wby-justify-end\"}>\n <Tooltip\n content=\"Copy permissions as JSON\"\n trigger={\n <IconButton\n variant={\"ghost\"}\n icon={<CopyIcon />}\n onClick={() => {\n navigator.clipboard.writeText(\n JSON.stringify(data.permissions, null, 2)\n );\n showSnackbar(\"JSON data copied to clipboard.\");\n }}\n />\n }\n />\n </div>\n </SimpleFormHeader>\n <SimpleFormContent>\n <Grid>\n <Grid.Column span={12}>\n <Bind name={\"permissions\"} defaultValue={[]}>\n {bind => <Permissions id={data.id || \"new\"} {...bind} />}\n </Bind>\n </Grid.Column>\n </Grid>\n </SimpleFormContent>\n <SimpleFormFooter>\n <Button\n variant={\"secondary\"}\n text={t`Cancel`}\n onClick={() => history.push(\"/access-management/api-keys\")}\n data-testid=\"sam.key.new.form.button.cancel\"\n />\n <Button\n text={t`Save`}\n data-testid=\"sam.key.new.form.button.save\"\n onClick={ev => {\n form.submit(ev);\n }}\n />\n </SimpleFormFooter>\n </SimpleForm>\n );\n }}\n </Form>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useCallback","useMutation","useQuery","get","useRouter","i18n","Form","Permissions","validation","SimpleForm","SimpleFormFooter","SimpleFormContent","SimpleFormHeader","useSnackbar","pickDataForAPI","GQL","isEmpty","EmptyView","ReactComponent","AddIcon","CopyIcon","SettingsIcon","Alert","Button","CopyButton","Grid","IconButton","Input","Label","OverlayLoader","Textarea","Tooltip","t","ns","ApiKeyForm","location","history","showSnackbar","newEntry","URLSearchParams","search","id","getQuery","READ_API_KEY","variables","skip","onCompleted","data","error","security","apiKey","push","message","create","createMutation","CREATE_API_KEY","refetchQueries","query","LIST_API_KEYS","update","updateMutation","UPDATE_API_KEY","loading","find","item","onSubmit","formData","permissions","length","timeout","dismissesOnAction","isUpdate","createdOn","operation","args","response","showEmptyView","createElement","icon","title","action","text","onClick","form","Bind","size","name","Column","span","validators","label","rows","token","className","variant","value","onCopy","rounded","content","trigger","navigator","clipboard","writeText","JSON","stringify","defaultValue","bind","Object","assign","ev","submit"],"sources":["ApiKeyForm.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { useMutation, useQuery } from \"@apollo/react-hooks\";\nimport get from \"lodash/get\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { Form } from \"@webiny/form\";\nimport { Permissions } from \"@webiny/app-admin/components/Permissions\";\nimport { validation } from \"@webiny/validation\";\nimport {\n SimpleForm,\n SimpleFormFooter,\n SimpleFormContent,\n SimpleFormHeader\n} from \"@webiny/app-admin/components/SimpleForm\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { pickDataForAPI } from \"./utils\";\nimport * as GQL from \"./graphql\";\nimport isEmpty from \"lodash/isEmpty\";\nimport EmptyView from \"@webiny/app-admin/components/EmptyView\";\nimport { ReactComponent as AddIcon } from \"@webiny/icons/add.svg\";\nimport { ReactComponent as CopyIcon } from \"@webiny/icons/content_copy.svg\";\nimport { ReactComponent as SettingsIcon } from \"@webiny/icons/settings.svg\";\nimport type { ApiKey } from \"~/types\";\nimport {\n Alert,\n Button,\n CopyButton,\n Grid,\n IconButton,\n Input,\n Label,\n OverlayLoader,\n Textarea,\n Tooltip\n} from \"@webiny/admin-ui\";\n\nconst t = i18n.ns(\"app-security-admin-users/admin/api-keys/form\");\n\nexport interface ApiKeyFormProps {\n // TODO @ts-refactor delete and go up the tree and sort it out\n [key: string]: any;\n}\n\nexport const ApiKeyForm = () => {\n const { location, history } = useRouter();\n const { showSnackbar } = useSnackbar();\n const newEntry = new URLSearchParams(location.search).get(\"new\") === \"true\";\n const id = new URLSearchParams(location.search).get(\"id\");\n\n const getQuery = useQuery(GQL.READ_API_KEY, {\n variables: { id },\n skip: !id,\n onCompleted: data => {\n if (!data) {\n return;\n }\n\n const { error } = data.security.apiKey;\n if (error) {\n history.push(\"/access-management/api-keys\");\n showSnackbar(error.message);\n }\n }\n });\n\n const [create, createMutation] = useMutation(GQL.CREATE_API_KEY, {\n refetchQueries: [{ query: GQL.LIST_API_KEYS }]\n });\n\n const [update, updateMutation] = useMutation(GQL.UPDATE_API_KEY, {\n refetchQueries: [{ query: GQL.LIST_API_KEYS }]\n });\n\n const loading = [getQuery, createMutation, updateMutation].find(item => item.loading);\n\n const onSubmit = useCallback(\n async (formData: ApiKey) => {\n if (!formData.permissions || !formData.permissions.length) {\n showSnackbar(t`You must configure permissions before saving!`, {\n timeout: 60000,\n dismissesOnAction: true\n });\n return;\n }\n\n const isUpdate = formData.createdOn;\n const [operation, args] = isUpdate\n ? [update, { variables: { id: formData.id, data: pickDataForAPI(formData) } }]\n : [create, { variables: { data: pickDataForAPI(formData) } }];\n\n const response = await operation(args);\n\n const { error } = response.data.security.apiKey;\n if (error) {\n return showSnackbar(error.message);\n }\n\n const { id } = response.data.security.apiKey.data;\n\n !isUpdate && history.push(`/access-management/api-keys?id=${id}`);\n showSnackbar(t`API key saved successfully.`);\n },\n [id]\n );\n\n const data: ApiKey = get(getQuery, \"data.security.apiKey.data\", {});\n\n const showEmptyView = !newEntry && !loading && isEmpty(data);\n // Render \"No content\" selected view.\n if (showEmptyView) {\n return (\n <EmptyView\n icon={<SettingsIcon />}\n title={t`Click on the left side list to display API key details or create a...`}\n action={\n <Button\n icon={<AddIcon />}\n text={t`New API Key`}\n data-testid=\"new-record-button\"\n onClick={() => history.push(\"/access-management/api-keys?new=true\")}\n />\n }\n />\n );\n }\n\n return (\n <Form data={data} onSubmit={onSubmit}>\n {({ data, form, Bind }) => {\n return (\n <SimpleForm size={\"lg\"}>\n {loading && <OverlayLoader />}\n <SimpleFormHeader title={data.name ? data.name : \"Untitled\"} />\n <SimpleFormContent>\n <Grid>\n <Grid.Column span={12}>\n <Bind name=\"name\" validators={validation.create(\"required\")}>\n <Input\n size={\"lg\"}\n label={t`Name`}\n data-testid=\"sam.key.new.form.name\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name=\"description\"\n validators={validation.create(\"required\")}\n >\n <Textarea\n size={\"lg\"}\n label={t`Description`}\n rows={4}\n data-testid=\"sam.key.new.form.description\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <div>\n <Label text={t`Token`} />\n {data.token ? (\n <div\n className={\n \"wby-py-sm wby-pl-sm-extra wby-pr-xs wby-rounded-md wby-mt-xs wby-bg-neutral-disabled wby-flex wby-justify-between wby-items-center\"\n }\n >\n <div>{data.token}</div>\n <CopyButton\n variant={\"ghost\"}\n value={data.token}\n onCopy={() =>\n showSnackbar(\"Successfully copied!\")\n }\n />\n </div>\n ) : (\n <Alert className={\"wby-mt-xs\"}>\n {\n \"Your token will be shown once you submit the form.\"\n }\n </Alert>\n )}\n </div>\n </Grid.Column>\n </Grid>\n </SimpleFormContent>\n <SimpleFormHeader title={\"Permissions\"} rounded={false}>\n <div className={\"wby-flex wby-justify-end\"}>\n <Tooltip\n content=\"Copy permissions as JSON\"\n trigger={\n <IconButton\n variant={\"ghost\"}\n icon={<CopyIcon />}\n onClick={() => {\n navigator.clipboard.writeText(\n JSON.stringify(data.permissions, null, 2)\n );\n showSnackbar(\"JSON data copied to clipboard.\");\n }}\n />\n }\n />\n </div>\n </SimpleFormHeader>\n <SimpleFormContent>\n <Grid>\n <Grid.Column span={12}>\n <Bind name={\"permissions\"} defaultValue={[]}>\n {bind => <Permissions id={data.id || \"new\"} {...bind} />}\n </Bind>\n </Grid.Column>\n </Grid>\n </SimpleFormContent>\n <SimpleFormFooter>\n <Button\n variant={\"secondary\"}\n text={t`Cancel`}\n onClick={() => history.push(\"/access-management/api-keys\")}\n data-testid=\"sam.key.new.form.button.cancel\"\n />\n <Button\n text={t`Save`}\n data-testid=\"sam.key.new.form.button.save\"\n onClick={ev => {\n form.submit(ev);\n }}\n />\n </SimpleFormFooter>\n </SimpleForm>\n );\n }}\n </Form>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import { ApiKeysDataListProps } from "./ApiKeysDataList";
|
|
3
|
-
import { ApiKeyFormProps } from "./ApiKeyForm";
|
|
2
|
+
import type { ApiKeysDataListProps } from "./ApiKeysDataList";
|
|
3
|
+
import type { ApiKeyFormProps } from "./ApiKeyForm";
|
|
4
4
|
export interface ApiKeysProps {
|
|
5
5
|
listProps?: ApiKeysDataListProps;
|
|
6
6
|
formProps?: ApiKeyFormProps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","SplitView","LeftPanel","RightPanel","ApiKeysDataList","ApiKeyForm","ApiKeys","formProps","listProps","createElement"],"sources":["ApiKeys.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { SplitView, LeftPanel, RightPanel } from \"@webiny/app-admin/components/SplitView\";\nimport { ApiKeysDataList
|
|
1
|
+
{"version":3,"names":["React","SplitView","LeftPanel","RightPanel","ApiKeysDataList","ApiKeyForm","ApiKeys","formProps","listProps","createElement"],"sources":["ApiKeys.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { SplitView, LeftPanel, RightPanel } from \"@webiny/app-admin/components/SplitView\";\nimport type { ApiKeysDataListProps } from \"./ApiKeysDataList\";\nimport { ApiKeysDataList } from \"./ApiKeysDataList\";\nimport type { ApiKeyFormProps } from \"./ApiKeyForm\";\nimport { ApiKeyForm } from \"./ApiKeyForm\";\n\nexport interface ApiKeysProps {\n listProps?: ApiKeysDataListProps;\n formProps?: ApiKeyFormProps;\n}\nexport const ApiKeys = ({ formProps = {}, listProps = {} }: ApiKeysProps) => {\n return (\n <SplitView>\n <LeftPanel>\n <ApiKeysDataList {...listProps} />\n </LeftPanel>\n <RightPanel>\n <ApiKeyForm {...formProps} />\n </RightPanel>\n </SplitView>\n );\n};\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,SAAS,EAAEC,SAAS,EAAEC,UAAU,QAAQ,wCAAwC;AAEzF,SAASC,eAAe;AAExB,SAASC,UAAU;AAMnB,OAAO,MAAMC,OAAO,GAAGA,CAAC;EAAEC,SAAS,GAAG,CAAC,CAAC;EAAEC,SAAS,GAAG,CAAC;AAAgB,CAAC,KAAK;EACzE,oBACIR,KAAA,CAAAS,aAAA,CAACR,SAAS,qBACND,KAAA,CAAAS,aAAA,CAACP,SAAS,qBACNF,KAAA,CAAAS,aAAA,CAACL,eAAe,EAAKI,SAAY,CAC1B,CAAC,eACZR,KAAA,CAAAS,aAAA,CAACN,UAAU,qBACPH,KAAA,CAAAS,aAAA,CAACJ,UAAU,EAAKE,SAAY,CACpB,CACL,CAAC;AAEpB,CAAC","ignoreList":[]}
|