@webiny/tenant-manager 0.0.0-unstable.df7a8bb475 → 6.0.0-rc.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/admin/Extension.js +3 -3
- package/admin/Extension.js.map +1 -1
- package/admin/SecurityPermission.d.ts +2 -0
- package/admin/SecurityPermission.js +22 -0
- package/admin/SecurityPermission.js.map +1 -0
- package/api/domain/TenantModel.js +2 -2
- package/api/domain/TenantModel.js.map +1 -1
- package/package.json +15 -17
- package/admin/Permissions/LegacyPermissionRenderer.d.ts +0 -1
- package/admin/Permissions/LegacyPermissionRenderer.js +0 -29
- package/admin/Permissions/LegacyPermissionRenderer.js.map +0 -1
- package/admin/Permissions/TenantManagerPermissions.d.ts +0 -11
- package/admin/Permissions/TenantManagerPermissions.js +0 -75
- package/admin/Permissions/TenantManagerPermissions.js.map +0 -1
package/admin/Extension.js
CHANGED
|
@@ -10,8 +10,8 @@ import { DisableTenantFeature } from "./DisableTenant/index.js";
|
|
|
10
10
|
import { EnableTenantFeature } from "./EnableTenant/index.js";
|
|
11
11
|
import { TenantSelector } from "./TenantSelector.js";
|
|
12
12
|
import { IsRootTenant } from "./IsRootTenant.js";
|
|
13
|
-
import { LegacyPermissionRenderer } from "./Permissions/LegacyPermissionRenderer.js";
|
|
14
13
|
import { TENANT_MODEL_ID } from "../shared/constants.js";
|
|
14
|
+
import { SecurityPermission } from "./SecurityPermission.js";
|
|
15
15
|
const {
|
|
16
16
|
Menu
|
|
17
17
|
} = AdminConfig;
|
|
@@ -28,11 +28,11 @@ export const Extension = () => {
|
|
|
28
28
|
});
|
|
29
29
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(RegisterFeature, {
|
|
30
30
|
feature: CurrentTenantFeature
|
|
31
|
-
}), /*#__PURE__*/React.createElement(RegisterFeature, {
|
|
31
|
+
}), /*#__PURE__*/React.createElement(CurrentTenantProvider, null), /*#__PURE__*/React.createElement(TenantSelector, null), /*#__PURE__*/React.createElement(TenantEntryList, null), /*#__PURE__*/React.createElement(SecurityPermission, null), /*#__PURE__*/React.createElement(AdminConfig, null, /*#__PURE__*/React.createElement(IsRootTenant, null, /*#__PURE__*/React.createElement(RegisterFeature, {
|
|
32
32
|
feature: DisableTenantFeature
|
|
33
33
|
}), /*#__PURE__*/React.createElement(RegisterFeature, {
|
|
34
34
|
feature: EnableTenantFeature
|
|
35
|
-
}), /*#__PURE__*/React.createElement(
|
|
35
|
+
}), /*#__PURE__*/React.createElement(HasPermission, {
|
|
36
36
|
name: "tm.tenant"
|
|
37
37
|
}, /*#__PURE__*/React.createElement(Menu, {
|
|
38
38
|
name: "tenantManager",
|
package/admin/Extension.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","AdminConfig","HasPermission","RegisterFeature","useRouter","Routes","ReactComponent","TenantIcon","TenantEntryList","CurrentTenantProvider","CurrentTenantFeature","DisableTenantFeature","EnableTenantFeature","TenantSelector","IsRootTenant","
|
|
1
|
+
{"version":3,"names":["React","AdminConfig","HasPermission","RegisterFeature","useRouter","Routes","ReactComponent","TenantIcon","TenantEntryList","CurrentTenantProvider","CurrentTenantFeature","DisableTenantFeature","EnableTenantFeature","TenantSelector","IsRootTenant","TENANT_MODEL_ID","SecurityPermission","Menu","Extension","getLink","link","ContentEntries","List","modelId","icon","createElement","Link","Icon","element","label","Fragment","feature","name","text","to"],"sources":["Extension.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig, HasPermission, RegisterFeature } from \"@webiny/app-admin\";\nimport { useRouter } from \"@webiny/app-admin\";\nimport { Routes } from \"@webiny/app-headless-cms\";\nimport { ReactComponent as TenantIcon } from \"@webiny/icons/business.svg\";\n\nimport { TenantEntryList } from \"./TenantEntryList.js\";\nimport { CurrentTenantProvider } from \"./CurrentTenantProvider.js\";\nimport { CurrentTenantFeature } from \"./CurrentTenant/feature.js\";\nimport { DisableTenantFeature } from \"./DisableTenant/index.js\";\nimport { EnableTenantFeature } from \"./EnableTenant/index.js\";\nimport { TenantSelector } from \"./TenantSelector.js\";\nimport { IsRootTenant } from \"./IsRootTenant.js\";\nimport { TENANT_MODEL_ID } from \"~/shared/constants.js\";\nimport { SecurityPermission } from \"./SecurityPermission.js\";\n\nconst { Menu } = AdminConfig;\n\nexport const Extension = () => {\n const { getLink } = useRouter();\n\n const link = getLink(Routes.ContentEntries.List, { modelId: TENANT_MODEL_ID });\n\n const icon = <Menu.Link.Icon element={<TenantIcon />} label={\"Tenant\"} />;\n\n return (\n <>\n <RegisterFeature feature={CurrentTenantFeature} />\n <CurrentTenantProvider />\n <TenantSelector />\n <TenantEntryList />\n <SecurityPermission />\n <AdminConfig>\n <IsRootTenant>\n <RegisterFeature feature={DisableTenantFeature} />\n <RegisterFeature feature={EnableTenantFeature} />\n <HasPermission name={\"tm.tenant\"}>\n <Menu\n name=\"tenantManager\"\n element={<Menu.Link text=\"Tenant Manager\" icon={icon} to={link} />}\n />\n </HasPermission>\n </IsRootTenant>\n </AdminConfig>\n </>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,EAAEC,aAAa,EAAEC,eAAe,QAAQ,mBAAmB;AAC/E,SAASC,SAAS,QAAQ,mBAAmB;AAC7C,SAASC,MAAM,QAAQ,0BAA0B;AACjD,SAASC,cAAc,IAAIC,UAAU,QAAQ,4BAA4B;AAEzE,SAASC,eAAe;AACxB,SAASC,qBAAqB;AAC9B,SAASC,oBAAoB;AAC7B,SAASC,oBAAoB;AAC7B,SAASC,mBAAmB;AAC5B,SAASC,cAAc;AACvB,SAASC,YAAY;AACrB,SAASC,eAAe;AACxB,SAASC,kBAAkB;AAE3B,MAAM;EAAEC;AAAK,CAAC,GAAGhB,WAAW;AAE5B,OAAO,MAAMiB,SAAS,GAAGA,CAAA,KAAM;EAC3B,MAAM;IAAEC;EAAQ,CAAC,GAAGf,SAAS,CAAC,CAAC;EAE/B,MAAMgB,IAAI,GAAGD,OAAO,CAACd,MAAM,CAACgB,cAAc,CAACC,IAAI,EAAE;IAAEC,OAAO,EAAER;EAAgB,CAAC,CAAC;EAE9E,MAAMS,IAAI,gBAAGxB,KAAA,CAAAyB,aAAA,CAACR,IAAI,CAACS,IAAI,CAACC,IAAI;IAACC,OAAO,eAAE5B,KAAA,CAAAyB,aAAA,CAAClB,UAAU,MAAE,CAAE;IAACsB,KAAK,EAAE;EAAS,CAAE,CAAC;EAEzE,oBACI7B,KAAA,CAAAyB,aAAA,CAAAzB,KAAA,CAAA8B,QAAA,qBACI9B,KAAA,CAAAyB,aAAA,CAACtB,eAAe;IAAC4B,OAAO,EAAErB;EAAqB,CAAE,CAAC,eAClDV,KAAA,CAAAyB,aAAA,CAAChB,qBAAqB,MAAE,CAAC,eACzBT,KAAA,CAAAyB,aAAA,CAACZ,cAAc,MAAE,CAAC,eAClBb,KAAA,CAAAyB,aAAA,CAACjB,eAAe,MAAE,CAAC,eACnBR,KAAA,CAAAyB,aAAA,CAACT,kBAAkB,MAAE,CAAC,eACtBhB,KAAA,CAAAyB,aAAA,CAACxB,WAAW,qBACRD,KAAA,CAAAyB,aAAA,CAACX,YAAY,qBACTd,KAAA,CAAAyB,aAAA,CAACtB,eAAe;IAAC4B,OAAO,EAAEpB;EAAqB,CAAE,CAAC,eAClDX,KAAA,CAAAyB,aAAA,CAACtB,eAAe;IAAC4B,OAAO,EAAEnB;EAAoB,CAAE,CAAC,eACjDZ,KAAA,CAAAyB,aAAA,CAACvB,aAAa;IAAC8B,IAAI,EAAE;EAAY,gBAC7BhC,KAAA,CAAAyB,aAAA,CAACR,IAAI;IACDe,IAAI,EAAC,eAAe;IACpBJ,OAAO,eAAE5B,KAAA,CAAAyB,aAAA,CAACR,IAAI,CAACS,IAAI;MAACO,IAAI,EAAC,gBAAgB;MAACT,IAAI,EAAEA,IAAK;MAACU,EAAE,EAAEd;IAAK,CAAE;EAAE,CACtE,CACU,CACL,CACL,CACf,CAAC;AAEX,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { AdminConfig } from "@webiny/app-admin";
|
|
3
|
+
import { ReactComponent as PermissionsIcon } from "@webiny/icons/business.svg";
|
|
4
|
+
const {
|
|
5
|
+
Security
|
|
6
|
+
} = AdminConfig;
|
|
7
|
+
export const SecurityPermission = () => {
|
|
8
|
+
return /*#__PURE__*/React.createElement(AdminConfig, null, /*#__PURE__*/React.createElement(Security.Permissions, {
|
|
9
|
+
name: "tenant-manager",
|
|
10
|
+
title: "Tenant Manager",
|
|
11
|
+
description: "Manage Tenant Manager permissions.",
|
|
12
|
+
icon: /*#__PURE__*/React.createElement(PermissionsIcon, null),
|
|
13
|
+
schema: {
|
|
14
|
+
prefix: "tm",
|
|
15
|
+
fullAccess: {
|
|
16
|
+
name: "tm.*"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}));
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=SecurityPermission.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","AdminConfig","ReactComponent","PermissionsIcon","Security","SecurityPermission","createElement","Permissions","name","title","description","icon","schema","prefix","fullAccess"],"sources":["SecurityPermission.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig } from \"@webiny/app-admin\";\nimport { ReactComponent as PermissionsIcon } from \"@webiny/icons/business.svg\";\n\nconst { Security } = AdminConfig;\n\nexport const SecurityPermission = () => {\n return (\n <AdminConfig>\n <Security.Permissions\n name=\"tenant-manager\"\n title=\"Tenant Manager\"\n description=\"Manage Tenant Manager permissions.\"\n icon={<PermissionsIcon />}\n schema={{\n prefix: \"tm\",\n fullAccess: { name: \"tm.*\" }\n }}\n />\n </AdminConfig>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,cAAc,IAAIC,eAAe,QAAQ,4BAA4B;AAE9E,MAAM;EAAEC;AAAS,CAAC,GAAGH,WAAW;AAEhC,OAAO,MAAMI,kBAAkB,GAAGA,CAAA,KAAM;EACpC,oBACIL,KAAA,CAAAM,aAAA,CAACL,WAAW,qBACRD,KAAA,CAAAM,aAAA,CAACF,QAAQ,CAACG,WAAW;IACjBC,IAAI,EAAC,gBAAgB;IACrBC,KAAK,EAAC,gBAAgB;IACtBC,WAAW,EAAC,oCAAoC;IAChDC,IAAI,eAAEX,KAAA,CAAAM,aAAA,CAACH,eAAe,MAAE,CAAE;IAC1BS,MAAM,EAAE;MACJC,MAAM,EAAE,IAAI;MACZC,UAAU,EAAE;QAAEN,IAAI,EAAE;MAAO;IAC/B;EAAE,CACL,CACQ,CAAC;AAEtB,CAAC","ignoreList":[]}
|
|
@@ -12,8 +12,8 @@ class TenantModelFactory {
|
|
|
12
12
|
group: "hidden"
|
|
13
13
|
}).description("Manage system tenants.").titleFieldId("name").icon("fas/building").singularApiName("Tenant").pluralApiName("Tenants").tags(["$publishing:false"]);
|
|
14
14
|
model.fields(fields => ({
|
|
15
|
-
name: fields.text().label("Name").description("Enter a tenant name").required().renderer("
|
|
16
|
-
description: fields.longText().label("Description").description("Enter a short tenant description").renderer("
|
|
15
|
+
name: fields.text().label("Name").description("Enter a tenant name").required().renderer("textInput"),
|
|
16
|
+
description: fields.longText().label("Description").description("Enter a short tenant description").renderer("textarea").required(),
|
|
17
17
|
status: fields.text().label("Status").defaultValue("disabled").renderer("hidden").predefinedValues([{
|
|
18
18
|
value: "enabled",
|
|
19
19
|
label: "Enabled"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ModelFactory","TenantModelExtension","TENANT_MODEL_ID","TenantModelFactory","constructor","extensions","execute","builder","model","public","modelId","name","group","description","titleFieldId","icon","singularApiName","pluralApiName","tags","fields","text","label","required","renderer","longText","status","defaultValue","predefinedValues","value","isInstalled","boolean","object","layout","modifier","extend","createImplementation","implementation","dependencies","multiple"],"sources":["TenantModel.ts"],"sourcesContent":["import { ModelFactory } from \"@webiny/api-headless-cms/features/modelBuilder/index.js\";\nimport { TenantModelExtension } from \"./TenantModelExtension.js\";\nimport { TENANT_MODEL_ID } from \"~/shared/constants.js\";\n\nclass TenantModelFactory implements ModelFactory.Interface {\n constructor(private extensions: TenantModelExtension.Interface[]) {}\n\n async execute(builder: ModelFactory.Builder) {\n const model = builder\n .public({\n modelId: TENANT_MODEL_ID,\n name: \"Tenant\",\n group: \"hidden\"\n })\n .description(\"Manage system tenants.\")\n .titleFieldId(\"name\")\n .icon(\"fas/building\")\n .singularApiName(\"Tenant\")\n .pluralApiName(\"Tenants\")\n .tags([\"$publishing:false\"]);\n\n model\n .fields(fields => ({\n name: fields\n .text()\n .label(\"Name\")\n .description(\"Enter a tenant name\")\n .required()\n .renderer(\"
|
|
1
|
+
{"version":3,"names":["ModelFactory","TenantModelExtension","TENANT_MODEL_ID","TenantModelFactory","constructor","extensions","execute","builder","model","public","modelId","name","group","description","titleFieldId","icon","singularApiName","pluralApiName","tags","fields","text","label","required","renderer","longText","status","defaultValue","predefinedValues","value","isInstalled","boolean","object","layout","modifier","extend","createImplementation","implementation","dependencies","multiple"],"sources":["TenantModel.ts"],"sourcesContent":["import { ModelFactory } from \"@webiny/api-headless-cms/features/modelBuilder/index.js\";\nimport { TenantModelExtension } from \"./TenantModelExtension.js\";\nimport { TENANT_MODEL_ID } from \"~/shared/constants.js\";\n\nclass TenantModelFactory implements ModelFactory.Interface {\n constructor(private extensions: TenantModelExtension.Interface[]) {}\n\n async execute(builder: ModelFactory.Builder) {\n const model = builder\n .public({\n modelId: TENANT_MODEL_ID,\n name: \"Tenant\",\n group: \"hidden\"\n })\n .description(\"Manage system tenants.\")\n .titleFieldId(\"name\")\n .icon(\"fas/building\")\n .singularApiName(\"Tenant\")\n .pluralApiName(\"Tenants\")\n .tags([\"$publishing:false\"]);\n\n model\n .fields(fields => ({\n name: fields\n .text()\n .label(\"Name\")\n .description(\"Enter a tenant name\")\n .required()\n .renderer(\"textInput\"),\n description: fields\n .longText()\n .label(\"Description\")\n .description(\"Enter a short tenant description\")\n .renderer(\"textarea\")\n .required(),\n status: fields\n .text()\n .label(\"Status\")\n .defaultValue(\"disabled\")\n .renderer(\"hidden\")\n .predefinedValues([\n {\n value: \"enabled\",\n label: \"Enabled\"\n },\n {\n value: \"disabled\",\n label: \"Disabled\"\n }\n ]),\n isInstalled: fields\n .boolean()\n .label(\"Is installed?\")\n .renderer(\"hidden\")\n .defaultValue(false),\n extensions: fields.object().renderer(\"passthrough\")\n }))\n .layout([[\"name\"], [\"description\"], [\"extensions\"]]);\n\n for (const modifier of this.extensions) {\n model.fields(fields => {\n const extensions = fields.extend().object();\n modifier.execute(extensions);\n\n return { extensions };\n });\n }\n\n return [model];\n }\n}\n\nexport default ModelFactory.createImplementation({\n implementation: TenantModelFactory,\n dependencies: [[TenantModelExtension, { multiple: true }]]\n});\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,yDAAyD;AACtF,SAASC,oBAAoB;AAC7B,SAASC,eAAe;AAExB,MAAMC,kBAAkB,CAAmC;EACvDC,WAAWA,CAASC,UAA4C,EAAE;IAAA,KAA9CA,UAA4C,GAA5CA,UAA4C;EAAG;EAEnE,MAAMC,OAAOA,CAACC,OAA6B,EAAE;IACzC,MAAMC,KAAK,GAAGD,OAAO,CAChBE,MAAM,CAAC;MACJC,OAAO,EAAER,eAAe;MACxBS,IAAI,EAAE,QAAQ;MACdC,KAAK,EAAE;IACX,CAAC,CAAC,CACDC,WAAW,CAAC,wBAAwB,CAAC,CACrCC,YAAY,CAAC,MAAM,CAAC,CACpBC,IAAI,CAAC,cAAc,CAAC,CACpBC,eAAe,CAAC,QAAQ,CAAC,CACzBC,aAAa,CAAC,SAAS,CAAC,CACxBC,IAAI,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAEhCV,KAAK,CACAW,MAAM,CAACA,MAAM,KAAK;MACfR,IAAI,EAAEQ,MAAM,CACPC,IAAI,CAAC,CAAC,CACNC,KAAK,CAAC,MAAM,CAAC,CACbR,WAAW,CAAC,qBAAqB,CAAC,CAClCS,QAAQ,CAAC,CAAC,CACVC,QAAQ,CAAC,WAAW,CAAC;MAC1BV,WAAW,EAAEM,MAAM,CACdK,QAAQ,CAAC,CAAC,CACVH,KAAK,CAAC,aAAa,CAAC,CACpBR,WAAW,CAAC,kCAAkC,CAAC,CAC/CU,QAAQ,CAAC,UAAU,CAAC,CACpBD,QAAQ,CAAC,CAAC;MACfG,MAAM,EAAEN,MAAM,CACTC,IAAI,CAAC,CAAC,CACNC,KAAK,CAAC,QAAQ,CAAC,CACfK,YAAY,CAAC,UAAU,CAAC,CACxBH,QAAQ,CAAC,QAAQ,CAAC,CAClBI,gBAAgB,CAAC,CACd;QACIC,KAAK,EAAE,SAAS;QAChBP,KAAK,EAAE;MACX,CAAC,EACD;QACIO,KAAK,EAAE,UAAU;QACjBP,KAAK,EAAE;MACX,CAAC,CACJ,CAAC;MACNQ,WAAW,EAAEV,MAAM,CACdW,OAAO,CAAC,CAAC,CACTT,KAAK,CAAC,eAAe,CAAC,CACtBE,QAAQ,CAAC,QAAQ,CAAC,CAClBG,YAAY,CAAC,KAAK,CAAC;MACxBrB,UAAU,EAAEc,MAAM,CAACY,MAAM,CAAC,CAAC,CAACR,QAAQ,CAAC,aAAa;IACtD,CAAC,CAAC,CAAC,CACFS,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAExD,KAAK,MAAMC,QAAQ,IAAI,IAAI,CAAC5B,UAAU,EAAE;MACpCG,KAAK,CAACW,MAAM,CAACA,MAAM,IAAI;QACnB,MAAMd,UAAU,GAAGc,MAAM,CAACe,MAAM,CAAC,CAAC,CAACH,MAAM,CAAC,CAAC;QAC3CE,QAAQ,CAAC3B,OAAO,CAACD,UAAU,CAAC;QAE5B,OAAO;UAAEA;QAAW,CAAC;MACzB,CAAC,CAAC;IACN;IAEA,OAAO,CAACG,KAAK,CAAC;EAClB;AACJ;AAEA,eAAeR,YAAY,CAACmC,oBAAoB,CAAC;EAC7CC,cAAc,EAAEjC,kBAAkB;EAClCkC,YAAY,EAAE,CAAC,CAACpC,oBAAoB,EAAE;IAAEqC,QAAQ,EAAE;EAAK,CAAC,CAAC;AAC7D,CAAC,CAAC","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/tenant-manager",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0-rc.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "index.js",
|
|
@@ -13,20 +13,18 @@
|
|
|
13
13
|
"license": "Webiny Enterprise",
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@apollo/react-hooks": "3.1.5",
|
|
16
|
-
"@webiny/admin-ui": "
|
|
17
|
-
"@webiny/api-core": "
|
|
18
|
-
"@webiny/api-headless-cms": "
|
|
19
|
-
"@webiny/app": "
|
|
20
|
-
"@webiny/app-aco": "
|
|
21
|
-
"@webiny/app-admin": "
|
|
22
|
-
"@webiny/app-headless-cms": "
|
|
23
|
-
"@webiny/feature": "
|
|
24
|
-
"@webiny/
|
|
25
|
-
"@webiny/
|
|
26
|
-
"@webiny/
|
|
27
|
-
"@webiny/
|
|
28
|
-
"@webiny/project": "0.0.0-unstable.df7a8bb475",
|
|
29
|
-
"@webiny/project-aws": "0.0.0-unstable.df7a8bb475",
|
|
16
|
+
"@webiny/admin-ui": "6.0.0-rc.0",
|
|
17
|
+
"@webiny/api-core": "6.0.0-rc.0",
|
|
18
|
+
"@webiny/api-headless-cms": "6.0.0-rc.0",
|
|
19
|
+
"@webiny/app": "6.0.0-rc.0",
|
|
20
|
+
"@webiny/app-aco": "6.0.0-rc.0",
|
|
21
|
+
"@webiny/app-admin": "6.0.0-rc.0",
|
|
22
|
+
"@webiny/app-headless-cms": "6.0.0-rc.0",
|
|
23
|
+
"@webiny/feature": "6.0.0-rc.0",
|
|
24
|
+
"@webiny/handler-graphql": "6.0.0-rc.0",
|
|
25
|
+
"@webiny/icons": "6.0.0-rc.0",
|
|
26
|
+
"@webiny/project": "6.0.0-rc.0",
|
|
27
|
+
"@webiny/project-aws": "6.0.0-rc.0",
|
|
30
28
|
"graphql-tag": "2.12.6",
|
|
31
29
|
"mobx": "6.15.0",
|
|
32
30
|
"mobx-react-lite": "3.4.3",
|
|
@@ -34,7 +32,7 @@
|
|
|
34
32
|
"react-dom": "18.2.0"
|
|
35
33
|
},
|
|
36
34
|
"devDependencies": {
|
|
37
|
-
"@webiny/build-tools": "
|
|
35
|
+
"@webiny/build-tools": "6.0.0-rc.0",
|
|
38
36
|
"rimraf": "6.1.3",
|
|
39
37
|
"typescript": "5.9.3"
|
|
40
38
|
},
|
|
@@ -42,5 +40,5 @@
|
|
|
42
40
|
"access": "public",
|
|
43
41
|
"directory": "dist"
|
|
44
42
|
},
|
|
45
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "0f2aa699f4642e550ab62c96fcd050e8d02345c9"
|
|
46
44
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const LegacyPermissionRenderer: () => null;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import React, { useEffect } from "react";
|
|
2
|
-
import { Accordion } from "@webiny/admin-ui";
|
|
3
|
-
import { plugins } from "@webiny/plugins";
|
|
4
|
-
import { ReactComponent as PermissionsIcon } from "@webiny/icons/business.svg";
|
|
5
|
-
import { TenantManagerPermissions } from "./TenantManagerPermissions.js";
|
|
6
|
-
import { i18n } from "@webiny/app/i18n/index.js";
|
|
7
|
-
const t = i18n.ns("tenant-manager/admin/permissionRenderer");
|
|
8
|
-
export const LegacyPermissionRenderer = () => {
|
|
9
|
-
useEffect(() => {
|
|
10
|
-
plugins.register({
|
|
11
|
-
type: "admin-app-permissions-renderer",
|
|
12
|
-
name: "admin-app-permissions-renderer-tenant-manager",
|
|
13
|
-
render(props) {
|
|
14
|
-
return /*#__PURE__*/React.createElement(Accordion.Item, {
|
|
15
|
-
icon: /*#__PURE__*/React.createElement(Accordion.Item.Icon, {
|
|
16
|
-
icon: /*#__PURE__*/React.createElement(PermissionsIcon, null),
|
|
17
|
-
label: "Tenant Manager Permissions"
|
|
18
|
-
}),
|
|
19
|
-
title: t`Tenant Manager`,
|
|
20
|
-
description: t`Manage Tenant Manager app access permissions.`,
|
|
21
|
-
"data-testid": "permission.tm"
|
|
22
|
-
}, /*#__PURE__*/React.createElement(TenantManagerPermissions, props));
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
}, []);
|
|
26
|
-
return null;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
//# sourceMappingURL=LegacyPermissionRenderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","Accordion","plugins","ReactComponent","PermissionsIcon","TenantManagerPermissions","i18n","t","ns","LegacyPermissionRenderer","register","type","name","render","props","createElement","Item","icon","Icon","label","title","description"],"sources":["LegacyPermissionRenderer.tsx"],"sourcesContent":["import React, { useEffect } from \"react\";\nimport { Accordion } from \"@webiny/admin-ui\";\nimport { plugins } from \"@webiny/plugins\";\nimport type { AdminAppPermissionRendererPlugin } from \"@webiny/app-admin/types.js\";\nimport { ReactComponent as PermissionsIcon } from \"@webiny/icons/business.svg\";\nimport { TenantManagerPermissions } from \"./TenantManagerPermissions.js\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\n\nconst t = i18n.ns(\"tenant-manager/admin/permissionRenderer\");\n\nexport const LegacyPermissionRenderer = () => {\n useEffect(() => {\n plugins.register({\n type: \"admin-app-permissions-renderer\",\n name: \"admin-app-permissions-renderer-tenant-manager\",\n render(props) {\n return (\n <Accordion.Item\n icon={\n <Accordion.Item.Icon\n icon={<PermissionsIcon />}\n label={\"Tenant Manager Permissions\"}\n />\n }\n title={t`Tenant Manager`}\n description={t`Manage Tenant Manager app access permissions.`}\n data-testid={\"permission.tm\"}\n >\n <TenantManagerPermissions {...props} />\n </Accordion.Item>\n );\n }\n } as AdminAppPermissionRendererPlugin);\n }, []);\n return null;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,OAAO,QAAQ,iBAAiB;AAEzC,SAASC,cAAc,IAAIC,eAAe,QAAQ,4BAA4B;AAC9E,SAASC,wBAAwB;AACjC,SAASC,IAAI,QAAQ,2BAA2B;AAEhD,MAAMC,CAAC,GAAGD,IAAI,CAACE,EAAE,CAAC,yCAAyC,CAAC;AAE5D,OAAO,MAAMC,wBAAwB,GAAGA,CAAA,KAAM;EAC1CT,SAAS,CAAC,MAAM;IACZE,OAAO,CAACQ,QAAQ,CAAC;MACbC,IAAI,EAAE,gCAAgC;MACtCC,IAAI,EAAE,+CAA+C;MACrDC,MAAMA,CAACC,KAAK,EAAE;QACV,oBACIf,KAAA,CAAAgB,aAAA,CAACd,SAAS,CAACe,IAAI;UACXC,IAAI,eACAlB,KAAA,CAAAgB,aAAA,CAACd,SAAS,CAACe,IAAI,CAACE,IAAI;YAChBD,IAAI,eAAElB,KAAA,CAAAgB,aAAA,CAACX,eAAe,MAAE,CAAE;YAC1Be,KAAK,EAAE;UAA6B,CACvC,CACJ;UACDC,KAAK,EAAEb,CAAC,gBAAiB;UACzBc,WAAW,EAAEd,CAAC,+CAAgD;UAC9D,eAAa;QAAgB,gBAE7BR,KAAA,CAAAgB,aAAA,CAACV,wBAAwB,EAAKS,KAAQ,CAC1B,CAAC;MAEzB;IACJ,CAAqC,CAAC;EAC1C,CAAC,EAAE,EAAE,CAAC;EACN,OAAO,IAAI;AACf,CAAC","ignoreList":[]}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
interface TenantManagerPermissionItem {
|
|
3
|
-
accessLevel?: string;
|
|
4
|
-
name?: string;
|
|
5
|
-
}
|
|
6
|
-
interface TenantManagerPermissionsProps {
|
|
7
|
-
value: TenantManagerPermissionItem;
|
|
8
|
-
onChange: (value: TenantManagerPermissionItem[]) => void;
|
|
9
|
-
}
|
|
10
|
-
export declare const TenantManagerPermissions: ({ value, onChange }: TenantManagerPermissionsProps) => React.JSX.Element;
|
|
11
|
-
export {};
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import React, { Fragment, useCallback, useMemo } from "react";
|
|
2
|
-
import { Grid, Select } from "@webiny/admin-ui";
|
|
3
|
-
import { i18n } from "@webiny/app/i18n/index.js";
|
|
4
|
-
import { PermissionInfo, gridWithPaddingClass } from "@webiny/app-admin";
|
|
5
|
-
import { Form } from "@webiny/form";
|
|
6
|
-
const t = i18n.ns("app-file-manager/admin/plugins/permissionRenderer");
|
|
7
|
-
const TENANT_MANAGER = "tm";
|
|
8
|
-
const TENANT_MANAGER_FULL_ACCESS = `${TENANT_MANAGER}.*`;
|
|
9
|
-
const FULL_ACCESS = "full";
|
|
10
|
-
const NO_ACCESS = "no";
|
|
11
|
-
const NO_ACCESS_DATA = {
|
|
12
|
-
accessLevel: NO_ACCESS
|
|
13
|
-
};
|
|
14
|
-
export const TenantManagerPermissions = ({
|
|
15
|
-
value,
|
|
16
|
-
onChange
|
|
17
|
-
}) => {
|
|
18
|
-
const onFormChange = useCallback(data => {
|
|
19
|
-
let newValue = [];
|
|
20
|
-
if (Array.isArray(value)) {
|
|
21
|
-
// Let's just filter out the `file-manager*` permission objects, it's easier to build new ones from scratch.
|
|
22
|
-
newValue = value.filter(item => !item.name.startsWith(TENANT_MANAGER));
|
|
23
|
-
}
|
|
24
|
-
if (data.accessLevel === NO_ACCESS) {
|
|
25
|
-
onChange(newValue);
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
if (data.accessLevel === FULL_ACCESS) {
|
|
29
|
-
newValue.push({
|
|
30
|
-
name: TENANT_MANAGER_FULL_ACCESS
|
|
31
|
-
});
|
|
32
|
-
onChange(newValue);
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
onChange(newValue);
|
|
36
|
-
}, [value]);
|
|
37
|
-
const formData = useMemo(() => {
|
|
38
|
-
if (!Array.isArray(value)) {
|
|
39
|
-
return NO_ACCESS_DATA;
|
|
40
|
-
}
|
|
41
|
-
const hasFullAccess = value.find(item => item.name === TENANT_MANAGER_FULL_ACCESS || item.name === "*");
|
|
42
|
-
if (hasFullAccess) {
|
|
43
|
-
return {
|
|
44
|
-
accessLevel: FULL_ACCESS
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
return NO_ACCESS_DATA;
|
|
48
|
-
}, []);
|
|
49
|
-
return /*#__PURE__*/React.createElement(Form, {
|
|
50
|
-
data: formData,
|
|
51
|
-
onChange: onFormChange
|
|
52
|
-
}, ({
|
|
53
|
-
Bind
|
|
54
|
-
}) => /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(Grid, {
|
|
55
|
-
className: gridWithPaddingClass
|
|
56
|
-
}, /*#__PURE__*/React.createElement(Grid.Column, {
|
|
57
|
-
span: 6
|
|
58
|
-
}, /*#__PURE__*/React.createElement(PermissionInfo, {
|
|
59
|
-
title: t`Access Level`
|
|
60
|
-
})), /*#__PURE__*/React.createElement(Grid.Column, {
|
|
61
|
-
span: 6
|
|
62
|
-
}, /*#__PURE__*/React.createElement(Bind, {
|
|
63
|
-
name: "accessLevel"
|
|
64
|
-
}, /*#__PURE__*/React.createElement(Select, {
|
|
65
|
-
options: [{
|
|
66
|
-
value: NO_ACCESS,
|
|
67
|
-
label: t`No access`
|
|
68
|
-
}, {
|
|
69
|
-
value: FULL_ACCESS,
|
|
70
|
-
label: t`Full access`
|
|
71
|
-
}]
|
|
72
|
-
}))))));
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
//# sourceMappingURL=TenantManagerPermissions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["React","Fragment","useCallback","useMemo","Grid","Select","i18n","PermissionInfo","gridWithPaddingClass","Form","t","ns","TENANT_MANAGER","TENANT_MANAGER_FULL_ACCESS","FULL_ACCESS","NO_ACCESS","NO_ACCESS_DATA","accessLevel","TenantManagerPermissions","value","onChange","onFormChange","data","newValue","Array","isArray","filter","item","name","startsWith","push","formData","hasFullAccess","find","createElement","Bind","className","Column","span","title","options","label"],"sources":["TenantManagerPermissions.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useMemo } from \"react\";\nimport { Grid, Select } from \"@webiny/admin-ui\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { PermissionInfo, gridWithPaddingClass } from \"@webiny/app-admin\";\nimport { Form } from \"@webiny/form\";\n\nconst t = i18n.ns(\"app-file-manager/admin/plugins/permissionRenderer\");\n\nconst TENANT_MANAGER = \"tm\";\nconst TENANT_MANAGER_FULL_ACCESS = `${TENANT_MANAGER}.*`;\n\nconst FULL_ACCESS = \"full\";\nconst NO_ACCESS = \"no\";\n\nconst NO_ACCESS_DATA = { accessLevel: NO_ACCESS };\n\ninterface TenantManagerPermissionItem {\n accessLevel?: string;\n name?: string;\n}\ninterface TenantManagerPermissionsProps {\n value: TenantManagerPermissionItem;\n onChange: (value: TenantManagerPermissionItem[]) => void;\n}\n\nexport const TenantManagerPermissions = ({ value, onChange }: TenantManagerPermissionsProps) => {\n const onFormChange = useCallback(\n (data: TenantManagerPermissionItem) => {\n let newValue: TenantManagerPermissionItem[] = [];\n if (Array.isArray(value)) {\n // Let's just filter out the `file-manager*` permission objects, it's easier to build new ones from scratch.\n newValue = value.filter(item => !item.name.startsWith(TENANT_MANAGER));\n }\n\n if (data.accessLevel === NO_ACCESS) {\n onChange(newValue);\n return;\n }\n\n if (data.accessLevel === FULL_ACCESS) {\n newValue.push({ name: TENANT_MANAGER_FULL_ACCESS });\n onChange(newValue);\n return;\n }\n\n onChange(newValue);\n },\n [value]\n );\n\n const formData = useMemo((): TenantManagerPermissionItem => {\n if (!Array.isArray(value)) {\n return NO_ACCESS_DATA;\n }\n\n const hasFullAccess = value.find(\n item => item.name === TENANT_MANAGER_FULL_ACCESS || item.name === \"*\"\n );\n\n if (hasFullAccess) {\n return { accessLevel: FULL_ACCESS };\n }\n\n return NO_ACCESS_DATA;\n }, []);\n\n return (\n <Form data={formData} onChange={onFormChange}>\n {({ Bind }) => (\n <Fragment>\n <Grid className={gridWithPaddingClass}>\n <Grid.Column span={6}>\n <PermissionInfo title={t`Access Level`} />\n </Grid.Column>\n <Grid.Column span={6}>\n <Bind name={\"accessLevel\"}>\n <Select\n options={[\n {\n value: NO_ACCESS,\n label: t`No access`\n },\n {\n value: FULL_ACCESS,\n label: t`Full access`\n }\n ]}\n />\n </Bind>\n </Grid.Column>\n </Grid>\n </Fragment>\n )}\n </Form>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|