@webiny/tenant-manager 0.0.0-unstable.3c5210ad37
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/LICENSE +36 -0
- package/README.md +11 -0
- package/TenantManager.d.ts +2 -0
- package/TenantManager.js +12 -0
- package/TenantManager.js.map +1 -0
- package/admin/CurrentTenant/CurrentTenant.d.ts +6 -0
- package/admin/CurrentTenant/CurrentTenant.js +34 -0
- package/admin/CurrentTenant/CurrentTenant.js.map +1 -0
- package/admin/CurrentTenant/CurrentTenantGateway.d.ts +12 -0
- package/admin/CurrentTenant/CurrentTenantGateway.js +44 -0
- package/admin/CurrentTenant/CurrentTenantGateway.js.map +1 -0
- package/admin/CurrentTenant/CurrentTenantPresenter.d.ts +12 -0
- package/admin/CurrentTenant/CurrentTenantPresenter.js +30 -0
- package/admin/CurrentTenant/CurrentTenantPresenter.js.map +1 -0
- package/admin/CurrentTenant/CurrentTenantRepository.d.ts +15 -0
- package/admin/CurrentTenant/CurrentTenantRepository.js +37 -0
- package/admin/CurrentTenant/CurrentTenantRepository.js.map +1 -0
- package/admin/CurrentTenant/abstractions.d.ts +31 -0
- package/admin/CurrentTenant/abstractions.js +15 -0
- package/admin/CurrentTenant/abstractions.js.map +1 -0
- package/admin/CurrentTenant/feature.d.ts +3 -0
- package/admin/CurrentTenant/feature.js +20 -0
- package/admin/CurrentTenant/feature.js.map +1 -0
- package/admin/CurrentTenant/useCurrentTenant.d.ts +4 -0
- package/admin/CurrentTenant/useCurrentTenant.js +23 -0
- package/admin/CurrentTenant/useCurrentTenant.js.map +1 -0
- package/admin/CurrentTenantProvider.d.ts +2 -0
- package/admin/CurrentTenantProvider.js +12 -0
- package/admin/CurrentTenantProvider.js.map +1 -0
- package/admin/DisableTenant/DisableTenantGateway.d.ts +11 -0
- package/admin/DisableTenant/DisableTenantGateway.js +43 -0
- package/admin/DisableTenant/DisableTenantGateway.js.map +1 -0
- package/admin/DisableTenant/DisableTenantRepository.d.ts +10 -0
- package/admin/DisableTenant/DisableTenantRepository.js +15 -0
- package/admin/DisableTenant/DisableTenantRepository.js.map +1 -0
- package/admin/DisableTenant/DisableTenantUseCase.d.ts +10 -0
- package/admin/DisableTenant/DisableTenantUseCase.js +15 -0
- package/admin/DisableTenant/DisableTenantUseCase.js.map +1 -0
- package/admin/DisableTenant/abstractions.d.ts +21 -0
- package/admin/DisableTenant/abstractions.js +15 -0
- package/admin/DisableTenant/abstractions.js.map +1 -0
- package/admin/DisableTenant/feature.d.ts +3 -0
- package/admin/DisableTenant/feature.js +20 -0
- package/admin/DisableTenant/feature.js.map +1 -0
- package/admin/DisableTenant/index.d.ts +2 -0
- package/admin/DisableTenant/index.js +4 -0
- package/admin/DisableTenant/index.js.map +1 -0
- package/admin/DisableTenant/useDisableTenant.d.ts +4 -0
- package/admin/DisableTenant/useDisableTenant.js +27 -0
- package/admin/DisableTenant/useDisableTenant.js.map +1 -0
- package/admin/EnableTenant/EnableTenantGateway.d.ts +11 -0
- package/admin/EnableTenant/EnableTenantGateway.js +43 -0
- package/admin/EnableTenant/EnableTenantGateway.js.map +1 -0
- package/admin/EnableTenant/EnableTenantRepository.d.ts +10 -0
- package/admin/EnableTenant/EnableTenantRepository.js +15 -0
- package/admin/EnableTenant/EnableTenantRepository.js.map +1 -0
- package/admin/EnableTenant/EnableTenantUseCase.d.ts +10 -0
- package/admin/EnableTenant/EnableTenantUseCase.js +15 -0
- package/admin/EnableTenant/EnableTenantUseCase.js.map +1 -0
- package/admin/EnableTenant/abstractions.d.ts +21 -0
- package/admin/EnableTenant/abstractions.js +15 -0
- package/admin/EnableTenant/abstractions.js.map +1 -0
- package/admin/EnableTenant/feature.d.ts +3 -0
- package/admin/EnableTenant/feature.js +20 -0
- package/admin/EnableTenant/feature.js.map +1 -0
- package/admin/EnableTenant/index.d.ts +2 -0
- package/admin/EnableTenant/index.js +4 -0
- package/admin/EnableTenant/index.js.map +1 -0
- package/admin/EnableTenant/useEnableTenant.d.ts +4 -0
- package/admin/EnableTenant/useEnableTenant.js +23 -0
- package/admin/EnableTenant/useEnableTenant.js.map +1 -0
- package/admin/Extension.d.ts +2 -0
- package/admin/Extension.js +47 -0
- package/admin/Extension.js.map +1 -0
- package/admin/IsRootTenant.d.ts +13 -0
- package/admin/IsRootTenant.js +37 -0
- package/admin/IsRootTenant.js.map +1 -0
- package/admin/SecurityPermission.d.ts +2 -0
- package/admin/SecurityPermission.js +20 -0
- package/admin/SecurityPermission.js.map +1 -0
- package/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.d.ts +8 -0
- package/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.js +42 -0
- package/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.js.map +1 -0
- package/admin/TenantEntryList/EnableTenant/EnableTenant.d.ts +7 -0
- package/admin/TenantEntryList/EnableTenant/EnableTenant.js +19 -0
- package/admin/TenantEntryList/EnableTenant/EnableTenant.js.map +1 -0
- package/admin/TenantEntryList/EnableTenant/useEnableTenant.d.ts +5 -0
- package/admin/TenantEntryList/EnableTenant/useEnableTenant.js +39 -0
- package/admin/TenantEntryList/EnableTenant/useEnableTenant.js.map +1 -0
- package/admin/TenantEntryList/FolderNameCell.d.ts +7 -0
- package/admin/TenantEntryList/FolderNameCell.js +29 -0
- package/admin/TenantEntryList/FolderNameCell.js.map +1 -0
- package/admin/TenantEntryList/InstallTenantButton/InstallTenant.d.ts +7 -0
- package/admin/TenantEntryList/InstallTenantButton/InstallTenant.js +19 -0
- package/admin/TenantEntryList/InstallTenantButton/InstallTenant.js.map +1 -0
- package/admin/TenantEntryList/InstallTenantButton/installTenant.gql.d.ts +16 -0
- package/admin/TenantEntryList/InstallTenantButton/installTenant.gql.js +17 -0
- package/admin/TenantEntryList/InstallTenantButton/installTenant.gql.js.map +1 -0
- package/admin/TenantEntryList/InstallTenantButton/useInstallTenant.d.ts +5 -0
- package/admin/TenantEntryList/InstallTenantButton/useInstallTenant.js +46 -0
- package/admin/TenantEntryList/InstallTenantButton/useInstallTenant.js.map +1 -0
- package/admin/TenantEntryList/ManageTenant.d.ts +7 -0
- package/admin/TenantEntryList/ManageTenant.js +21 -0
- package/admin/TenantEntryList/ManageTenant.js.map +1 -0
- package/admin/TenantEntryList/TenantCell.d.ts +2 -0
- package/admin/TenantEntryList/TenantCell.js +39 -0
- package/admin/TenantEntryList/TenantCell.js.map +1 -0
- package/admin/TenantEntryList/TenantNameCell.d.ts +2 -0
- package/admin/TenantEntryList/TenantNameCell.js +54 -0
- package/admin/TenantEntryList/TenantNameCell.js.map +1 -0
- package/admin/TenantEntryList.d.ts +2 -0
- package/admin/TenantEntryList.js +71 -0
- package/admin/TenantEntryList.js.map +1 -0
- package/admin/TenantSelector.d.ts +2 -0
- package/admin/TenantSelector.js +39 -0
- package/admin/TenantSelector.js.map +1 -0
- package/admin/types.d.ts +7 -0
- package/admin/types.js +3 -0
- package/admin/types.js.map +1 -0
- package/api/Extension.d.ts +1 -0
- package/api/Extension.js +42 -0
- package/api/Extension.js.map +1 -0
- package/api/domain/TenantId.d.ts +3 -0
- package/api/domain/TenantId.js +12 -0
- package/api/domain/TenantId.js.map +1 -0
- package/api/domain/TenantModel.d.ts +11 -0
- package/api/domain/TenantModel.js +46 -0
- package/api/domain/TenantModel.js.map +1 -0
- package/api/domain/TenantModelExtension.d.ts +10 -0
- package/api/domain/TenantModelExtension.js +4 -0
- package/api/domain/TenantModelExtension.js.map +1 -0
- package/api/domain/errors.d.ts +33 -0
- package/api/domain/errors.js +63 -0
- package/api/domain/errors.js.map +1 -0
- package/api/features/AddCmsPermissions/AddCmsPermissions.d.ts +8 -0
- package/api/features/AddCmsPermissions/AddCmsPermissions.js +34 -0
- package/api/features/AddCmsPermissions/AddCmsPermissions.js.map +1 -0
- package/api/features/AddCmsPermissions/feature.d.ts +1 -0
- package/api/features/AddCmsPermissions/feature.js +10 -0
- package/api/features/AddCmsPermissions/feature.js.map +1 -0
- package/api/features/CreateAndInstallTenant/CreateAndInstallTenantUseCase.d.ts +24 -0
- package/api/features/CreateAndInstallTenant/CreateAndInstallTenantUseCase.js +99 -0
- package/api/features/CreateAndInstallTenant/CreateAndInstallTenantUseCase.js.map +1 -0
- package/api/features/CreateAndInstallTenant/abstractions.d.ts +26 -0
- package/api/features/CreateAndInstallTenant/abstractions.js +9 -0
- package/api/features/CreateAndInstallTenant/abstractions.js.map +1 -0
- package/api/features/CreateAndInstallTenant/feature.d.ts +1 -0
- package/api/features/CreateAndInstallTenant/feature.js +11 -0
- package/api/features/CreateAndInstallTenant/feature.js.map +1 -0
- package/api/features/CreateTenant/CreateTenantRepository.d.ts +15 -0
- package/api/features/CreateTenant/CreateTenantRepository.js +48 -0
- package/api/features/CreateTenant/CreateTenantRepository.js.map +1 -0
- package/api/features/CreateTenant/CreateTenantUseCase.d.ts +14 -0
- package/api/features/CreateTenant/CreateTenantUseCase.js +43 -0
- package/api/features/CreateTenant/CreateTenantUseCase.js.map +1 -0
- package/api/features/CreateTenant/abstractions.d.ts +41 -0
- package/api/features/CreateTenant/abstractions.js +11 -0
- package/api/features/CreateTenant/abstractions.js.map +1 -0
- package/api/features/CreateTenant/feature.d.ts +1 -0
- package/api/features/CreateTenant/feature.js +15 -0
- package/api/features/CreateTenant/feature.js.map +1 -0
- package/api/features/DeleteTenantOnEntryDelete/DeleteTenantOnEntryDeleteHandler.d.ts +11 -0
- package/api/features/DeleteTenantOnEntryDelete/DeleteTenantOnEntryDeleteHandler.js +37 -0
- package/api/features/DeleteTenantOnEntryDelete/DeleteTenantOnEntryDeleteHandler.js.map +1 -0
- package/api/features/DeleteTenantOnEntryDelete/feature.d.ts +1 -0
- package/api/features/DeleteTenantOnEntryDelete/feature.js +11 -0
- package/api/features/DeleteTenantOnEntryDelete/feature.js.map +1 -0
- package/api/features/DisableTenant/DisableTenantUseCase.d.ts +20 -0
- package/api/features/DisableTenant/DisableTenantUseCase.js +65 -0
- package/api/features/DisableTenant/DisableTenantUseCase.js.map +1 -0
- package/api/features/DisableTenant/abstractions.d.ts +19 -0
- package/api/features/DisableTenant/abstractions.js +4 -0
- package/api/features/DisableTenant/abstractions.js.map +1 -0
- package/api/features/DisableTenant/events.d.ts +27 -0
- package/api/features/DisableTenant/events.js +18 -0
- package/api/features/DisableTenant/events.js.map +1 -0
- package/api/features/DisableTenant/feature.d.ts +1 -0
- package/api/features/DisableTenant/feature.js +11 -0
- package/api/features/DisableTenant/feature.js.map +1 -0
- package/api/features/EnableTenant/EnableTenantUseCase.d.ts +20 -0
- package/api/features/EnableTenant/EnableTenantUseCase.js +67 -0
- package/api/features/EnableTenant/EnableTenantUseCase.js.map +1 -0
- package/api/features/EnableTenant/abstractions.d.ts +19 -0
- package/api/features/EnableTenant/abstractions.js +4 -0
- package/api/features/EnableTenant/abstractions.js.map +1 -0
- package/api/features/EnableTenant/events.d.ts +27 -0
- package/api/features/EnableTenant/events.js +18 -0
- package/api/features/EnableTenant/events.js.map +1 -0
- package/api/features/EnableTenant/feature.d.ts +1 -0
- package/api/features/EnableTenant/feature.js +11 -0
- package/api/features/EnableTenant/feature.js.map +1 -0
- package/api/features/GetCurrentTenant/GetCurrentTenantUseCase.d.ts +17 -0
- package/api/features/GetCurrentTenant/GetCurrentTenantUseCase.js +35 -0
- package/api/features/GetCurrentTenant/GetCurrentTenantUseCase.js.map +1 -0
- package/api/features/GetCurrentTenant/abstractions.d.ts +24 -0
- package/api/features/GetCurrentTenant/abstractions.js +10 -0
- package/api/features/GetCurrentTenant/abstractions.js.map +1 -0
- package/api/features/GetCurrentTenant/feature.d.ts +1 -0
- package/api/features/GetCurrentTenant/feature.js +11 -0
- package/api/features/GetCurrentTenant/feature.js.map +1 -0
- package/api/features/GetTenantById/GetTenantByIdRepository.d.ts +17 -0
- package/api/features/GetTenantById/GetTenantByIdRepository.js +49 -0
- package/api/features/GetTenantById/GetTenantByIdRepository.js.map +1 -0
- package/api/features/GetTenantById/GetTenantByIdUseCase.d.ts +12 -0
- package/api/features/GetTenantById/GetTenantByIdUseCase.js +27 -0
- package/api/features/GetTenantById/GetTenantByIdUseCase.js.map +1 -0
- package/api/features/GetTenantById/abstractions.d.ts +38 -0
- package/api/features/GetTenantById/abstractions.js +15 -0
- package/api/features/GetTenantById/abstractions.js.map +1 -0
- package/api/features/GetTenantById/feature.d.ts +1 -0
- package/api/features/GetTenantById/feature.js +15 -0
- package/api/features/GetTenantById/feature.js.map +1 -0
- package/api/features/UpdateTenant/UpdateTenantRepository.d.ts +17 -0
- package/api/features/UpdateTenant/UpdateTenantRepository.js +58 -0
- package/api/features/UpdateTenant/UpdateTenantRepository.js.map +1 -0
- package/api/features/UpdateTenant/UpdateTenantUseCase.d.ts +12 -0
- package/api/features/UpdateTenant/UpdateTenantUseCase.js +21 -0
- package/api/features/UpdateTenant/UpdateTenantUseCase.js.map +1 -0
- package/api/features/UpdateTenant/abstractions.d.ts +39 -0
- package/api/features/UpdateTenant/abstractions.js +15 -0
- package/api/features/UpdateTenant/abstractions.js.map +1 -0
- package/api/features/UpdateTenant/feature.d.ts +1 -0
- package/api/features/UpdateTenant/feature.js +15 -0
- package/api/features/UpdateTenant/feature.js.map +1 -0
- package/api/graphql/CreateTenantSchema.d.ts +14 -0
- package/api/graphql/CreateTenantSchema.js +77 -0
- package/api/graphql/CreateTenantSchema.js.map +1 -0
- package/api/graphql/DisableTenantSchema.d.ts +8 -0
- package/api/graphql/DisableTenantSchema.js +35 -0
- package/api/graphql/DisableTenantSchema.js.map +1 -0
- package/api/graphql/EnableTenantSchema.d.ts +8 -0
- package/api/graphql/EnableTenantSchema.js +35 -0
- package/api/graphql/EnableTenantSchema.js.map +1 -0
- package/api/graphql/GetCurrentTenantSchema.d.ts +8 -0
- package/api/graphql/GetCurrentTenantSchema.js +53 -0
- package/api/graphql/GetCurrentTenantSchema.js.map +1 -0
- package/api/graphql/InstallTenantSchema.d.ts +8 -0
- package/api/graphql/InstallTenantSchema.js +50 -0
- package/api/graphql/InstallTenantSchema.js.map +1 -0
- package/exports/admin/tenancy.d.ts +7 -0
- package/exports/admin/tenancy.js +8 -0
- package/exports/admin/tenancy.js.map +1 -0
- package/exports/api/tenant-manager.d.ts +2 -0
- package/exports/api/tenant-manager.js +3 -0
- package/exports/api/tenant-manager.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +3 -0
- package/index.js.map +1 -0
- package/package.json +44 -0
- package/shared/Tenant.d.ts +21 -0
- package/shared/Tenant.js +26 -0
- package/shared/Tenant.js.map +1 -0
- package/shared/constants.d.ts +1 -0
- package/shared/constants.js +3 -0
- package/shared/constants.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createAbstraction","DisableTenantUseCase","DisableTenantRepository","DisableTenantGateway"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\n\n// UseCase abstraction - only execute method\nexport interface IDisableTenantUseCase {\n execute(tenantId: string): Promise<void>;\n}\n\nexport const DisableTenantUseCase =\n createAbstraction<IDisableTenantUseCase>(\"DisableTenantUseCase\");\n\nexport namespace DisableTenantUseCase {\n export type Interface = IDisableTenantUseCase;\n}\n\n// Repository abstraction - delegates to gateway\nexport interface IDisableTenantRepository {\n execute(tenantId: string): Promise<void>;\n}\n\nexport const DisableTenantRepository =\n createAbstraction<IDisableTenantRepository>(\"DisableTenantRepository\");\n\nexport namespace DisableTenantRepository {\n export type Interface = IDisableTenantRepository;\n}\n\n// Gateway abstraction - GraphQL call\nexport interface IDisableTenantGateway {\n disableTenant(tenantId: string): Promise<boolean>;\n}\n\nexport const DisableTenantGateway =\n createAbstraction<IDisableTenantGateway>(\"DisableTenantGateway\");\n\nexport namespace DisableTenantGateway {\n export type Interface = IDisableTenantGateway;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,uBAAuB;;AAEzD;;AAKA,OAAO,MAAMC,oBAAoB,GAC7BD,iBAAiB,CAAwB,sBAAsB,CAAC;;AAMpE;;AAKA,OAAO,MAAME,uBAAuB,GAChCF,iBAAiB,CAA2B,yBAAyB,CAAC;;AAM1E;;AAKA,OAAO,MAAMG,oBAAoB,GAC7BH,iBAAiB,CAAwB,sBAAsB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/admin";
|
|
2
|
+
import { DisableTenantUseCase as UseCaseAbstraction } from "./abstractions.js";
|
|
3
|
+
import { DisableTenantUseCase } from "./DisableTenantUseCase.js";
|
|
4
|
+
import { DisableTenantRepository } from "./DisableTenantRepository.js";
|
|
5
|
+
import { DisableTenantGateway } from "./DisableTenantGateway.js";
|
|
6
|
+
export const DisableTenantFeature = createFeature({
|
|
7
|
+
name: "DisableTenant",
|
|
8
|
+
register(container) {
|
|
9
|
+
container.register(DisableTenantUseCase);
|
|
10
|
+
container.register(DisableTenantRepository).inSingletonScope();
|
|
11
|
+
container.register(DisableTenantGateway).inSingletonScope();
|
|
12
|
+
},
|
|
13
|
+
resolve(container) {
|
|
14
|
+
return {
|
|
15
|
+
useCase: container.resolve(UseCaseAbstraction)
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFeature","DisableTenantUseCase","UseCaseAbstraction","DisableTenantRepository","DisableTenantGateway","DisableTenantFeature","name","register","container","inSingletonScope","resolve","useCase"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { DisableTenantUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { DisableTenantUseCase } from \"./DisableTenantUseCase.js\";\nimport { DisableTenantRepository } from \"./DisableTenantRepository.js\";\nimport { DisableTenantGateway } from \"./DisableTenantGateway.js\";\n\nexport const DisableTenantFeature = createFeature({\n name: \"DisableTenant\",\n register(container) {\n container.register(DisableTenantUseCase);\n container.register(DisableTenantRepository).inSingletonScope();\n container.register(DisableTenantGateway).inSingletonScope();\n },\n resolve(container) {\n return {\n useCase: container.resolve(UseCaseAbstraction)\n };\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,uBAAuB;AACrD,SAASC,oBAAoB,IAAIC,kBAAkB;AACnD,SAASD,oBAAoB;AAC7B,SAASE,uBAAuB;AAChC,SAASC,oBAAoB;AAE7B,OAAO,MAAMC,oBAAoB,GAAGL,aAAa,CAAC;EAC9CM,IAAI,EAAE,eAAe;EACrBC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACN,oBAAoB,CAAC;IACxCO,SAAS,CAACD,QAAQ,CAACJ,uBAAuB,CAAC,CAACM,gBAAgB,CAAC,CAAC;IAC9DD,SAAS,CAACD,QAAQ,CAACH,oBAAoB,CAAC,CAACK,gBAAgB,CAAC,CAAC;EAC/D,CAAC;EACDC,OAAOA,CAACF,SAAS,EAAE;IACf,OAAO;MACHG,OAAO,EAAEH,SAAS,CAACE,OAAO,CAACR,kBAAkB;IACjD,CAAC;EACL;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DisableTenantFeature","useDisableTenant"],"sources":["index.ts"],"sourcesContent":["export { DisableTenantFeature } from \"./feature.js\";\nexport { useDisableTenant } from \"./useDisableTenant.js\";\n"],"mappings":"AAAA,SAASA,oBAAoB;AAC7B,SAASC,gBAAgB","ignoreList":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { useCallback } from "react";
|
|
2
|
+
import { useFeature } from "@webiny/app-admin";
|
|
3
|
+
import { DisableTenantFeature } from "./feature.js";
|
|
4
|
+
import { useRecords } from "@webiny/app-aco";
|
|
5
|
+
export const useDisableTenant = tenant => {
|
|
6
|
+
const {
|
|
7
|
+
useCase
|
|
8
|
+
} = useFeature(DisableTenantFeature);
|
|
9
|
+
const {
|
|
10
|
+
updateRecordInCache
|
|
11
|
+
} = useRecords();
|
|
12
|
+
const disableTenant = useCallback(async () => {
|
|
13
|
+
await useCase.execute(tenant.entryId);
|
|
14
|
+
updateRecordInCache({
|
|
15
|
+
...tenant,
|
|
16
|
+
values: {
|
|
17
|
+
...tenant.values,
|
|
18
|
+
status: "disabled"
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}, [useCase, tenant]);
|
|
22
|
+
return {
|
|
23
|
+
disableTenant
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=useDisableTenant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useFeature","DisableTenantFeature","useRecords","useDisableTenant","tenant","useCase","updateRecordInCache","disableTenant","execute","entryId","values","status"],"sources":["useDisableTenant.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useFeature } from \"@webiny/app-admin\";\nimport { DisableTenantFeature } from \"./feature.js\";\nimport { useRecords } from \"@webiny/app-aco\";\nimport type { TenantEntry } from \"~/admin/types.js\";\n\nexport const useDisableTenant = (tenant: TenantEntry) => {\n const { useCase } = useFeature(DisableTenantFeature);\n const { updateRecordInCache } = useRecords();\n\n const disableTenant = useCallback(async () => {\n await useCase.execute(tenant.entryId);\n\n updateRecordInCache({\n ...tenant,\n values: {\n ...tenant.values,\n status: \"disabled\"\n }\n });\n }, [useCase, tenant]);\n\n return { disableTenant };\n};\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,SAASC,UAAU,QAAQ,mBAAmB;AAC9C,SAASC,oBAAoB;AAC7B,SAASC,UAAU,QAAQ,iBAAiB;AAG5C,OAAO,MAAMC,gBAAgB,GAAIC,MAAmB,IAAK;EACrD,MAAM;IAAEC;EAAQ,CAAC,GAAGL,UAAU,CAACC,oBAAoB,CAAC;EACpD,MAAM;IAAEK;EAAoB,CAAC,GAAGJ,UAAU,CAAC,CAAC;EAE5C,MAAMK,aAAa,GAAGR,WAAW,CAAC,YAAY;IAC1C,MAAMM,OAAO,CAACG,OAAO,CAACJ,MAAM,CAACK,OAAO,CAAC;IAErCH,mBAAmB,CAAC;MAChB,GAAGF,MAAM;MACTM,MAAM,EAAE;QACJ,GAAGN,MAAM,CAACM,MAAM;QAChBC,MAAM,EAAE;MACZ;IACJ,CAAC,CAAC;EACN,CAAC,EAAE,CAACN,OAAO,EAAED,MAAM,CAAC,CAAC;EAErB,OAAO;IAAEG;EAAc,CAAC;AAC5B,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { GraphQLClient } from "@webiny/app/features/graphqlClient/index.js";
|
|
2
|
+
import { EnableTenantGateway as GatewayAbstraction } from "./abstractions.js";
|
|
3
|
+
declare class EnableTenantGraphQLGateway implements GatewayAbstraction.Interface {
|
|
4
|
+
private client;
|
|
5
|
+
constructor(client: GraphQLClient.Interface);
|
|
6
|
+
enableTenant(tenantId: string): Promise<boolean>;
|
|
7
|
+
}
|
|
8
|
+
export declare const EnableTenantGateway: typeof EnableTenantGraphQLGateway & {
|
|
9
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IEnableTenantGateway>;
|
|
10
|
+
};
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { GraphQLClient } from "@webiny/app/features/graphqlClient/index.js";
|
|
2
|
+
import { EnableTenantGateway as GatewayAbstraction } from "./abstractions.js";
|
|
3
|
+
const ENABLE_TENANT = /* GraphQL */`
|
|
4
|
+
mutation EnableTenant($tenantId: ID!) {
|
|
5
|
+
tenantManager {
|
|
6
|
+
enableTenant(tenantId: $tenantId) {
|
|
7
|
+
data
|
|
8
|
+
error {
|
|
9
|
+
code
|
|
10
|
+
message
|
|
11
|
+
data
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
`;
|
|
17
|
+
class EnableTenantGraphQLGateway {
|
|
18
|
+
constructor(client) {
|
|
19
|
+
this.client = client;
|
|
20
|
+
}
|
|
21
|
+
async enableTenant(tenantId) {
|
|
22
|
+
const response = await this.client.execute({
|
|
23
|
+
query: ENABLE_TENANT,
|
|
24
|
+
variables: {
|
|
25
|
+
tenantId
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
const envelope = response.tenantManager.enableTenant;
|
|
29
|
+
if (envelope.error) {
|
|
30
|
+
throw new Error(envelope.error.message);
|
|
31
|
+
}
|
|
32
|
+
if (!envelope.data) {
|
|
33
|
+
throw new Error("Unable to enable tenant");
|
|
34
|
+
}
|
|
35
|
+
return envelope.data;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export const EnableTenantGateway = GatewayAbstraction.createImplementation({
|
|
39
|
+
implementation: EnableTenantGraphQLGateway,
|
|
40
|
+
dependencies: [GraphQLClient]
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=EnableTenantGateway.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["GraphQLClient","EnableTenantGateway","GatewayAbstraction","ENABLE_TENANT","EnableTenantGraphQLGateway","constructor","client","enableTenant","tenantId","response","execute","query","variables","envelope","tenantManager","error","Error","message","data","createImplementation","implementation","dependencies"],"sources":["EnableTenantGateway.ts"],"sourcesContent":["import { GraphQLClient } from \"@webiny/app/features/graphqlClient/index.js\";\nimport { EnableTenantGateway as GatewayAbstraction } from \"./abstractions.js\";\n\nconst ENABLE_TENANT = /* GraphQL */ `\n mutation EnableTenant($tenantId: ID!) {\n tenantManager {\n enableTenant(tenantId: $tenantId) {\n data\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\n\ntype EnableTenantResponse = {\n tenantManager: {\n enableTenant:\n | {\n data: boolean;\n error: null;\n }\n | {\n data: null;\n error: {\n code: string;\n message: string;\n data: Record<string, any>;\n };\n };\n };\n};\n\nclass EnableTenantGraphQLGateway implements GatewayAbstraction.Interface {\n constructor(private client: GraphQLClient.Interface) {}\n\n async enableTenant(tenantId: string): Promise<boolean> {\n const response = await this.client.execute<EnableTenantResponse>({\n query: ENABLE_TENANT,\n variables: { tenantId }\n });\n\n const envelope = response.tenantManager.enableTenant;\n if (envelope.error) {\n throw new Error(envelope.error.message);\n }\n\n if (!envelope.data) {\n throw new Error(\"Unable to enable tenant\");\n }\n\n return envelope.data;\n }\n}\n\nexport const EnableTenantGateway = GatewayAbstraction.createImplementation({\n implementation: EnableTenantGraphQLGateway,\n dependencies: [GraphQLClient]\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,6CAA6C;AAC3E,SAASC,mBAAmB,IAAIC,kBAAkB;AAElD,MAAMC,aAAa,GAAG,aAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAoBD,MAAMC,0BAA0B,CAAyC;EACrEC,WAAWA,CAASC,MAA+B,EAAE;IAAA,KAAjCA,MAA+B,GAA/BA,MAA+B;EAAG;EAEtD,MAAMC,YAAYA,CAACC,QAAgB,EAAoB;IACnD,MAAMC,QAAQ,GAAG,MAAM,IAAI,CAACH,MAAM,CAACI,OAAO,CAAuB;MAC7DC,KAAK,EAAER,aAAa;MACpBS,SAAS,EAAE;QAAEJ;MAAS;IAC1B,CAAC,CAAC;IAEF,MAAMK,QAAQ,GAAGJ,QAAQ,CAACK,aAAa,CAACP,YAAY;IACpD,IAAIM,QAAQ,CAACE,KAAK,EAAE;MAChB,MAAM,IAAIC,KAAK,CAACH,QAAQ,CAACE,KAAK,CAACE,OAAO,CAAC;IAC3C;IAEA,IAAI,CAACJ,QAAQ,CAACK,IAAI,EAAE;MAChB,MAAM,IAAIF,KAAK,CAAC,yBAAyB,CAAC;IAC9C;IAEA,OAAOH,QAAQ,CAACK,IAAI;EACxB;AACJ;AAEA,OAAO,MAAMjB,mBAAmB,GAAGC,kBAAkB,CAACiB,oBAAoB,CAAC;EACvEC,cAAc,EAAEhB,0BAA0B;EAC1CiB,YAAY,EAAE,CAACrB,aAAa;AAChC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { EnableTenantRepository as RepositoryAbstraction, EnableTenantGateway } from "./abstractions.js";
|
|
2
|
+
declare class EnableTenantRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
3
|
+
private gateway;
|
|
4
|
+
constructor(gateway: EnableTenantGateway.Interface);
|
|
5
|
+
execute(tenantId: string): Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
export declare const EnableTenantRepository: typeof EnableTenantRepositoryImpl & {
|
|
8
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IEnableTenantRepository>;
|
|
9
|
+
};
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EnableTenantRepository as RepositoryAbstraction, EnableTenantGateway } from "./abstractions.js";
|
|
2
|
+
class EnableTenantRepositoryImpl {
|
|
3
|
+
constructor(gateway) {
|
|
4
|
+
this.gateway = gateway;
|
|
5
|
+
}
|
|
6
|
+
async execute(tenantId) {
|
|
7
|
+
await this.gateway.enableTenant(tenantId);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export const EnableTenantRepository = RepositoryAbstraction.createImplementation({
|
|
11
|
+
implementation: EnableTenantRepositoryImpl,
|
|
12
|
+
dependencies: [EnableTenantGateway]
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=EnableTenantRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["EnableTenantRepository","RepositoryAbstraction","EnableTenantGateway","EnableTenantRepositoryImpl","constructor","gateway","execute","tenantId","enableTenant","createImplementation","implementation","dependencies"],"sources":["EnableTenantRepository.ts"],"sourcesContent":["import {\n EnableTenantRepository as RepositoryAbstraction,\n EnableTenantGateway\n} from \"./abstractions.js\";\n\nclass EnableTenantRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(private gateway: EnableTenantGateway.Interface) {}\n\n async execute(tenantId: string): Promise<void> {\n await this.gateway.enableTenant(tenantId);\n }\n}\n\nexport const EnableTenantRepository = RepositoryAbstraction.createImplementation({\n implementation: EnableTenantRepositoryImpl,\n dependencies: [EnableTenantGateway]\n});\n"],"mappings":"AAAA,SACIA,sBAAsB,IAAIC,qBAAqB,EAC/CC,mBAAmB;AAGvB,MAAMC,0BAA0B,CAA4C;EACxEC,WAAWA,CAASC,OAAsC,EAAE;IAAA,KAAxCA,OAAsC,GAAtCA,OAAsC;EAAG;EAE7D,MAAMC,OAAOA,CAACC,QAAgB,EAAiB;IAC3C,MAAM,IAAI,CAACF,OAAO,CAACG,YAAY,CAACD,QAAQ,CAAC;EAC7C;AACJ;AAEA,OAAO,MAAMP,sBAAsB,GAAGC,qBAAqB,CAACQ,oBAAoB,CAAC;EAC7EC,cAAc,EAAEP,0BAA0B;EAC1CQ,YAAY,EAAE,CAACT,mBAAmB;AACtC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { EnableTenantUseCase as UseCaseAbstraction, EnableTenantRepository } from "./abstractions.js";
|
|
2
|
+
declare class EnableTenantUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
3
|
+
private repository;
|
|
4
|
+
constructor(repository: EnableTenantRepository.Interface);
|
|
5
|
+
execute(tenantId: string): Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
export declare const EnableTenantUseCase: typeof EnableTenantUseCaseImpl & {
|
|
8
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IEnableTenantUseCase>;
|
|
9
|
+
};
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EnableTenantUseCase as UseCaseAbstraction, EnableTenantRepository } from "./abstractions.js";
|
|
2
|
+
class EnableTenantUseCaseImpl {
|
|
3
|
+
constructor(repository) {
|
|
4
|
+
this.repository = repository;
|
|
5
|
+
}
|
|
6
|
+
async execute(tenantId) {
|
|
7
|
+
return this.repository.execute(tenantId);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export const EnableTenantUseCase = UseCaseAbstraction.createImplementation({
|
|
11
|
+
implementation: EnableTenantUseCaseImpl,
|
|
12
|
+
dependencies: [EnableTenantRepository]
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=EnableTenantUseCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["EnableTenantUseCase","UseCaseAbstraction","EnableTenantRepository","EnableTenantUseCaseImpl","constructor","repository","execute","tenantId","createImplementation","implementation","dependencies"],"sources":["EnableTenantUseCase.ts"],"sourcesContent":["import {\n EnableTenantUseCase as UseCaseAbstraction,\n EnableTenantRepository\n} from \"./abstractions.js\";\n\nclass EnableTenantUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: EnableTenantRepository.Interface) {}\n\n async execute(tenantId: string): Promise<void> {\n return this.repository.execute(tenantId);\n }\n}\n\nexport const EnableTenantUseCase = UseCaseAbstraction.createImplementation({\n implementation: EnableTenantUseCaseImpl,\n dependencies: [EnableTenantRepository]\n});\n"],"mappings":"AAAA,SACIA,mBAAmB,IAAIC,kBAAkB,EACzCC,sBAAsB;AAG1B,MAAMC,uBAAuB,CAAyC;EAClEC,WAAWA,CAASC,UAA4C,EAAE;IAAA,KAA9CA,UAA4C,GAA5CA,UAA4C;EAAG;EAEnE,MAAMC,OAAOA,CAACC,QAAgB,EAAiB;IAC3C,OAAO,IAAI,CAACF,UAAU,CAACC,OAAO,CAACC,QAAQ,CAAC;EAC5C;AACJ;AAEA,OAAO,MAAMP,mBAAmB,GAAGC,kBAAkB,CAACO,oBAAoB,CAAC;EACvEC,cAAc,EAAEN,uBAAuB;EACvCO,YAAY,EAAE,CAACR,sBAAsB;AACzC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface IEnableTenantUseCase {
|
|
2
|
+
execute(tenantId: string): Promise<void>;
|
|
3
|
+
}
|
|
4
|
+
export declare const EnableTenantUseCase: import("@webiny/di").Abstraction<IEnableTenantUseCase>;
|
|
5
|
+
export declare namespace EnableTenantUseCase {
|
|
6
|
+
type Interface = IEnableTenantUseCase;
|
|
7
|
+
}
|
|
8
|
+
export interface IEnableTenantRepository {
|
|
9
|
+
execute(tenantId: string): Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
export declare const EnableTenantRepository: import("@webiny/di").Abstraction<IEnableTenantRepository>;
|
|
12
|
+
export declare namespace EnableTenantRepository {
|
|
13
|
+
type Interface = IEnableTenantRepository;
|
|
14
|
+
}
|
|
15
|
+
export interface IEnableTenantGateway {
|
|
16
|
+
enableTenant(tenantId: string): Promise<boolean>;
|
|
17
|
+
}
|
|
18
|
+
export declare const EnableTenantGateway: import("@webiny/di").Abstraction<IEnableTenantGateway>;
|
|
19
|
+
export declare namespace EnableTenantGateway {
|
|
20
|
+
type Interface = IEnableTenantGateway;
|
|
21
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { createAbstraction } from "@webiny/feature/admin";
|
|
2
|
+
|
|
3
|
+
// UseCase abstraction - only execute method
|
|
4
|
+
|
|
5
|
+
export const EnableTenantUseCase = createAbstraction("EnableTenantUseCase");
|
|
6
|
+
|
|
7
|
+
// Repository abstraction - delegates to gateway
|
|
8
|
+
|
|
9
|
+
export const EnableTenantRepository = createAbstraction("EnableTenantRepository");
|
|
10
|
+
|
|
11
|
+
// Gateway abstraction - GraphQL call
|
|
12
|
+
|
|
13
|
+
export const EnableTenantGateway = createAbstraction("EnableTenantGateway");
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=abstractions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createAbstraction","EnableTenantUseCase","EnableTenantRepository","EnableTenantGateway"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\n\n// UseCase abstraction - only execute method\nexport interface IEnableTenantUseCase {\n execute(tenantId: string): Promise<void>;\n}\n\nexport const EnableTenantUseCase = createAbstraction<IEnableTenantUseCase>(\"EnableTenantUseCase\");\n\nexport namespace EnableTenantUseCase {\n export type Interface = IEnableTenantUseCase;\n}\n\n// Repository abstraction - delegates to gateway\nexport interface IEnableTenantRepository {\n execute(tenantId: string): Promise<void>;\n}\n\nexport const EnableTenantRepository =\n createAbstraction<IEnableTenantRepository>(\"EnableTenantRepository\");\n\nexport namespace EnableTenantRepository {\n export type Interface = IEnableTenantRepository;\n}\n\n// Gateway abstraction - GraphQL call\nexport interface IEnableTenantGateway {\n enableTenant(tenantId: string): Promise<boolean>;\n}\n\nexport const EnableTenantGateway = createAbstraction<IEnableTenantGateway>(\"EnableTenantGateway\");\n\nexport namespace EnableTenantGateway {\n export type Interface = IEnableTenantGateway;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,uBAAuB;;AAEzD;;AAKA,OAAO,MAAMC,mBAAmB,GAAGD,iBAAiB,CAAuB,qBAAqB,CAAC;;AAMjG;;AAKA,OAAO,MAAME,sBAAsB,GAC/BF,iBAAiB,CAA0B,wBAAwB,CAAC;;AAMxE;;AAKA,OAAO,MAAMG,mBAAmB,GAAGH,iBAAiB,CAAuB,qBAAqB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/admin";
|
|
2
|
+
import { EnableTenantUseCase as UseCaseAbstraction } from "./abstractions.js";
|
|
3
|
+
import { EnableTenantUseCase } from "./EnableTenantUseCase.js";
|
|
4
|
+
import { EnableTenantRepository } from "./EnableTenantRepository.js";
|
|
5
|
+
import { EnableTenantGateway } from "./EnableTenantGateway.js";
|
|
6
|
+
export const EnableTenantFeature = createFeature({
|
|
7
|
+
name: "EnableTenant",
|
|
8
|
+
register(container) {
|
|
9
|
+
container.register(EnableTenantUseCase);
|
|
10
|
+
container.register(EnableTenantRepository).inSingletonScope();
|
|
11
|
+
container.register(EnableTenantGateway).inSingletonScope();
|
|
12
|
+
},
|
|
13
|
+
resolve(container) {
|
|
14
|
+
return {
|
|
15
|
+
useCase: container.resolve(UseCaseAbstraction)
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFeature","EnableTenantUseCase","UseCaseAbstraction","EnableTenantRepository","EnableTenantGateway","EnableTenantFeature","name","register","container","inSingletonScope","resolve","useCase"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { EnableTenantUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { EnableTenantUseCase } from \"./EnableTenantUseCase.js\";\nimport { EnableTenantRepository } from \"./EnableTenantRepository.js\";\nimport { EnableTenantGateway } from \"./EnableTenantGateway.js\";\n\nexport const EnableTenantFeature = createFeature({\n name: \"EnableTenant\",\n register(container) {\n container.register(EnableTenantUseCase);\n container.register(EnableTenantRepository).inSingletonScope();\n container.register(EnableTenantGateway).inSingletonScope();\n },\n resolve(container) {\n return {\n useCase: container.resolve(UseCaseAbstraction)\n };\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,uBAAuB;AACrD,SAASC,mBAAmB,IAAIC,kBAAkB;AAClD,SAASD,mBAAmB;AAC5B,SAASE,sBAAsB;AAC/B,SAASC,mBAAmB;AAE5B,OAAO,MAAMC,mBAAmB,GAAGL,aAAa,CAAC;EAC7CM,IAAI,EAAE,cAAc;EACpBC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACN,mBAAmB,CAAC;IACvCO,SAAS,CAACD,QAAQ,CAACJ,sBAAsB,CAAC,CAACM,gBAAgB,CAAC,CAAC;IAC7DD,SAAS,CAACD,QAAQ,CAACH,mBAAmB,CAAC,CAACK,gBAAgB,CAAC,CAAC;EAC9D,CAAC;EACDC,OAAOA,CAACF,SAAS,EAAE;IACf,OAAO;MACHG,OAAO,EAAEH,SAAS,CAACE,OAAO,CAACR,kBAAkB;IACjD,CAAC;EACL;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["EnableTenantFeature","useEnableTenant"],"sources":["index.ts"],"sourcesContent":["export { EnableTenantFeature } from \"./feature.js\";\nexport { useEnableTenant } from \"./useEnableTenant.js\";\n"],"mappings":"AAAA,SAASA,mBAAmB;AAC5B,SAASC,eAAe","ignoreList":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { useState, useCallback } from "react";
|
|
2
|
+
import { useFeature } from "@webiny/app-admin";
|
|
3
|
+
import { EnableTenantFeature } from "./feature.js";
|
|
4
|
+
export const useEnableTenant = () => {
|
|
5
|
+
const {
|
|
6
|
+
useCase
|
|
7
|
+
} = useFeature(EnableTenantFeature);
|
|
8
|
+
const [loading, setLoading] = useState(false);
|
|
9
|
+
const enableTenant = useCallback(async tenantId => {
|
|
10
|
+
setLoading(true);
|
|
11
|
+
try {
|
|
12
|
+
await useCase.execute(tenantId);
|
|
13
|
+
} finally {
|
|
14
|
+
setLoading(false);
|
|
15
|
+
}
|
|
16
|
+
}, [useCase]);
|
|
17
|
+
return {
|
|
18
|
+
enableTenant,
|
|
19
|
+
loading
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=useEnableTenant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useState","useCallback","useFeature","EnableTenantFeature","useEnableTenant","useCase","loading","setLoading","enableTenant","tenantId","execute"],"sources":["useEnableTenant.ts"],"sourcesContent":["import { useState, useCallback } from \"react\";\nimport { useFeature } from \"@webiny/app-admin\";\nimport { EnableTenantFeature } from \"./feature.js\";\n\nexport const useEnableTenant = () => {\n const { useCase } = useFeature(EnableTenantFeature);\n const [loading, setLoading] = useState(false);\n\n const enableTenant = useCallback(\n async (tenantId: string) => {\n setLoading(true);\n\n try {\n await useCase.execute(tenantId);\n } finally {\n setLoading(false);\n }\n },\n [useCase]\n );\n\n return { enableTenant, loading };\n};\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,WAAW,QAAQ,OAAO;AAC7C,SAASC,UAAU,QAAQ,mBAAmB;AAC9C,SAASC,mBAAmB;AAE5B,OAAO,MAAMC,eAAe,GAAGA,CAAA,KAAM;EACjC,MAAM;IAAEC;EAAQ,CAAC,GAAGH,UAAU,CAACC,mBAAmB,CAAC;EACnD,MAAM,CAACG,OAAO,EAAEC,UAAU,CAAC,GAAGP,QAAQ,CAAC,KAAK,CAAC;EAE7C,MAAMQ,YAAY,GAAGP,WAAW,CAC5B,MAAOQ,QAAgB,IAAK;IACxBF,UAAU,CAAC,IAAI,CAAC;IAEhB,IAAI;MACA,MAAMF,OAAO,CAACK,OAAO,CAACD,QAAQ,CAAC;IACnC,CAAC,SAAS;MACNF,UAAU,CAAC,KAAK,CAAC;IACrB;EACJ,CAAC,EACD,CAACF,OAAO,CACZ,CAAC;EAED,OAAO;IAAEG,YAAY;IAAEF;EAAQ,CAAC;AACpC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { AdminConfig, HasPermission, RegisterFeature } from "@webiny/app-admin";
|
|
3
|
+
import { useRouter } from "@webiny/app-admin";
|
|
4
|
+
import { Routes } from "@webiny/app-headless-cms";
|
|
5
|
+
import { ReactComponent as TenantIcon } from "@webiny/icons/business.svg";
|
|
6
|
+
import { TenantEntryList } from "./TenantEntryList.js";
|
|
7
|
+
import { CurrentTenantProvider } from "./CurrentTenantProvider.js";
|
|
8
|
+
import { CurrentTenantFeature } from "./CurrentTenant/feature.js";
|
|
9
|
+
import { DisableTenantFeature } from "./DisableTenant/index.js";
|
|
10
|
+
import { EnableTenantFeature } from "./EnableTenant/index.js";
|
|
11
|
+
import { TenantSelector } from "./TenantSelector.js";
|
|
12
|
+
import { IsRootTenant } from "./IsRootTenant.js";
|
|
13
|
+
import { TENANT_MODEL_ID } from "../shared/constants.js";
|
|
14
|
+
import { SecurityPermission } from "./SecurityPermission.js";
|
|
15
|
+
const {
|
|
16
|
+
Menu
|
|
17
|
+
} = AdminConfig;
|
|
18
|
+
export const Extension = () => {
|
|
19
|
+
const {
|
|
20
|
+
getLink
|
|
21
|
+
} = useRouter();
|
|
22
|
+
const link = getLink(Routes.ContentEntries.List, {
|
|
23
|
+
modelId: TENANT_MODEL_ID
|
|
24
|
+
});
|
|
25
|
+
const icon = /*#__PURE__*/React.createElement(Menu.Link.Icon, {
|
|
26
|
+
element: /*#__PURE__*/React.createElement(TenantIcon, null),
|
|
27
|
+
label: "Tenant"
|
|
28
|
+
});
|
|
29
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(RegisterFeature, {
|
|
30
|
+
feature: CurrentTenantFeature
|
|
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
|
+
feature: DisableTenantFeature
|
|
33
|
+
}), /*#__PURE__*/React.createElement(RegisterFeature, {
|
|
34
|
+
feature: EnableTenantFeature
|
|
35
|
+
}), /*#__PURE__*/React.createElement(HasPermission, {
|
|
36
|
+
name: "tm.tenant"
|
|
37
|
+
}, /*#__PURE__*/React.createElement(Menu, {
|
|
38
|
+
name: "tenantManager",
|
|
39
|
+
element: /*#__PURE__*/React.createElement(Menu.Link, {
|
|
40
|
+
text: "Tenant Manager",
|
|
41
|
+
icon: icon,
|
|
42
|
+
to: link
|
|
43
|
+
})
|
|
44
|
+
})))));
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
//# sourceMappingURL=Extension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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,13 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { Tenant } from "../shared/Tenant.js";
|
|
3
|
+
interface IsTenantProps {
|
|
4
|
+
condition(tenant: Tenant): boolean;
|
|
5
|
+
children: React.ReactNode;
|
|
6
|
+
}
|
|
7
|
+
interface RootTenantProps {
|
|
8
|
+
children: React.ReactNode;
|
|
9
|
+
}
|
|
10
|
+
export declare const IsTenant: ({ condition, children }: IsTenantProps) => React.JSX.Element | null;
|
|
11
|
+
export declare const IsRootTenant: ({ children }: RootTenantProps) => React.JSX.Element;
|
|
12
|
+
export declare const IsNotRootTenant: ({ children }: RootTenantProps) => React.JSX.Element;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React, { Fragment } from "react";
|
|
2
|
+
import { useAuthentication } from "@webiny/app-admin";
|
|
3
|
+
import { useCurrentTenant } from "./CurrentTenant/useCurrentTenant.js";
|
|
4
|
+
export const IsTenant = ({
|
|
5
|
+
condition,
|
|
6
|
+
children
|
|
7
|
+
}) => {
|
|
8
|
+
const {
|
|
9
|
+
identity
|
|
10
|
+
} = useAuthentication();
|
|
11
|
+
const {
|
|
12
|
+
tenant
|
|
13
|
+
} = useCurrentTenant();
|
|
14
|
+
if (!identity.isAuthenticated) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
if (!condition(tenant)) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
return /*#__PURE__*/React.createElement(Fragment, null, children);
|
|
21
|
+
};
|
|
22
|
+
export const IsRootTenant = ({
|
|
23
|
+
children
|
|
24
|
+
}) => {
|
|
25
|
+
return /*#__PURE__*/React.createElement(IsTenant, {
|
|
26
|
+
condition: tenant => tenant.id === "root"
|
|
27
|
+
}, children);
|
|
28
|
+
};
|
|
29
|
+
export const IsNotRootTenant = ({
|
|
30
|
+
children
|
|
31
|
+
}) => {
|
|
32
|
+
return /*#__PURE__*/React.createElement(IsTenant, {
|
|
33
|
+
condition: tenant => tenant.id !== "root"
|
|
34
|
+
}, children);
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=IsRootTenant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Fragment","useAuthentication","useCurrentTenant","IsTenant","condition","children","identity","tenant","isAuthenticated","createElement","IsRootTenant","id","IsNotRootTenant"],"sources":["IsRootTenant.tsx"],"sourcesContent":["import React, { Fragment } from \"react\";\nimport { useAuthentication } from \"@webiny/app-admin\";\nimport type { Tenant } from \"../shared/Tenant.js\";\nimport { useCurrentTenant } from \"./CurrentTenant/useCurrentTenant.js\";\n\ninterface IsTenantProps {\n condition(tenant: Tenant): boolean;\n children: React.ReactNode;\n}\n\ninterface RootTenantProps {\n children: React.ReactNode;\n}\n\nexport const IsTenant = ({ condition, children }: IsTenantProps) => {\n const { identity } = useAuthentication();\n const { tenant } = useCurrentTenant();\n\n if (!identity.isAuthenticated) {\n return null;\n }\n\n if (!condition(tenant)) {\n return null;\n }\n\n return <Fragment>{children}</Fragment>;\n};\n\nexport const IsRootTenant = ({ children }: RootTenantProps) => {\n return <IsTenant condition={tenant => tenant.id === \"root\"}>{children}</IsTenant>;\n};\n\nexport const IsNotRootTenant = ({ children }: RootTenantProps) => {\n return <IsTenant condition={tenant => tenant.id !== \"root\"}>{children}</IsTenant>;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,iBAAiB,QAAQ,mBAAmB;AAErD,SAASC,gBAAgB;AAWzB,OAAO,MAAMC,QAAQ,GAAGA,CAAC;EAAEC,SAAS;EAAEC;AAAwB,CAAC,KAAK;EAChE,MAAM;IAAEC;EAAS,CAAC,GAAGL,iBAAiB,CAAC,CAAC;EACxC,MAAM;IAAEM;EAAO,CAAC,GAAGL,gBAAgB,CAAC,CAAC;EAErC,IAAI,CAACI,QAAQ,CAACE,eAAe,EAAE;IAC3B,OAAO,IAAI;EACf;EAEA,IAAI,CAACJ,SAAS,CAACG,MAAM,CAAC,EAAE;IACpB,OAAO,IAAI;EACf;EAEA,oBAAOR,KAAA,CAAAU,aAAA,CAACT,QAAQ,QAAEK,QAAmB,CAAC;AAC1C,CAAC;AAED,OAAO,MAAMK,YAAY,GAAGA,CAAC;EAAEL;AAA0B,CAAC,KAAK;EAC3D,oBAAON,KAAA,CAAAU,aAAA,CAACN,QAAQ;IAACC,SAAS,EAAEG,MAAM,IAAIA,MAAM,CAACI,EAAE,KAAK;EAAO,GAAEN,QAAmB,CAAC;AACrF,CAAC;AAED,OAAO,MAAMO,eAAe,GAAGA,CAAC;EAAEP;AAA0B,CAAC,KAAK;EAC9D,oBAAON,KAAA,CAAAU,aAAA,CAACN,QAAQ;IAACC,SAAS,EAAEG,MAAM,IAAIA,MAAM,CAACI,EAAE,KAAK;EAAO,GAAEN,QAAmB,CAAC;AACrF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
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: true
|
|
16
|
+
}
|
|
17
|
+
}));
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
//# 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: true\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;IAChB;EAAE,CACL,CACQ,CAAC;AAEtB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import React, { useCallback } from "react";
|
|
2
|
+
import { useToast, Text } from "@webiny/admin-ui";
|
|
3
|
+
import { useDialogs } from "@webiny/app-admin";
|
|
4
|
+
import { useDisableTenant } from "../../DisableTenant/index.js";
|
|
5
|
+
export function useDisableTenantDialog({
|
|
6
|
+
record
|
|
7
|
+
}) {
|
|
8
|
+
const toast = useToast();
|
|
9
|
+
const dialogs = useDialogs();
|
|
10
|
+
const {
|
|
11
|
+
disableTenant
|
|
12
|
+
} = useDisableTenant(record);
|
|
13
|
+
const disableEntry = useCallback(() => {
|
|
14
|
+
dialogs.showDialog({
|
|
15
|
+
title: "Are you sure you want to disable this tenant?",
|
|
16
|
+
content: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Text, {
|
|
17
|
+
as: "div"
|
|
18
|
+
}, "Users won't be able to sign in, and all API access will stop working immediately. Don't worry - you can re-enable it later if needed.")),
|
|
19
|
+
acceptLabel: "Yes, disable!",
|
|
20
|
+
loadingLabel: "Disabling tenant...",
|
|
21
|
+
async onAccept() {
|
|
22
|
+
try {
|
|
23
|
+
await disableTenant();
|
|
24
|
+
toast.showSuccessToast({
|
|
25
|
+
title: "Tenant was disabled successfully!"
|
|
26
|
+
});
|
|
27
|
+
} catch (e) {
|
|
28
|
+
toast.showWarningToast({
|
|
29
|
+
title: "Tenant could not be disabled!",
|
|
30
|
+
description: e.message,
|
|
31
|
+
duration: Infinity
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}, [record.id]);
|
|
37
|
+
return {
|
|
38
|
+
disableEntry
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
//# sourceMappingURL=useDisableTenantDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useCallback","useToast","Text","useDialogs","useDisableTenant","useDisableTenantDialog","record","toast","dialogs","disableTenant","disableEntry","showDialog","title","content","createElement","Fragment","as","acceptLabel","loadingLabel","onAccept","showSuccessToast","e","showWarningToast","description","message","duration","Infinity","id"],"sources":["useDisableTenantDialog.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport type { TenantEntry } from \"~/admin/types.js\";\nimport { useToast, Text } from \"@webiny/admin-ui\";\nimport { useDialogs } from \"@webiny/app-admin\";\nimport { useDisableTenant } from \"~/admin/DisableTenant/index.js\";\n\ninterface UseDisableTenantDialog {\n record: TenantEntry;\n}\n\nexport function useDisableTenantDialog({ record }: UseDisableTenantDialog) {\n const toast = useToast();\n const dialogs = useDialogs();\n const { disableTenant } = useDisableTenant(record);\n\n const disableEntry = useCallback(() => {\n dialogs.showDialog({\n title: \"Are you sure you want to disable this tenant?\",\n content: (\n <>\n <Text as={\"div\"}>\n Users won't be able to sign in, and all API access will stop working\n immediately. Don't worry - you can re-enable it later if needed.\n </Text>\n </>\n ),\n acceptLabel: \"Yes, disable!\",\n loadingLabel: \"Disabling tenant...\",\n async onAccept() {\n try {\n await disableTenant();\n toast.showSuccessToast({\n title: \"Tenant was disabled successfully!\"\n });\n } catch (e) {\n toast.showWarningToast({\n title: \"Tenant could not be disabled!\",\n description: e.message,\n duration: Infinity\n });\n }\n }\n });\n }, [record.id]);\n\n return { disableEntry };\n}\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAE1C,SAASC,QAAQ,EAAEC,IAAI,QAAQ,kBAAkB;AACjD,SAASC,UAAU,QAAQ,mBAAmB;AAC9C,SAASC,gBAAgB;AAMzB,OAAO,SAASC,sBAAsBA,CAAC;EAAEC;AAA+B,CAAC,EAAE;EACvE,MAAMC,KAAK,GAAGN,QAAQ,CAAC,CAAC;EACxB,MAAMO,OAAO,GAAGL,UAAU,CAAC,CAAC;EAC5B,MAAM;IAAEM;EAAc,CAAC,GAAGL,gBAAgB,CAACE,MAAM,CAAC;EAElD,MAAMI,YAAY,GAAGV,WAAW,CAAC,MAAM;IACnCQ,OAAO,CAACG,UAAU,CAAC;MACfC,KAAK,EAAE,+CAA+C;MACtDC,OAAO,eACHd,KAAA,CAAAe,aAAA,CAAAf,KAAA,CAAAgB,QAAA,qBACIhB,KAAA,CAAAe,aAAA,CAACZ,IAAI;QAACc,EAAE,EAAE;MAAM,GAAC,uIAGX,CACR,CACL;MACDC,WAAW,EAAE,eAAe;MAC5BC,YAAY,EAAE,qBAAqB;MACnC,MAAMC,QAAQA,CAAA,EAAG;QACb,IAAI;UACA,MAAMV,aAAa,CAAC,CAAC;UACrBF,KAAK,CAACa,gBAAgB,CAAC;YACnBR,KAAK,EAAE;UACX,CAAC,CAAC;QACN,CAAC,CAAC,OAAOS,CAAC,EAAE;UACRd,KAAK,CAACe,gBAAgB,CAAC;YACnBV,KAAK,EAAE,+BAA+B;YACtCW,WAAW,EAAEF,CAAC,CAACG,OAAO;YACtBC,QAAQ,EAAEC;UACd,CAAC,CAAC;QACN;MACJ;IACJ,CAAC,CAAC;EACN,CAAC,EAAE,CAACpB,MAAM,CAACqB,EAAE,CAAC,CAAC;EAEf,OAAO;IAAEjB;EAAa,CAAC;AAC3B","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Button } from "@webiny/admin-ui";
|
|
3
|
+
import { useEnableTenant } from "./useEnableTenant.js";
|
|
4
|
+
export const EnableTenant = ({
|
|
5
|
+
tenant
|
|
6
|
+
}) => {
|
|
7
|
+
const {
|
|
8
|
+
enableTenant,
|
|
9
|
+
loading
|
|
10
|
+
} = useEnableTenant(tenant);
|
|
11
|
+
return /*#__PURE__*/React.createElement(Button, {
|
|
12
|
+
variant: "primary",
|
|
13
|
+
onClick: enableTenant,
|
|
14
|
+
disabled: loading,
|
|
15
|
+
text: loading ? "Enabling..." : "Enable"
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=EnableTenant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Button","useEnableTenant","EnableTenant","tenant","enableTenant","loading","createElement","variant","onClick","disabled","text"],"sources":["EnableTenant.tsx"],"sourcesContent":["import React from \"react\";\nimport { Button } from \"@webiny/admin-ui\";\nimport { TenantEntry } from \"../../types.js\";\nimport { useEnableTenant } from \"./useEnableTenant.js\";\n\ninterface EnableTenantProps {\n tenant: TenantEntry;\n}\n\nexport const EnableTenant = ({ tenant }: EnableTenantProps) => {\n const { enableTenant, loading } = useEnableTenant(tenant);\n\n return (\n <Button\n variant={\"primary\"}\n onClick={enableTenant}\n disabled={loading}\n text={loading ? \"Enabling...\" : \"Enable\"}\n />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,MAAM,QAAQ,kBAAkB;AAEzC,SAASC,eAAe;AAMxB,OAAO,MAAMC,YAAY,GAAGA,CAAC;EAAEC;AAA0B,CAAC,KAAK;EAC3D,MAAM;IAAEC,YAAY;IAAEC;EAAQ,CAAC,GAAGJ,eAAe,CAACE,MAAM,CAAC;EAEzD,oBACIJ,KAAA,CAAAO,aAAA,CAACN,MAAM;IACHO,OAAO,EAAE,SAAU;IACnBC,OAAO,EAAEJ,YAAa;IACtBK,QAAQ,EAAEJ,OAAQ;IAClBK,IAAI,EAAEL,OAAO,GAAG,aAAa,GAAG;EAAS,CAC5C,CAAC;AAEV,CAAC","ignoreList":[]}
|