@webiny/tenant-manager 6.3.0 → 6.4.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/TenantManager.js +8 -9
- package/TenantManager.js.map +1 -1
- package/admin/CurrentTenant/CurrentTenant.js +15 -24
- package/admin/CurrentTenant/CurrentTenant.js.map +1 -1
- package/admin/CurrentTenant/CurrentTenantGateway.js +18 -19
- package/admin/CurrentTenant/CurrentTenantGateway.js.map +1 -1
- package/admin/CurrentTenant/CurrentTenantPresenter.js +26 -23
- package/admin/CurrentTenant/CurrentTenantPresenter.js.map +1 -1
- package/admin/CurrentTenant/CurrentTenantRepository.js +30 -29
- package/admin/CurrentTenant/CurrentTenantRepository.js.map +1 -1
- package/admin/CurrentTenant/abstractions.js +4 -12
- package/admin/CurrentTenant/abstractions.js.map +1 -1
- package/admin/CurrentTenant/feature.js +15 -14
- package/admin/CurrentTenant/feature.js.map +1 -1
- package/admin/CurrentTenant/useCurrentTenant.js +11 -16
- package/admin/CurrentTenant/useCurrentTenant.js.map +1 -1
- package/admin/CurrentTenantProvider.js +5 -8
- package/admin/CurrentTenantProvider.js.map +1 -1
- package/admin/DisableTenant/DisableTenantGateway.js +21 -22
- package/admin/DisableTenant/DisableTenantGateway.js.map +1 -1
- package/admin/DisableTenant/DisableTenantRepository.js +13 -10
- package/admin/DisableTenant/DisableTenantRepository.js.map +1 -1
- package/admin/DisableTenant/DisableTenantUseCase.js +13 -10
- package/admin/DisableTenant/DisableTenantUseCase.js.map +1 -1
- package/admin/DisableTenant/abstractions.js +4 -12
- package/admin/DisableTenant/abstractions.js.map +1 -1
- package/admin/DisableTenant/feature.js +15 -14
- package/admin/DisableTenant/feature.js.map +1 -1
- package/admin/DisableTenant/index.js +0 -2
- package/admin/DisableTenant/useDisableTenant.js +20 -20
- package/admin/DisableTenant/useDisableTenant.js.map +1 -1
- package/admin/EnableTenant/EnableTenantGateway.js +21 -22
- package/admin/EnableTenant/EnableTenantGateway.js.map +1 -1
- package/admin/EnableTenant/EnableTenantRepository.js +13 -10
- package/admin/EnableTenant/EnableTenantRepository.js.map +1 -1
- package/admin/EnableTenant/EnableTenantUseCase.js +13 -10
- package/admin/EnableTenant/EnableTenantUseCase.js.map +1 -1
- package/admin/EnableTenant/abstractions.js +4 -12
- package/admin/EnableTenant/abstractions.js.map +1 -1
- package/admin/EnableTenant/feature.js +15 -14
- package/admin/EnableTenant/feature.js.map +1 -1
- package/admin/EnableTenant/index.js +0 -2
- package/admin/EnableTenant/useEnableTenant.js +19 -18
- package/admin/EnableTenant/useEnableTenant.js.map +1 -1
- package/admin/Extension.js +32 -36
- package/admin/Extension.js.map +1 -1
- package/admin/IsRootTenant.js +14 -32
- package/admin/IsRootTenant.js.map +1 -1
- package/admin/SecurityPermission.js +11 -14
- package/admin/SecurityPermission.js.map +1 -1
- package/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.js +36 -37
- package/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.js.map +1 -1
- package/admin/TenantEntryList/EnableTenant/EnableTenant.js +10 -14
- package/admin/TenantEntryList/EnableTenant/EnableTenant.js.map +1 -1
- package/admin/TenantEntryList/EnableTenant/useEnableTenant.js +34 -33
- package/admin/TenantEntryList/EnableTenant/useEnableTenant.js.map +1 -1
- package/admin/TenantEntryList/FolderNameCell.js +19 -24
- package/admin/TenantEntryList/FolderNameCell.js.map +1 -1
- package/admin/TenantEntryList/InstallTenantButton/InstallTenant.js +10 -14
- package/admin/TenantEntryList/InstallTenantButton/InstallTenant.js.map +1 -1
- package/admin/TenantEntryList/InstallTenantButton/installTenant.gql.js +3 -2
- package/admin/TenantEntryList/InstallTenantButton/installTenant.gql.js.map +1 -1
- package/admin/TenantEntryList/InstallTenantButton/useInstallTenant.js +34 -38
- package/admin/TenantEntryList/InstallTenantButton/useInstallTenant.js.map +1 -1
- package/admin/TenantEntryList/ManageTenant.js +15 -16
- package/admin/TenantEntryList/ManageTenant.js.map +1 -1
- package/admin/TenantEntryList/TenantCell.js +15 -30
- package/admin/TenantEntryList/TenantCell.js.map +1 -1
- package/admin/TenantEntryList/TenantNameCell.js +35 -45
- package/admin/TenantEntryList/TenantNameCell.js.map +1 -1
- package/admin/TenantEntryList.js +43 -60
- package/admin/TenantEntryList.js.map +1 -1
- package/admin/TenantSelector.js +31 -35
- package/admin/TenantSelector.js.map +1 -1
- package/admin/domain/permissionsSchema.js +4 -3
- package/admin/domain/permissionsSchema.js.map +1 -1
- package/admin/features/permissions/abstractions.js +2 -1
- package/admin/features/permissions/abstractions.js.map +1 -1
- package/admin/features/permissions/feature.js +2 -1
- package/admin/features/permissions/feature.js.map +1 -1
- package/admin/types.js +0 -3
- package/api/Extension.js +20 -23
- package/api/Extension.js.map +1 -1
- package/api/domain/TenantId.js +5 -7
- package/api/domain/TenantId.js.map +1 -1
- package/api/domain/TenantModel.js +59 -37
- package/api/domain/TenantModel.js.map +1 -1
- package/api/domain/TenantModelExtension.js +2 -2
- package/api/domain/TenantModelExtension.js.map +1 -1
- package/api/domain/errors.js +49 -54
- package/api/domain/errors.js.map +1 -1
- package/api/features/AddCmsPermissions/AddCmsPermissions.js +40 -31
- package/api/features/AddCmsPermissions/AddCmsPermissions.js.map +1 -1
- package/api/features/AddCmsPermissions/feature.js +6 -5
- package/api/features/AddCmsPermissions/feature.js.map +1 -1
- package/api/features/CreateAndInstallTenant/CreateAndInstallTenantUseCase.js +67 -85
- package/api/features/CreateAndInstallTenant/CreateAndInstallTenantUseCase.js.map +1 -1
- package/api/features/CreateAndInstallTenant/abstractions.js +2 -6
- package/api/features/CreateAndInstallTenant/abstractions.js.map +1 -1
- package/api/features/CreateAndInstallTenant/feature.js +6 -6
- package/api/features/CreateAndInstallTenant/feature.js.map +1 -1
- package/api/features/CreateTenant/CreateTenantRepository.js +33 -38
- package/api/features/CreateTenant/CreateTenantRepository.js.map +1 -1
- package/api/features/CreateTenant/CreateTenantUseCase.js +29 -32
- package/api/features/CreateTenant/CreateTenantUseCase.js.map +1 -1
- package/api/features/CreateTenant/abstractions.js +3 -8
- package/api/features/CreateTenant/abstractions.js.map +1 -1
- package/api/features/CreateTenant/feature.js +7 -9
- package/api/features/CreateTenant/feature.js.map +1 -1
- package/api/features/DeleteTenantOnEntryDelete/DeleteTenantOnEntryDeleteHandler.js +17 -27
- package/api/features/DeleteTenantOnEntryDelete/DeleteTenantOnEntryDeleteHandler.js.map +1 -1
- package/api/features/DeleteTenantOnEntryDelete/feature.js +6 -6
- package/api/features/DeleteTenantOnEntryDelete/feature.js.map +1 -1
- package/api/features/DisableTenant/DisableTenantUseCase.js +41 -53
- package/api/features/DisableTenant/DisableTenantUseCase.js.map +1 -1
- package/api/features/DisableTenant/abstractions.js +2 -1
- package/api/features/DisableTenant/abstractions.js.map +1 -1
- package/api/features/DisableTenant/events.js +17 -12
- package/api/features/DisableTenant/events.js.map +1 -1
- package/api/features/DisableTenant/feature.js +6 -6
- package/api/features/DisableTenant/feature.js.map +1 -1
- package/api/features/EnableTenant/EnableTenantUseCase.js +43 -55
- package/api/features/EnableTenant/EnableTenantUseCase.js.map +1 -1
- package/api/features/EnableTenant/abstractions.js +2 -1
- package/api/features/EnableTenant/abstractions.js.map +1 -1
- package/api/features/EnableTenant/events.js +17 -12
- package/api/features/EnableTenant/events.js.map +1 -1
- package/api/features/EnableTenant/feature.js +6 -6
- package/api/features/EnableTenant/feature.js.map +1 -1
- package/api/features/GetCurrentTenant/GetCurrentTenantUseCase.js +21 -24
- package/api/features/GetCurrentTenant/GetCurrentTenantUseCase.js.map +1 -1
- package/api/features/GetCurrentTenant/abstractions.js +2 -7
- package/api/features/GetCurrentTenant/abstractions.js.map +1 -1
- package/api/features/GetCurrentTenant/feature.js +6 -6
- package/api/features/GetCurrentTenant/feature.js.map +1 -1
- package/api/features/GetTenantById/GetTenantByIdRepository.js +31 -36
- package/api/features/GetTenantById/GetTenantByIdRepository.js.map +1 -1
- package/api/features/GetTenantById/GetTenantByIdUseCase.js +15 -19
- package/api/features/GetTenantById/GetTenantByIdUseCase.js.map +1 -1
- package/api/features/GetTenantById/abstractions.js +3 -12
- package/api/features/GetTenantById/abstractions.js.map +1 -1
- package/api/features/GetTenantById/feature.js +7 -9
- package/api/features/GetTenantById/feature.js.map +1 -1
- package/api/features/UpdateTenant/UpdateTenantRepository.js +40 -47
- package/api/features/UpdateTenant/UpdateTenantRepository.js.map +1 -1
- package/api/features/UpdateTenant/UpdateTenantUseCase.js +15 -15
- package/api/features/UpdateTenant/UpdateTenantUseCase.js.map +1 -1
- package/api/features/UpdateTenant/abstractions.js +3 -12
- package/api/features/UpdateTenant/abstractions.js.map +1 -1
- package/api/features/UpdateTenant/feature.js +7 -9
- package/api/features/UpdateTenant/feature.js.map +1 -1
- package/api/graphql/CreateTenantSchema.js +53 -55
- package/api/graphql/CreateTenantSchema.js.map +1 -1
- package/api/graphql/DisableTenantSchema.js +20 -24
- package/api/graphql/DisableTenantSchema.js.map +1 -1
- package/api/graphql/EnableTenantSchema.js +20 -24
- package/api/graphql/EnableTenantSchema.js.map +1 -1
- package/api/graphql/GetCurrentTenantSchema.js +24 -28
- package/api/graphql/GetCurrentTenantSchema.js.map +1 -1
- package/api/graphql/InstallTenantSchema.js +26 -33
- package/api/graphql/InstallTenantSchema.js.map +1 -1
- package/exports/admin/tenancy.js +1 -5
- package/exports/api/tenant-manager.js +0 -2
- package/index.js +0 -2
- package/package.json +16 -16
- package/shared/Tenant.js +23 -22
- package/shared/Tenant.js.map +1 -1
- package/shared/constants.js +2 -1
- package/shared/constants.js.map +1 -1
- package/admin/DisableTenant/index.js.map +0 -1
- package/admin/EnableTenant/index.js.map +0 -1
- package/admin/types.js.map +0 -1
- package/exports/admin/tenancy.js.map +0 -1
- package/exports/api/tenant-manager.js.map +0 -1
- package/index.js.map +0 -1
|
@@ -1,21 +1,20 @@
|
|
|
1
|
-
import
|
|
1
|
+
import react, { useCallback } from "react";
|
|
2
2
|
import { Button } from "@webiny/admin-ui";
|
|
3
3
|
import { useTenantContext } from "@webiny/app-admin";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
text: "Manage"
|
|
18
|
-
});
|
|
4
|
+
const ManageTenant = ({ tenant })=>{
|
|
5
|
+
const { setTenant } = useTenantContext();
|
|
6
|
+
const switchToTenant = useCallback(()=>{
|
|
7
|
+
localStorage.removeItem("webiny_wb_page_latest_visited_folder");
|
|
8
|
+
setTenant(tenant.entryId);
|
|
9
|
+
}, [
|
|
10
|
+
tenant
|
|
11
|
+
]);
|
|
12
|
+
return /*#__PURE__*/ react.createElement(Button, {
|
|
13
|
+
variant: "secondary",
|
|
14
|
+
onClick: switchToTenant,
|
|
15
|
+
text: "Manage"
|
|
16
|
+
});
|
|
19
17
|
};
|
|
18
|
+
export { ManageTenant };
|
|
20
19
|
|
|
21
20
|
//# sourceMappingURL=ManageTenant.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"admin/TenantEntryList/ManageTenant.js","sources":["../../../src/admin/TenantEntryList/ManageTenant.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { Button } from \"@webiny/admin-ui\";\nimport { useTenantContext } from \"@webiny/app-admin\";\nimport type { TenantEntry } from \"../types.js\";\n\ninterface ManageTenantProps {\n tenant: TenantEntry;\n}\n\nexport const ManageTenant = ({ tenant }: ManageTenantProps) => {\n const { setTenant } = useTenantContext();\n const switchToTenant = useCallback(() => {\n localStorage.removeItem(\"webiny_wb_page_latest_visited_folder\");\n setTenant(tenant.entryId);\n }, [tenant]);\n\n return <Button variant={\"secondary\"} onClick={switchToTenant} text={\"Manage\"} />;\n};\n"],"names":["ManageTenant","tenant","setTenant","useTenantContext","switchToTenant","useCallback","localStorage","Button"],"mappings":";;;AASO,MAAMA,eAAe,CAAC,EAAEC,MAAM,EAAqB;IACtD,MAAM,EAAEC,SAAS,EAAE,GAAGC;IACtB,MAAMC,iBAAiBC,YAAY;QAC/BC,aAAa,UAAU,CAAC;QACxBJ,UAAUD,OAAO,OAAO;IAC5B,GAAG;QAACA;KAAO;IAEX,OAAO,WAAP,GAAO,oBAACM,QAAMA;QAAC,SAAS;QAAa,SAASH;QAAgB,MAAM;;AACxE"}
|
|
@@ -1,39 +1,24 @@
|
|
|
1
|
-
import
|
|
1
|
+
import react from "react";
|
|
2
2
|
import { ContentEntryListConfig } from "@webiny/app-headless-cms";
|
|
3
3
|
import { InstallTenant } from "./InstallTenantButton/InstallTenant.js";
|
|
4
4
|
import { ManageTenant } from "./ManageTenant.js";
|
|
5
5
|
import { EnableTenant } from "./EnableTenant/EnableTenant.js";
|
|
6
|
-
const {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
} = useTableRow();
|
|
18
|
-
|
|
19
|
-
// isFolderRow() allows for custom rendering when the current row is a folder.
|
|
20
|
-
if (isFolderRow(row)) {
|
|
21
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, "-");
|
|
22
|
-
}
|
|
23
|
-
const tenant = row.data;
|
|
24
|
-
if (!tenant.values.isInstalled) {
|
|
25
|
-
return /*#__PURE__*/React.createElement(InstallTenant, {
|
|
26
|
-
tenant: tenant
|
|
6
|
+
const { Browser: Browser } = ContentEntryListConfig;
|
|
7
|
+
const { useTableRow: useTableRow, isFolderRow: isFolderRow } = Browser.Table.Column;
|
|
8
|
+
const TenantCell = ()=>{
|
|
9
|
+
const { row } = useTableRow();
|
|
10
|
+
if (isFolderRow(row)) return /*#__PURE__*/ react.createElement(react.Fragment, null, "-");
|
|
11
|
+
const tenant = row.data;
|
|
12
|
+
if (!tenant.values.isInstalled) return /*#__PURE__*/ react.createElement(InstallTenant, {
|
|
13
|
+
tenant: tenant
|
|
14
|
+
});
|
|
15
|
+
if ("disabled" === tenant.values.status) return /*#__PURE__*/ react.createElement(EnableTenant, {
|
|
16
|
+
tenant: tenant
|
|
27
17
|
});
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
return /*#__PURE__*/React.createElement(EnableTenant, {
|
|
31
|
-
tenant: tenant
|
|
18
|
+
return /*#__PURE__*/ react.createElement(ManageTenant, {
|
|
19
|
+
tenant: tenant
|
|
32
20
|
});
|
|
33
|
-
}
|
|
34
|
-
return /*#__PURE__*/React.createElement(ManageTenant, {
|
|
35
|
-
tenant: tenant
|
|
36
|
-
});
|
|
37
21
|
};
|
|
22
|
+
export { TenantCell };
|
|
38
23
|
|
|
39
24
|
//# sourceMappingURL=TenantCell.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"admin/TenantEntryList/TenantCell.js","sources":["../../../src/admin/TenantEntryList/TenantCell.tsx"],"sourcesContent":["import React from \"react\";\nimport { ContentEntryListConfig } from \"@webiny/app-headless-cms\";\nimport { TenantEntry } from \"../types.js\";\nimport { InstallTenant } from \"./InstallTenantButton/InstallTenant.js\";\nimport { ManageTenant } from \"./ManageTenant.js\";\nimport { EnableTenant } from \"~/admin/TenantEntryList/EnableTenant/EnableTenant.js\";\n\nconst { Browser } = ContentEntryListConfig;\nconst { useTableRow, isFolderRow } = Browser.Table.Column;\n\nexport const TenantCell = () => {\n // useTableRow() allows you to access the entire data of the current row.\n const { row } = useTableRow<TenantEntry>();\n\n // isFolderRow() allows for custom rendering when the current row is a folder.\n if (isFolderRow(row)) {\n return <>{\"-\"}</>;\n }\n\n const tenant = row.data;\n\n if (!tenant.values.isInstalled) {\n return <InstallTenant tenant={tenant} />;\n }\n\n if (tenant.values.status === \"disabled\") {\n return <EnableTenant tenant={tenant} />;\n }\n\n return <ManageTenant tenant={tenant} />;\n};\n"],"names":["Browser","ContentEntryListConfig","useTableRow","isFolderRow","TenantCell","row","tenant","InstallTenant","EnableTenant","ManageTenant"],"mappings":";;;;;AAOA,MAAM,EAAEA,SAAAA,OAAO,EAAE,GAAGC;AACpB,MAAM,EAAEC,aAAAA,WAAW,EAAEC,aAAAA,WAAW,EAAE,GAAGH,QAAQ,KAAK,CAAC,MAAM;AAElD,MAAMI,aAAa;IAEtB,MAAM,EAAEC,GAAG,EAAE,GAAGH;IAGhB,IAAIC,YAAYE,MACZ,OAAO,WAAP,GAAO,0CAAG;IAGd,MAAMC,SAASD,IAAI,IAAI;IAEvB,IAAI,CAACC,OAAO,MAAM,CAAC,WAAW,EAC1B,OAAO,WAAP,GAAO,oBAACC,eAAaA;QAAC,QAAQD;;IAGlC,IAAIA,AAAyB,eAAzBA,OAAO,MAAM,CAAC,MAAM,EACpB,OAAO,WAAP,GAAO,oBAACE,cAAYA;QAAC,QAAQF;;IAGjC,OAAO,WAAP,GAAO,oBAACG,cAAYA;QAAC,QAAQH;;AACjC"}
|
|
@@ -1,54 +1,44 @@
|
|
|
1
|
-
import
|
|
1
|
+
import react from "react";
|
|
2
2
|
import { Icon, Link, Text } from "@webiny/admin-ui";
|
|
3
|
-
import { ReactComponent
|
|
3
|
+
import { ReactComponent } from "@webiny/icons/description.svg";
|
|
4
4
|
import { ContentEntryListConfig } from "@webiny/app-headless-cms";
|
|
5
5
|
import { FolderNameCell } from "./FolderNameCell.js";
|
|
6
6
|
import { useContentEntriesList } from "@webiny/app-headless-cms/exports/admin/cms/entry/list.js";
|
|
7
|
-
const TenantName = ({
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
as: "div",
|
|
32
|
-
size: "sm",
|
|
33
|
-
className: "text-neutral-dimmed"
|
|
34
|
-
}, "ID: ", tenant.entryId));
|
|
7
|
+
const TenantName = ({ tenant })=>{
|
|
8
|
+
const { getEntryEditUrl } = useContentEntriesList();
|
|
9
|
+
return /*#__PURE__*/ react.createElement("div", {
|
|
10
|
+
className: "flex flex-col gap-y-[3px]"
|
|
11
|
+
}, /*#__PURE__*/ react.createElement(Link, {
|
|
12
|
+
to: getEntryEditUrl(tenant),
|
|
13
|
+
variant: "secondary",
|
|
14
|
+
className: "truncate no-underline!"
|
|
15
|
+
}, /*#__PURE__*/ react.createElement("div", {
|
|
16
|
+
className: "flex w-full items-center"
|
|
17
|
+
}, /*#__PURE__*/ react.createElement(Icon, {
|
|
18
|
+
size: "sm",
|
|
19
|
+
color: "neutral-strong",
|
|
20
|
+
className: "mr-xs",
|
|
21
|
+
icon: /*#__PURE__*/ react.createElement(ReactComponent, null),
|
|
22
|
+
label: `Tenant - ${tenant.values.name}`
|
|
23
|
+
}), /*#__PURE__*/ react.createElement(Text, {
|
|
24
|
+
as: "div",
|
|
25
|
+
className: "truncate min-w-0 shrink"
|
|
26
|
+
}, tenant.values.name))), /*#__PURE__*/ react.createElement(Text, {
|
|
27
|
+
as: "div",
|
|
28
|
+
size: "sm",
|
|
29
|
+
className: "text-neutral-dimmed"
|
|
30
|
+
}, "ID: ", tenant.entryId));
|
|
35
31
|
};
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
useTableRow
|
|
39
|
-
isFolderRow
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
if (isFolderRow(row)) {
|
|
45
|
-
return /*#__PURE__*/React.createElement(FolderNameCell, {
|
|
46
|
-
folder: row.data
|
|
32
|
+
const TenantNameCell = ()=>{
|
|
33
|
+
const { useTableRow, isFolderRow } = ContentEntryListConfig.Browser.Table.Column;
|
|
34
|
+
const { row } = useTableRow();
|
|
35
|
+
if (isFolderRow(row)) return /*#__PURE__*/ react.createElement(FolderNameCell, {
|
|
36
|
+
folder: row.data
|
|
37
|
+
});
|
|
38
|
+
return /*#__PURE__*/ react.createElement(TenantName, {
|
|
39
|
+
tenant: row.data
|
|
47
40
|
});
|
|
48
|
-
}
|
|
49
|
-
return /*#__PURE__*/React.createElement(TenantName, {
|
|
50
|
-
tenant: row.data
|
|
51
|
-
});
|
|
52
41
|
};
|
|
42
|
+
export { TenantNameCell };
|
|
53
43
|
|
|
54
44
|
//# sourceMappingURL=TenantNameCell.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"admin/TenantEntryList/TenantNameCell.js","sources":["../../../src/admin/TenantEntryList/TenantNameCell.tsx"],"sourcesContent":["import React from \"react\";\nimport { Icon, Link, Text } from \"@webiny/admin-ui\";\nimport { ReactComponent as File } from \"@webiny/icons/description.svg\";\nimport { ContentEntryListConfig } from \"@webiny/app-headless-cms\";\nimport { FolderNameCell } from \"./FolderNameCell.js\";\nimport type { TenantEntry } from \"~/admin/types.js\";\nimport { useContentEntriesList } from \"@webiny/app-headless-cms/exports/admin/cms/entry/list.js\";\n\ninterface TenantNameProps {\n tenant: TenantEntry;\n}\n\nconst TenantName = ({ tenant }: TenantNameProps) => {\n const { getEntryEditUrl } = useContentEntriesList();\n\n return (\n <div className={\"flex flex-col gap-y-[3px]\"}>\n <Link\n to={getEntryEditUrl(tenant)}\n variant={\"secondary\"}\n className={\"truncate no-underline!\"}\n >\n <div className={\"flex w-full items-center\"}>\n <Icon\n size={\"sm\"}\n color={\"neutral-strong\"}\n className={\"mr-xs\"}\n icon={<File />}\n label={`Tenant - ${tenant.values.name}`}\n />\n <Text as={\"div\"} className={\"truncate min-w-0 shrink\"}>\n {tenant.values.name}\n </Text>\n </div>\n </Link>\n <Text as={\"div\"} size={\"sm\"} className={\"text-neutral-dimmed\"}>\n ID: {tenant.entryId}\n </Text>\n </div>\n );\n};\n\nexport const TenantNameCell = () => {\n const { useTableRow, isFolderRow } = ContentEntryListConfig.Browser.Table.Column;\n const { row } = useTableRow<TenantEntry>();\n\n if (isFolderRow(row)) {\n return <FolderNameCell folder={row.data} />;\n }\n\n return <TenantName tenant={row.data} />;\n};\n"],"names":["TenantName","tenant","getEntryEditUrl","useContentEntriesList","Link","Icon","File","Text","TenantNameCell","useTableRow","isFolderRow","ContentEntryListConfig","row","FolderNameCell"],"mappings":";;;;;;AAYA,MAAMA,aAAa,CAAC,EAAEC,MAAM,EAAmB;IAC3C,MAAM,EAAEC,eAAe,EAAE,GAAGC;IAE5B,OAAO,WAAP,GACI,oBAAC;QAAI,WAAW;qBACZ,oBAACC,MAAIA;QACD,IAAIF,gBAAgBD;QACpB,SAAS;QACT,WAAW;qBAEX,oBAAC;QAAI,WAAW;qBACZ,oBAACI,MAAIA;QACD,MAAM;QACN,OAAO;QACP,WAAW;QACX,oBAAM,oBAACC,gBAAIA;QACX,OAAO,CAAC,SAAS,EAAEL,OAAO,MAAM,CAAC,IAAI,EAAE;sBAE3C,oBAACM,MAAIA;QAAC,IAAI;QAAO,WAAW;OACvBN,OAAO,MAAM,CAAC,IAAI,mBAI/B,oBAACM,MAAIA;QAAC,IAAI;QAAO,MAAM;QAAM,WAAW;OAAuB,QACtDN,OAAO,OAAO;AAInC;AAEO,MAAMO,iBAAiB;IAC1B,MAAM,EAAEC,WAAW,EAAEC,WAAW,EAAE,GAAGC,uBAAuB,OAAO,CAAC,KAAK,CAAC,MAAM;IAChF,MAAM,EAAEC,GAAG,EAAE,GAAGH;IAEhB,IAAIC,YAAYE,MACZ,OAAO,WAAP,GAAO,oBAACC,gBAAcA;QAAC,QAAQD,IAAI,IAAI;;IAG3C,OAAO,WAAP,GAAO,oBAACZ,YAAUA;QAAC,QAAQY,IAAI,IAAI;;AACvC"}
|
package/admin/TenantEntryList.js
CHANGED
|
@@ -1,71 +1,54 @@
|
|
|
1
|
-
import
|
|
1
|
+
import react from "react";
|
|
2
2
|
import { useModel } from "@webiny/app-headless-cms/exports/admin/cms.js";
|
|
3
3
|
import { ContentEntryListConfig } from "@webiny/app-headless-cms/exports/admin/cms/entry/list.js";
|
|
4
|
-
import { ReactComponent
|
|
4
|
+
import { ReactComponent } from "@webiny/icons/power_off.svg";
|
|
5
5
|
import { TenantCell } from "./TenantEntryList/TenantCell.js";
|
|
6
6
|
import { TENANT_MODEL_ID } from "../shared/constants.js";
|
|
7
7
|
import { useDisableTenantDialog } from "./TenantEntryList/DisableTenant/useDisableTenantDialog.js";
|
|
8
8
|
import { TenantNameCell } from "./TenantEntryList/TenantNameCell.js";
|
|
9
|
-
const {
|
|
10
|
-
Browser
|
|
11
|
-
} = ContentEntryListConfig;
|
|
9
|
+
const { Browser: Browser } = ContentEntryListConfig;
|
|
12
10
|
const EntryAction = Browser.Entry.Action;
|
|
13
|
-
const {
|
|
14
|
-
|
|
15
|
-
} =
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
}) => {
|
|
19
|
-
// useTableRow() allows you to access the entire data of the current row.
|
|
20
|
-
const {
|
|
21
|
-
row
|
|
22
|
-
} = useTableRow();
|
|
23
|
-
const {
|
|
24
|
-
disableEntry
|
|
25
|
-
} = useDisableTenantDialog({
|
|
26
|
-
record: row.data
|
|
27
|
-
});
|
|
28
|
-
if (row.data.values.status === "enabled") {
|
|
29
|
-
return /*#__PURE__*/React.createElement(EntryAction.OptionsMenuItem, {
|
|
30
|
-
icon: /*#__PURE__*/React.createElement(DisableIcon, null),
|
|
31
|
-
label: "Disable",
|
|
32
|
-
onAction: disableEntry,
|
|
33
|
-
"data-testid": "aco.actions.entry.delete",
|
|
34
|
-
className: "text-destructive-primary! [&_svg]:fill-destructive"
|
|
11
|
+
const { useTableRow: useTableRow } = Browser.Table.Column;
|
|
12
|
+
const WithDisableAction = ({ children })=>{
|
|
13
|
+
const { row } = useTableRow();
|
|
14
|
+
const { disableEntry } = useDisableTenantDialog({
|
|
15
|
+
record: row.data
|
|
35
16
|
});
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
if (model.modelId !== TENANT_MODEL_ID) {
|
|
45
|
-
return /*#__PURE__*/React.createElement(Original, props);
|
|
46
|
-
}
|
|
47
|
-
if (props.name === "delete") {
|
|
48
|
-
return /*#__PURE__*/React.createElement(Original, Object.assign({}, props, {
|
|
49
|
-
element: /*#__PURE__*/React.createElement(WithDisableAction, null, props.element)
|
|
50
|
-
}));
|
|
51
|
-
}
|
|
52
|
-
return /*#__PURE__*/React.createElement(Original, props);
|
|
53
|
-
};
|
|
54
|
-
});
|
|
55
|
-
export const TenantEntryList = () => {
|
|
56
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DeleteActionDecorator, null), /*#__PURE__*/React.createElement(ContentEntryListConfig, null, /*#__PURE__*/React.createElement(Browser.Table.Column, {
|
|
57
|
-
hideable: false,
|
|
58
|
-
name: "name",
|
|
59
|
-
header: "Name",
|
|
60
|
-
modelIds: [TENANT_MODEL_ID],
|
|
61
|
-
cell: /*#__PURE__*/React.createElement(TenantNameCell, null)
|
|
62
|
-
}), /*#__PURE__*/React.createElement(Browser.Table.Column, {
|
|
63
|
-
name: "tenant",
|
|
64
|
-
header: "Tenant",
|
|
65
|
-
modelIds: [TENANT_MODEL_ID],
|
|
66
|
-
cell: /*#__PURE__*/React.createElement(TenantCell, null),
|
|
67
|
-
before: "actions"
|
|
68
|
-
})));
|
|
17
|
+
if ("enabled" === row.data.values.status) return /*#__PURE__*/ react.createElement(EntryAction.OptionsMenuItem, {
|
|
18
|
+
icon: /*#__PURE__*/ react.createElement(ReactComponent, null),
|
|
19
|
+
label: "Disable",
|
|
20
|
+
onAction: disableEntry,
|
|
21
|
+
"data-testid": "aco.actions.entry.delete",
|
|
22
|
+
className: "text-destructive-primary! [&_svg]:fill-destructive"
|
|
23
|
+
});
|
|
24
|
+
return /*#__PURE__*/ react.createElement(react.Fragment, null, children);
|
|
69
25
|
};
|
|
26
|
+
const DeleteActionDecorator = EntryAction.createDecorator((Original)=>function(props) {
|
|
27
|
+
const { model } = useModel();
|
|
28
|
+
if (model.modelId !== TENANT_MODEL_ID) return /*#__PURE__*/ react.createElement(Original, props);
|
|
29
|
+
if ("delete" === props.name) return /*#__PURE__*/ react.createElement(Original, {
|
|
30
|
+
...props,
|
|
31
|
+
element: /*#__PURE__*/ react.createElement(WithDisableAction, null, props.element)
|
|
32
|
+
});
|
|
33
|
+
return /*#__PURE__*/ react.createElement(Original, props);
|
|
34
|
+
});
|
|
35
|
+
const TenantEntryList = ()=>/*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(DeleteActionDecorator, null), /*#__PURE__*/ react.createElement(ContentEntryListConfig, null, /*#__PURE__*/ react.createElement(Browser.Table.Column, {
|
|
36
|
+
hideable: false,
|
|
37
|
+
name: "name",
|
|
38
|
+
header: "Name",
|
|
39
|
+
modelIds: [
|
|
40
|
+
TENANT_MODEL_ID
|
|
41
|
+
],
|
|
42
|
+
cell: /*#__PURE__*/ react.createElement(TenantNameCell, null)
|
|
43
|
+
}), /*#__PURE__*/ react.createElement(Browser.Table.Column, {
|
|
44
|
+
name: "tenant",
|
|
45
|
+
header: "Tenant",
|
|
46
|
+
modelIds: [
|
|
47
|
+
TENANT_MODEL_ID
|
|
48
|
+
],
|
|
49
|
+
cell: /*#__PURE__*/ react.createElement(TenantCell, null),
|
|
50
|
+
before: "actions"
|
|
51
|
+
})));
|
|
52
|
+
export { TenantEntryList };
|
|
70
53
|
|
|
71
54
|
//# sourceMappingURL=TenantEntryList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"admin/TenantEntryList.js","sources":["../../src/admin/TenantEntryList.tsx"],"sourcesContent":["import React from \"react\";\nimport { useModel } from \"@webiny/app-headless-cms/exports/admin/cms.js\";\nimport { ContentEntryListConfig } from \"@webiny/app-headless-cms/exports/admin/cms/entry/list.js\";\nimport { ReactComponent as DisableIcon } from \"@webiny/icons/power_off.svg\";\nimport { TenantCell } from \"./TenantEntryList/TenantCell.js\";\nimport { TENANT_MODEL_ID } from \"~/shared/constants.js\";\nimport type { TenantEntry } from \"~/admin/types.js\";\nimport { useDisableTenantDialog } from \"~/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.js\";\nimport { TenantNameCell } from \"~/admin/TenantEntryList/TenantNameCell.js\";\n\nconst { Browser } = ContentEntryListConfig;\nconst EntryAction = Browser.Entry.Action;\nconst { useTableRow } = Browser.Table.Column;\n\ninterface WithDisableActionProps {\n children: React.ReactNode;\n}\n\nconst WithDisableAction = ({ children }: WithDisableActionProps) => {\n // useTableRow() allows you to access the entire data of the current row.\n const { row } = useTableRow<TenantEntry>();\n const { disableEntry } = useDisableTenantDialog({ record: row.data });\n\n if (row.data.values.status === \"enabled\") {\n return (\n <EntryAction.OptionsMenuItem\n icon={<DisableIcon />}\n label={\"Disable\"}\n onAction={disableEntry}\n data-testid={\"aco.actions.entry.delete\"}\n className={\"text-destructive-primary! [&_svg]:fill-destructive\"}\n />\n );\n }\n\n return <>{children}</>;\n};\n\nconst DeleteActionDecorator = EntryAction.createDecorator(Original => {\n return function DeleteAction(props) {\n const { model } = useModel();\n\n if (model.modelId !== TENANT_MODEL_ID) {\n return <Original {...props} />;\n }\n\n if (props.name === \"delete\") {\n return (\n <Original\n {...props}\n element={<WithDisableAction>{props.element}</WithDisableAction>}\n />\n );\n }\n\n return <Original {...props} />;\n };\n});\n\nexport const TenantEntryList = () => {\n return (\n <>\n <DeleteActionDecorator />\n <ContentEntryListConfig>\n <Browser.Table.Column\n hideable={false}\n name={\"name\"}\n header={\"Name\"}\n modelIds={[TENANT_MODEL_ID]}\n cell={<TenantNameCell />}\n />\n <Browser.Table.Column\n name={\"tenant\"}\n header={\"Tenant\"}\n modelIds={[TENANT_MODEL_ID]}\n cell={<TenantCell />}\n before={\"actions\"}\n />\n </ContentEntryListConfig>\n </>\n );\n};\n"],"names":["Browser","ContentEntryListConfig","EntryAction","useTableRow","WithDisableAction","children","row","disableEntry","useDisableTenantDialog","DisableIcon","DeleteActionDecorator","Original","props","model","useModel","TENANT_MODEL_ID","TenantEntryList","TenantNameCell","TenantCell"],"mappings":";;;;;;;;AAUA,MAAM,EAAEA,SAAAA,OAAO,EAAE,GAAGC;AACpB,MAAMC,cAAcF,QAAQ,KAAK,CAAC,MAAM;AACxC,MAAM,EAAEG,aAAAA,WAAW,EAAE,GAAGH,QAAQ,KAAK,CAAC,MAAM;AAM5C,MAAMI,oBAAoB,CAAC,EAAEC,QAAQ,EAA0B;IAE3D,MAAM,EAAEC,GAAG,EAAE,GAAGH;IAChB,MAAM,EAAEI,YAAY,EAAE,GAAGC,uBAAuB;QAAE,QAAQF,IAAI,IAAI;IAAC;IAEnE,IAAIA,AAA2B,cAA3BA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EACtB,OAAO,WAAP,GACI,oBAACJ,YAAY,eAAe;QACxB,oBAAM,oBAACO,gBAAWA;QAClB,OAAO;QACP,UAAUF;QACV,eAAa;QACb,WAAW;;IAKvB,OAAO,WAAP,GAAO,0CAAGF;AACd;AAEA,MAAMK,wBAAwBR,YAAY,eAAe,CAACS,CAAAA,WAC/C,SAAsBC,KAAK;QAC9B,MAAM,EAAEC,KAAK,EAAE,GAAGC;QAElB,IAAID,MAAM,OAAO,KAAKE,iBAClB,OAAO,WAAP,GAAO,oBAACJ,UAAaC;QAGzB,IAAIA,AAAe,aAAfA,MAAM,IAAI,EACV,OAAO,WAAP,GACI,oBAACD,UAAAA;YACI,GAAGC,KAAK;YACT,uBAAS,oBAACR,mBAAiBA,MAAEQ,MAAM,OAAO;;QAKtD,OAAO,WAAP,GAAO,oBAACD,UAAaC;IACzB;AAGG,MAAMI,kBAAkB,IACpB,WAAP,GACI,wDACI,oBAACN,uBAAqBA,OAAAA,WAAAA,GACtB,oBAACT,wBAAsBA,MAAAA,WAAAA,GACnB,oBAACD,QAAQ,KAAK,CAAC,MAAM;QACjB,UAAU;QACV,MAAM;QACN,QAAQ;QACR,UAAU;YAACe;SAAgB;QAC3B,oBAAM,oBAACE,gBAAcA;sBAEzB,oBAACjB,QAAQ,KAAK,CAAC,MAAM;QACjB,MAAM;QACN,QAAQ;QACR,UAAU;YAACe;SAAgB;QAC3B,oBAAM,oBAACG,YAAUA;QACjB,QAAQ"}
|
package/admin/TenantSelector.js
CHANGED
|
@@ -1,39 +1,35 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { TenantSelector as
|
|
1
|
+
import react from "react";
|
|
2
|
+
import { TenantSelector as app_admin_TenantSelector, useAuthentication } from "@webiny/app-admin";
|
|
3
3
|
import { CopyButton, Icon, Tooltip, useToast } from "@webiny/admin-ui";
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
icon: /*#__PURE__*/React.createElement(TenantIcon, null),
|
|
33
|
-
className: "fill-neutral-xstrong"
|
|
34
|
-
}), currentTenant.name)
|
|
4
|
+
import { ReactComponent } from "@webiny/icons/business.svg";
|
|
5
|
+
const TenantSelector_TenantSelector = app_admin_TenantSelector.createDecorator(()=>function() {
|
|
6
|
+
const { identity } = useAuthentication();
|
|
7
|
+
const currentTenant = identity.currentTenant;
|
|
8
|
+
const toast = useToast();
|
|
9
|
+
const confirmClipboard = ()=>{
|
|
10
|
+
toast.showSuccessToast({
|
|
11
|
+
title: "Tenant ID copied to clipboard!"
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
return /*#__PURE__*/ react.createElement(Tooltip, {
|
|
15
|
+
content: /*#__PURE__*/ react.createElement("div", {
|
|
16
|
+
className: "flex items-center gap-x-xs"
|
|
17
|
+
}, "ID: ", currentTenant.id, /*#__PURE__*/ react.createElement(CopyButton, {
|
|
18
|
+
size: "sm",
|
|
19
|
+
value: currentTenant.id,
|
|
20
|
+
onCopy: confirmClipboard,
|
|
21
|
+
variant: "ghost-negative"
|
|
22
|
+
})),
|
|
23
|
+
side: "bottom",
|
|
24
|
+
trigger: /*#__PURE__*/ react.createElement("div", {
|
|
25
|
+
className: "flex items-center gap-x-xs cursor-pointer"
|
|
26
|
+
}, /*#__PURE__*/ react.createElement(Icon, {
|
|
27
|
+
label: "Root tenant",
|
|
28
|
+
icon: /*#__PURE__*/ react.createElement(ReactComponent, null),
|
|
29
|
+
className: "fill-neutral-xstrong"
|
|
30
|
+
}), currentTenant.name)
|
|
31
|
+
});
|
|
35
32
|
});
|
|
36
|
-
|
|
37
|
-
});
|
|
33
|
+
export { TenantSelector_TenantSelector as TenantSelector };
|
|
38
34
|
|
|
39
35
|
//# sourceMappingURL=TenantSelector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"admin/TenantSelector.js","sources":["../../src/admin/TenantSelector.tsx"],"sourcesContent":["import React from \"react\";\nimport { TenantSelector as BaseTenantSelector } from \"@webiny/app-admin\";\nimport { CopyButton, Icon, Tooltip, useToast } from \"@webiny/admin-ui\";\nimport { useAuthentication } from \"@webiny/app-admin\";\nimport { ReactComponent as TenantIcon } from \"@webiny/icons/business.svg\";\n\nexport const TenantSelector = BaseTenantSelector.createDecorator(() => {\n return function TenantSelector() {\n const { identity } = useAuthentication();\n const currentTenant = identity.currentTenant;\n const toast = useToast();\n\n const confirmClipboard = () => {\n toast.showSuccessToast({\n title: \"Tenant ID copied to clipboard!\"\n });\n };\n\n return (\n <Tooltip\n content={\n <div className={\"flex items-center gap-x-xs\"}>\n ID: {currentTenant.id}\n <CopyButton\n size=\"sm\"\n value={currentTenant.id}\n onCopy={confirmClipboard}\n variant={\"ghost-negative\"}\n />\n </div>\n }\n side={\"bottom\"}\n trigger={\n <div className={\"flex items-center gap-x-xs cursor-pointer\"}>\n <Icon\n label=\"Root tenant\"\n icon={<TenantIcon />}\n className={\"fill-neutral-xstrong\"}\n />\n {currentTenant.name}\n </div>\n }\n />\n );\n };\n});\n"],"names":["TenantSelector","BaseTenantSelector","identity","useAuthentication","currentTenant","toast","useToast","confirmClipboard","Tooltip","CopyButton","Icon","TenantIcon"],"mappings":";;;;AAMO,MAAMA,gCAAiBC,yBAAAA,eAAkC,CAAC,IACtD;QACH,MAAM,EAAEC,QAAQ,EAAE,GAAGC;QACrB,MAAMC,gBAAgBF,SAAS,aAAa;QAC5C,MAAMG,QAAQC;QAEd,MAAMC,mBAAmB;YACrBF,MAAM,gBAAgB,CAAC;gBACnB,OAAO;YACX;QACJ;QAEA,OAAO,WAAP,GACI,oBAACG,SAAOA;YACJ,uBACI,oBAAC;gBAAI,WAAW;eAA8B,QACrCJ,cAAc,EAAE,gBACrB,oBAACK,YAAUA;gBACP,MAAK;gBACL,OAAOL,cAAc,EAAE;gBACvB,QAAQG;gBACR,SAAS;;YAIrB,MAAM;YACN,uBACI,oBAAC;gBAAI,WAAW;6BACZ,oBAACG,MAAIA;gBACD,OAAM;gBACN,oBAAM,oBAACC,gBAAUA;gBACjB,WAAW;gBAEdP,cAAc,IAAI;;IAKvC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { createPermissionSchema } from "@webiny/app-admin";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
const TM_PERMISSIONS_SCHEMA = createPermissionSchema({
|
|
3
|
+
prefix: "tm",
|
|
4
|
+
fullAccess: true
|
|
5
5
|
});
|
|
6
|
+
export { TM_PERMISSIONS_SCHEMA };
|
|
6
7
|
|
|
7
8
|
//# sourceMappingURL=permissionsSchema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"admin/domain/permissionsSchema.js","sources":["../../../src/admin/domain/permissionsSchema.ts"],"sourcesContent":["import { createPermissionSchema } from \"@webiny/app-admin\";\n\nexport const TM_PERMISSIONS_SCHEMA = createPermissionSchema({\n prefix: \"tm\",\n fullAccess: true\n});\n"],"names":["TM_PERMISSIONS_SCHEMA","createPermissionSchema"],"mappings":";AAEO,MAAMA,wBAAwBC,uBAAuB;IACxD,QAAQ;IACR,YAAY;AAChB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createPermissionsAbstraction } from "@webiny/app-admin/exports/admin/security.js";
|
|
2
2
|
import { TM_PERMISSIONS_SCHEMA } from "../../domain/permissionsSchema.js";
|
|
3
|
-
|
|
3
|
+
const TmPermissions = createPermissionsAbstraction(TM_PERMISSIONS_SCHEMA);
|
|
4
|
+
export { TmPermissions };
|
|
4
5
|
|
|
5
6
|
//# sourceMappingURL=abstractions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"admin/features/permissions/abstractions.js","sources":["../../../../src/admin/features/permissions/abstractions.ts"],"sourcesContent":["import { createPermissionsAbstraction } from \"@webiny/app-admin/exports/admin/security.js\";\nimport type { Permissions } from \"@webiny/app-admin/exports/admin/security.js\";\nimport { TM_PERMISSIONS_SCHEMA } from \"~/admin/domain/permissionsSchema.js\";\n\nexport const TmPermissions = createPermissionsAbstraction(TM_PERMISSIONS_SCHEMA);\n\nexport namespace TmPermissions {\n export type Interface = Permissions<typeof TM_PERMISSIONS_SCHEMA>;\n}\n"],"names":["TmPermissions","createPermissionsAbstraction","TM_PERMISSIONS_SCHEMA"],"mappings":";;AAIO,MAAMA,gBAAgBC,6BAA6BC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createPermissionsFeature } from "@webiny/app-admin/exports/admin/security.js";
|
|
2
2
|
import { TM_PERMISSIONS_SCHEMA } from "../../domain/permissionsSchema.js";
|
|
3
3
|
import { TmPermissions } from "./abstractions.js";
|
|
4
|
-
|
|
4
|
+
const TmPermissionsFeature = createPermissionsFeature(TM_PERMISSIONS_SCHEMA, TmPermissions);
|
|
5
|
+
export { TmPermissionsFeature };
|
|
5
6
|
|
|
6
7
|
//# sourceMappingURL=feature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"admin/features/permissions/feature.js","sources":["../../../../src/admin/features/permissions/feature.ts"],"sourcesContent":["import { createPermissionsFeature } from \"@webiny/app-admin/exports/admin/security.js\";\nimport { TM_PERMISSIONS_SCHEMA } from \"~/admin/domain/permissionsSchema.js\";\nimport { TmPermissions } from \"./abstractions.js\";\n\nexport const TmPermissionsFeature = createPermissionsFeature(TM_PERMISSIONS_SCHEMA, TmPermissions);\n"],"names":["TmPermissionsFeature","createPermissionsFeature","TM_PERMISSIONS_SCHEMA","TmPermissions"],"mappings":";;;AAIO,MAAMA,uBAAuBC,yBAAyBC,uBAAuBC"}
|
package/admin/types.js
CHANGED
package/api/Extension.js
CHANGED
|
@@ -14,29 +14,26 @@ import DisableTenantSchema from "./graphql/DisableTenantSchema.js";
|
|
|
14
14
|
import EnableTenantSchema from "./graphql/EnableTenantSchema.js";
|
|
15
15
|
import GetCurrentTenantSchema from "./graphql/GetCurrentTenantSchema.js";
|
|
16
16
|
import { AddCmsPermissionsFeature } from "./features/AddCmsPermissions/feature.js";
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
UpdateTenantFeature.register(container);
|
|
37
|
-
DeleteTenantOnEntryDeleteFeature.register(container);
|
|
38
|
-
AddCmsPermissionsFeature.register(container);
|
|
39
|
-
}
|
|
17
|
+
const Extension = createFeature({
|
|
18
|
+
name: "TenantManagement",
|
|
19
|
+
register (container) {
|
|
20
|
+
container.register(TenantModel);
|
|
21
|
+
container.register(InstallTenantSchema);
|
|
22
|
+
container.register(CreateTenantSchema);
|
|
23
|
+
container.register(DisableTenantSchema);
|
|
24
|
+
container.register(EnableTenantSchema);
|
|
25
|
+
container.register(GetCurrentTenantSchema);
|
|
26
|
+
CreateAndInstallTenantFeature.register(container);
|
|
27
|
+
CreateTenantFeature.register(container);
|
|
28
|
+
DisableTenantFeature.register(container);
|
|
29
|
+
EnableTenantFeature.register(container);
|
|
30
|
+
GetTenantByIdFeature.register(container);
|
|
31
|
+
GetCurrentTenantFeature.register(container);
|
|
32
|
+
UpdateTenantFeature.register(container);
|
|
33
|
+
DeleteTenantOnEntryDeleteFeature.register(container);
|
|
34
|
+
AddCmsPermissionsFeature.register(container);
|
|
35
|
+
}
|
|
40
36
|
});
|
|
37
|
+
export { Extension };
|
|
41
38
|
|
|
42
39
|
//# sourceMappingURL=Extension.js.map
|