@webiny/tenant-manager 0.0.0-unstable.61c048f412

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.
Files changed (255) hide show
  1. package/LICENSE +36 -0
  2. package/README.md +11 -0
  3. package/TenantManager.d.ts +2 -0
  4. package/TenantManager.js +12 -0
  5. package/TenantManager.js.map +1 -0
  6. package/admin/CurrentTenant/CurrentTenant.d.ts +6 -0
  7. package/admin/CurrentTenant/CurrentTenant.js +34 -0
  8. package/admin/CurrentTenant/CurrentTenant.js.map +1 -0
  9. package/admin/CurrentTenant/CurrentTenantGateway.d.ts +12 -0
  10. package/admin/CurrentTenant/CurrentTenantGateway.js +44 -0
  11. package/admin/CurrentTenant/CurrentTenantGateway.js.map +1 -0
  12. package/admin/CurrentTenant/CurrentTenantPresenter.d.ts +12 -0
  13. package/admin/CurrentTenant/CurrentTenantPresenter.js +30 -0
  14. package/admin/CurrentTenant/CurrentTenantPresenter.js.map +1 -0
  15. package/admin/CurrentTenant/CurrentTenantRepository.d.ts +15 -0
  16. package/admin/CurrentTenant/CurrentTenantRepository.js +37 -0
  17. package/admin/CurrentTenant/CurrentTenantRepository.js.map +1 -0
  18. package/admin/CurrentTenant/abstractions.d.ts +31 -0
  19. package/admin/CurrentTenant/abstractions.js +15 -0
  20. package/admin/CurrentTenant/abstractions.js.map +1 -0
  21. package/admin/CurrentTenant/feature.d.ts +3 -0
  22. package/admin/CurrentTenant/feature.js +20 -0
  23. package/admin/CurrentTenant/feature.js.map +1 -0
  24. package/admin/CurrentTenant/useCurrentTenant.d.ts +4 -0
  25. package/admin/CurrentTenant/useCurrentTenant.js +23 -0
  26. package/admin/CurrentTenant/useCurrentTenant.js.map +1 -0
  27. package/admin/CurrentTenantProvider.d.ts +2 -0
  28. package/admin/CurrentTenantProvider.js +12 -0
  29. package/admin/CurrentTenantProvider.js.map +1 -0
  30. package/admin/DisableTenant/DisableTenantGateway.d.ts +11 -0
  31. package/admin/DisableTenant/DisableTenantGateway.js +43 -0
  32. package/admin/DisableTenant/DisableTenantGateway.js.map +1 -0
  33. package/admin/DisableTenant/DisableTenantRepository.d.ts +10 -0
  34. package/admin/DisableTenant/DisableTenantRepository.js +15 -0
  35. package/admin/DisableTenant/DisableTenantRepository.js.map +1 -0
  36. package/admin/DisableTenant/DisableTenantUseCase.d.ts +10 -0
  37. package/admin/DisableTenant/DisableTenantUseCase.js +15 -0
  38. package/admin/DisableTenant/DisableTenantUseCase.js.map +1 -0
  39. package/admin/DisableTenant/abstractions.d.ts +21 -0
  40. package/admin/DisableTenant/abstractions.js +15 -0
  41. package/admin/DisableTenant/abstractions.js.map +1 -0
  42. package/admin/DisableTenant/feature.d.ts +3 -0
  43. package/admin/DisableTenant/feature.js +20 -0
  44. package/admin/DisableTenant/feature.js.map +1 -0
  45. package/admin/DisableTenant/index.d.ts +2 -0
  46. package/admin/DisableTenant/index.js +4 -0
  47. package/admin/DisableTenant/index.js.map +1 -0
  48. package/admin/DisableTenant/useDisableTenant.d.ts +4 -0
  49. package/admin/DisableTenant/useDisableTenant.js +27 -0
  50. package/admin/DisableTenant/useDisableTenant.js.map +1 -0
  51. package/admin/EnableTenant/EnableTenantGateway.d.ts +11 -0
  52. package/admin/EnableTenant/EnableTenantGateway.js +43 -0
  53. package/admin/EnableTenant/EnableTenantGateway.js.map +1 -0
  54. package/admin/EnableTenant/EnableTenantRepository.d.ts +10 -0
  55. package/admin/EnableTenant/EnableTenantRepository.js +15 -0
  56. package/admin/EnableTenant/EnableTenantRepository.js.map +1 -0
  57. package/admin/EnableTenant/EnableTenantUseCase.d.ts +10 -0
  58. package/admin/EnableTenant/EnableTenantUseCase.js +15 -0
  59. package/admin/EnableTenant/EnableTenantUseCase.js.map +1 -0
  60. package/admin/EnableTenant/abstractions.d.ts +21 -0
  61. package/admin/EnableTenant/abstractions.js +15 -0
  62. package/admin/EnableTenant/abstractions.js.map +1 -0
  63. package/admin/EnableTenant/feature.d.ts +3 -0
  64. package/admin/EnableTenant/feature.js +20 -0
  65. package/admin/EnableTenant/feature.js.map +1 -0
  66. package/admin/EnableTenant/index.d.ts +2 -0
  67. package/admin/EnableTenant/index.js +4 -0
  68. package/admin/EnableTenant/index.js.map +1 -0
  69. package/admin/EnableTenant/useEnableTenant.d.ts +4 -0
  70. package/admin/EnableTenant/useEnableTenant.js +23 -0
  71. package/admin/EnableTenant/useEnableTenant.js.map +1 -0
  72. package/admin/Extension.d.ts +2 -0
  73. package/admin/Extension.js +47 -0
  74. package/admin/Extension.js.map +1 -0
  75. package/admin/IsRootTenant.d.ts +13 -0
  76. package/admin/IsRootTenant.js +37 -0
  77. package/admin/IsRootTenant.js.map +1 -0
  78. package/admin/Permissions/LegacyPermissionRenderer.d.ts +1 -0
  79. package/admin/Permissions/LegacyPermissionRenderer.js +29 -0
  80. package/admin/Permissions/LegacyPermissionRenderer.js.map +1 -0
  81. package/admin/Permissions/TenantManagerPermissions.d.ts +11 -0
  82. package/admin/Permissions/TenantManagerPermissions.js +75 -0
  83. package/admin/Permissions/TenantManagerPermissions.js.map +1 -0
  84. package/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.d.ts +8 -0
  85. package/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.js +42 -0
  86. package/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.js.map +1 -0
  87. package/admin/TenantEntryList/EnableTenant/EnableTenant.d.ts +7 -0
  88. package/admin/TenantEntryList/EnableTenant/EnableTenant.js +19 -0
  89. package/admin/TenantEntryList/EnableTenant/EnableTenant.js.map +1 -0
  90. package/admin/TenantEntryList/EnableTenant/useEnableTenant.d.ts +5 -0
  91. package/admin/TenantEntryList/EnableTenant/useEnableTenant.js +39 -0
  92. package/admin/TenantEntryList/EnableTenant/useEnableTenant.js.map +1 -0
  93. package/admin/TenantEntryList/FolderNameCell.d.ts +7 -0
  94. package/admin/TenantEntryList/FolderNameCell.js +29 -0
  95. package/admin/TenantEntryList/FolderNameCell.js.map +1 -0
  96. package/admin/TenantEntryList/InstallTenantButton/InstallTenant.d.ts +7 -0
  97. package/admin/TenantEntryList/InstallTenantButton/InstallTenant.js +19 -0
  98. package/admin/TenantEntryList/InstallTenantButton/InstallTenant.js.map +1 -0
  99. package/admin/TenantEntryList/InstallTenantButton/installTenant.gql.d.ts +16 -0
  100. package/admin/TenantEntryList/InstallTenantButton/installTenant.gql.js +17 -0
  101. package/admin/TenantEntryList/InstallTenantButton/installTenant.gql.js.map +1 -0
  102. package/admin/TenantEntryList/InstallTenantButton/useInstallTenant.d.ts +5 -0
  103. package/admin/TenantEntryList/InstallTenantButton/useInstallTenant.js +46 -0
  104. package/admin/TenantEntryList/InstallTenantButton/useInstallTenant.js.map +1 -0
  105. package/admin/TenantEntryList/ManageTenant.d.ts +7 -0
  106. package/admin/TenantEntryList/ManageTenant.js +21 -0
  107. package/admin/TenantEntryList/ManageTenant.js.map +1 -0
  108. package/admin/TenantEntryList/TenantCell.d.ts +2 -0
  109. package/admin/TenantEntryList/TenantCell.js +39 -0
  110. package/admin/TenantEntryList/TenantCell.js.map +1 -0
  111. package/admin/TenantEntryList/TenantNameCell.d.ts +2 -0
  112. package/admin/TenantEntryList/TenantNameCell.js +54 -0
  113. package/admin/TenantEntryList/TenantNameCell.js.map +1 -0
  114. package/admin/TenantEntryList.d.ts +2 -0
  115. package/admin/TenantEntryList.js +71 -0
  116. package/admin/TenantEntryList.js.map +1 -0
  117. package/admin/TenantSelector.d.ts +2 -0
  118. package/admin/TenantSelector.js +22 -0
  119. package/admin/TenantSelector.js.map +1 -0
  120. package/admin/types.d.ts +7 -0
  121. package/admin/types.js +3 -0
  122. package/admin/types.js.map +1 -0
  123. package/api/Extension.d.ts +1 -0
  124. package/api/Extension.js +42 -0
  125. package/api/Extension.js.map +1 -0
  126. package/api/domain/TenantId.d.ts +3 -0
  127. package/api/domain/TenantId.js +12 -0
  128. package/api/domain/TenantId.js.map +1 -0
  129. package/api/domain/TenantModel.d.ts +11 -0
  130. package/api/domain/TenantModel.js +46 -0
  131. package/api/domain/TenantModel.js.map +1 -0
  132. package/api/domain/TenantModelExtension.d.ts +10 -0
  133. package/api/domain/TenantModelExtension.js +4 -0
  134. package/api/domain/TenantModelExtension.js.map +1 -0
  135. package/api/domain/errors.d.ts +33 -0
  136. package/api/domain/errors.js +63 -0
  137. package/api/domain/errors.js.map +1 -0
  138. package/api/features/AddCmsPermissions/AddCmsPermissions.d.ts +8 -0
  139. package/api/features/AddCmsPermissions/AddCmsPermissions.js +34 -0
  140. package/api/features/AddCmsPermissions/AddCmsPermissions.js.map +1 -0
  141. package/api/features/AddCmsPermissions/feature.d.ts +1 -0
  142. package/api/features/AddCmsPermissions/feature.js +10 -0
  143. package/api/features/AddCmsPermissions/feature.js.map +1 -0
  144. package/api/features/CreateAndInstallTenant/CreateAndInstallTenantUseCase.d.ts +22 -0
  145. package/api/features/CreateAndInstallTenant/CreateAndInstallTenantUseCase.js +90 -0
  146. package/api/features/CreateAndInstallTenant/CreateAndInstallTenantUseCase.js.map +1 -0
  147. package/api/features/CreateAndInstallTenant/abstractions.d.ts +24 -0
  148. package/api/features/CreateAndInstallTenant/abstractions.js +9 -0
  149. package/api/features/CreateAndInstallTenant/abstractions.js.map +1 -0
  150. package/api/features/CreateAndInstallTenant/feature.d.ts +1 -0
  151. package/api/features/CreateAndInstallTenant/feature.js +11 -0
  152. package/api/features/CreateAndInstallTenant/feature.js.map +1 -0
  153. package/api/features/CreateTenant/CreateTenantRepository.d.ts +15 -0
  154. package/api/features/CreateTenant/CreateTenantRepository.js +48 -0
  155. package/api/features/CreateTenant/CreateTenantRepository.js.map +1 -0
  156. package/api/features/CreateTenant/CreateTenantUseCase.d.ts +14 -0
  157. package/api/features/CreateTenant/CreateTenantUseCase.js +44 -0
  158. package/api/features/CreateTenant/CreateTenantUseCase.js.map +1 -0
  159. package/api/features/CreateTenant/abstractions.d.ts +41 -0
  160. package/api/features/CreateTenant/abstractions.js +11 -0
  161. package/api/features/CreateTenant/abstractions.js.map +1 -0
  162. package/api/features/CreateTenant/feature.d.ts +1 -0
  163. package/api/features/CreateTenant/feature.js +15 -0
  164. package/api/features/CreateTenant/feature.js.map +1 -0
  165. package/api/features/DeleteTenantOnEntryDelete/DeleteTenantOnEntryDeleteHandler.d.ts +11 -0
  166. package/api/features/DeleteTenantOnEntryDelete/DeleteTenantOnEntryDeleteHandler.js +37 -0
  167. package/api/features/DeleteTenantOnEntryDelete/DeleteTenantOnEntryDeleteHandler.js.map +1 -0
  168. package/api/features/DeleteTenantOnEntryDelete/feature.d.ts +1 -0
  169. package/api/features/DeleteTenantOnEntryDelete/feature.js +11 -0
  170. package/api/features/DeleteTenantOnEntryDelete/feature.js.map +1 -0
  171. package/api/features/DisableTenant/DisableTenantUseCase.d.ts +20 -0
  172. package/api/features/DisableTenant/DisableTenantUseCase.js +66 -0
  173. package/api/features/DisableTenant/DisableTenantUseCase.js.map +1 -0
  174. package/api/features/DisableTenant/abstractions.d.ts +19 -0
  175. package/api/features/DisableTenant/abstractions.js +4 -0
  176. package/api/features/DisableTenant/abstractions.js.map +1 -0
  177. package/api/features/DisableTenant/events.d.ts +27 -0
  178. package/api/features/DisableTenant/events.js +18 -0
  179. package/api/features/DisableTenant/events.js.map +1 -0
  180. package/api/features/DisableTenant/feature.d.ts +1 -0
  181. package/api/features/DisableTenant/feature.js +11 -0
  182. package/api/features/DisableTenant/feature.js.map +1 -0
  183. package/api/features/EnableTenant/EnableTenantUseCase.d.ts +20 -0
  184. package/api/features/EnableTenant/EnableTenantUseCase.js +68 -0
  185. package/api/features/EnableTenant/EnableTenantUseCase.js.map +1 -0
  186. package/api/features/EnableTenant/abstractions.d.ts +19 -0
  187. package/api/features/EnableTenant/abstractions.js +4 -0
  188. package/api/features/EnableTenant/abstractions.js.map +1 -0
  189. package/api/features/EnableTenant/events.d.ts +27 -0
  190. package/api/features/EnableTenant/events.js +18 -0
  191. package/api/features/EnableTenant/events.js.map +1 -0
  192. package/api/features/EnableTenant/feature.d.ts +1 -0
  193. package/api/features/EnableTenant/feature.js +11 -0
  194. package/api/features/EnableTenant/feature.js.map +1 -0
  195. package/api/features/GetCurrentTenant/GetCurrentTenantUseCase.d.ts +17 -0
  196. package/api/features/GetCurrentTenant/GetCurrentTenantUseCase.js +29 -0
  197. package/api/features/GetCurrentTenant/GetCurrentTenantUseCase.js.map +1 -0
  198. package/api/features/GetCurrentTenant/abstractions.d.ts +22 -0
  199. package/api/features/GetCurrentTenant/abstractions.js +10 -0
  200. package/api/features/GetCurrentTenant/abstractions.js.map +1 -0
  201. package/api/features/GetCurrentTenant/feature.d.ts +1 -0
  202. package/api/features/GetCurrentTenant/feature.js +11 -0
  203. package/api/features/GetCurrentTenant/feature.js.map +1 -0
  204. package/api/features/GetTenantById/GetTenantByIdRepository.d.ts +17 -0
  205. package/api/features/GetTenantById/GetTenantByIdRepository.js +49 -0
  206. package/api/features/GetTenantById/GetTenantByIdRepository.js.map +1 -0
  207. package/api/features/GetTenantById/GetTenantByIdUseCase.d.ts +12 -0
  208. package/api/features/GetTenantById/GetTenantByIdUseCase.js +27 -0
  209. package/api/features/GetTenantById/GetTenantByIdUseCase.js.map +1 -0
  210. package/api/features/GetTenantById/abstractions.d.ts +38 -0
  211. package/api/features/GetTenantById/abstractions.js +15 -0
  212. package/api/features/GetTenantById/abstractions.js.map +1 -0
  213. package/api/features/GetTenantById/feature.d.ts +1 -0
  214. package/api/features/GetTenantById/feature.js +15 -0
  215. package/api/features/GetTenantById/feature.js.map +1 -0
  216. package/api/features/UpdateTenant/UpdateTenantRepository.d.ts +17 -0
  217. package/api/features/UpdateTenant/UpdateTenantRepository.js +58 -0
  218. package/api/features/UpdateTenant/UpdateTenantRepository.js.map +1 -0
  219. package/api/features/UpdateTenant/UpdateTenantUseCase.d.ts +12 -0
  220. package/api/features/UpdateTenant/UpdateTenantUseCase.js +21 -0
  221. package/api/features/UpdateTenant/UpdateTenantUseCase.js.map +1 -0
  222. package/api/features/UpdateTenant/abstractions.d.ts +39 -0
  223. package/api/features/UpdateTenant/abstractions.js +15 -0
  224. package/api/features/UpdateTenant/abstractions.js.map +1 -0
  225. package/api/features/UpdateTenant/feature.d.ts +1 -0
  226. package/api/features/UpdateTenant/feature.js +15 -0
  227. package/api/features/UpdateTenant/feature.js.map +1 -0
  228. package/api/graphql/CreateTenantSchema.d.ts +14 -0
  229. package/api/graphql/CreateTenantSchema.js +77 -0
  230. package/api/graphql/CreateTenantSchema.js.map +1 -0
  231. package/api/graphql/DisableTenantSchema.d.ts +8 -0
  232. package/api/graphql/DisableTenantSchema.js +35 -0
  233. package/api/graphql/DisableTenantSchema.js.map +1 -0
  234. package/api/graphql/EnableTenantSchema.d.ts +8 -0
  235. package/api/graphql/EnableTenantSchema.js +35 -0
  236. package/api/graphql/EnableTenantSchema.js.map +1 -0
  237. package/api/graphql/GetCurrentTenantSchema.d.ts +8 -0
  238. package/api/graphql/GetCurrentTenantSchema.js +59 -0
  239. package/api/graphql/GetCurrentTenantSchema.js.map +1 -0
  240. package/api/graphql/InstallTenantSchema.d.ts +8 -0
  241. package/api/graphql/InstallTenantSchema.js +54 -0
  242. package/api/graphql/InstallTenantSchema.js.map +1 -0
  243. package/exports/api/tenant-manager.d.ts +2 -0
  244. package/exports/api/tenant-manager.js +3 -0
  245. package/exports/api/tenant-manager.js.map +1 -0
  246. package/index.d.ts +1 -0
  247. package/index.js +3 -0
  248. package/index.js.map +1 -0
  249. package/package.json +46 -0
  250. package/shared/Tenant.d.ts +21 -0
  251. package/shared/Tenant.js +26 -0
  252. package/shared/Tenant.js.map +1 -0
  253. package/shared/constants.d.ts +1 -0
  254. package/shared/constants.js +3 -0
  255. 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,3 @@
1
+ export declare const DisableTenantFeature: import("@webiny/feature/admin").FeatureDefinition<{
2
+ useCase: import("./abstractions.js").IDisableTenantUseCase;
3
+ }, []>;
@@ -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,2 @@
1
+ export { DisableTenantFeature } from "./feature.js";
2
+ export { useDisableTenant } from "./useDisableTenant.js";
@@ -0,0 +1,4 @@
1
+ export { DisableTenantFeature } from "./feature.js";
2
+ export { useDisableTenant } from "./useDisableTenant.js";
3
+
4
+ //# sourceMappingURL=index.js.map
@@ -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,4 @@
1
+ import type { TenantEntry } from "../../admin/types.js";
2
+ export declare const useDisableTenant: (tenant: TenantEntry) => {
3
+ disableTenant: () => Promise<void>;
4
+ };
@@ -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,3 @@
1
+ export declare const EnableTenantFeature: import("@webiny/feature/admin").FeatureDefinition<{
2
+ useCase: import("./abstractions.js").IEnableTenantUseCase;
3
+ }, []>;
@@ -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,2 @@
1
+ export { EnableTenantFeature } from "./feature.js";
2
+ export { useEnableTenant } from "./useEnableTenant.js";
@@ -0,0 +1,4 @@
1
+ export { EnableTenantFeature } from "./feature.js";
2
+ export { useEnableTenant } from "./useEnableTenant.js";
3
+
4
+ //# sourceMappingURL=index.js.map
@@ -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,4 @@
1
+ export declare const useEnableTenant: () => {
2
+ enableTenant: (tenantId: string) => Promise<void>;
3
+ loading: boolean;
4
+ };
@@ -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,2 @@
1
+ import React from "react";
2
+ export declare const Extension: () => React.JSX.Element;
@@ -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 { LegacyPermissionRenderer } from "./Permissions/LegacyPermissionRenderer.js";
14
+ import { TENANT_MODEL_ID } from "../shared/constants.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(RegisterFeature, {
32
+ feature: DisableTenantFeature
33
+ }), /*#__PURE__*/React.createElement(RegisterFeature, {
34
+ feature: EnableTenantFeature
35
+ }), /*#__PURE__*/React.createElement(CurrentTenantProvider, null), /*#__PURE__*/React.createElement(TenantSelector, null), /*#__PURE__*/React.createElement(TenantEntryList, null), /*#__PURE__*/React.createElement(LegacyPermissionRenderer, null), /*#__PURE__*/React.createElement(AdminConfig, null, /*#__PURE__*/React.createElement(IsRootTenant, null, /*#__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","LegacyPermissionRenderer","TENANT_MODEL_ID","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\";\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 { LegacyPermissionRenderer } from \"./Permissions/LegacyPermissionRenderer.js\";\nimport { TENANT_MODEL_ID } from \"~/shared/constants.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 <RegisterFeature feature={DisableTenantFeature} />\n <RegisterFeature feature={EnableTenantFeature} />\n <CurrentTenantProvider />\n <TenantSelector />\n <TenantEntryList />\n <LegacyPermissionRenderer />\n <AdminConfig>\n <IsRootTenant>\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;AACzE,SAASC,eAAe;AACxB,SAASC,qBAAqB;AAC9B,SAASC,oBAAoB;AAC7B,SAASC,oBAAoB;AAC7B,SAASC,mBAAmB;AAC5B,SAASC,cAAc;AACvB,SAASC,YAAY;AACrB,SAASC,wBAAwB;AACjC,SAASC,eAAe;AAExB,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,EAAEP;EAAgB,CAAC,CAAC;EAE9E,MAAMQ,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,CAACtB,eAAe;IAAC4B,OAAO,EAAEpB;EAAqB,CAAE,CAAC,eAClDX,KAAA,CAAAyB,aAAA,CAACtB,eAAe;IAAC4B,OAAO,EAAEnB;EAAoB,CAAE,CAAC,eACjDZ,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,CAACV,wBAAwB,MAAE,CAAC,eAC5Bf,KAAA,CAAAyB,aAAA,CAACxB,WAAW,qBACRD,KAAA,CAAAyB,aAAA,CAACX,YAAY,qBACTd,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 @@
1
+ export declare const LegacyPermissionRenderer: () => null;
@@ -0,0 +1,29 @@
1
+ import React, { useEffect } from "react";
2
+ import { Accordion } from "@webiny/admin-ui";
3
+ import { plugins } from "@webiny/plugins";
4
+ import { ReactComponent as PermissionsIcon } from "@webiny/icons/business.svg";
5
+ import { TenantManagerPermissions } from "./TenantManagerPermissions.js";
6
+ import { i18n } from "@webiny/app/i18n/index.js";
7
+ const t = i18n.ns("tenant-manager/admin/permissionRenderer");
8
+ export const LegacyPermissionRenderer = () => {
9
+ useEffect(() => {
10
+ plugins.register({
11
+ type: "admin-app-permissions-renderer",
12
+ name: "admin-app-permissions-renderer-tenant-manager",
13
+ render(props) {
14
+ return /*#__PURE__*/React.createElement(Accordion.Item, {
15
+ icon: /*#__PURE__*/React.createElement(Accordion.Item.Icon, {
16
+ icon: /*#__PURE__*/React.createElement(PermissionsIcon, null),
17
+ label: "Tenant Manager Permissions"
18
+ }),
19
+ title: t`Tenant Manager`,
20
+ description: t`Manage Tenant Manager app access permissions.`,
21
+ "data-testid": "permission.tm"
22
+ }, /*#__PURE__*/React.createElement(TenantManagerPermissions, props));
23
+ }
24
+ });
25
+ }, []);
26
+ return null;
27
+ };
28
+
29
+ //# sourceMappingURL=LegacyPermissionRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","Accordion","plugins","ReactComponent","PermissionsIcon","TenantManagerPermissions","i18n","t","ns","LegacyPermissionRenderer","register","type","name","render","props","createElement","Item","icon","Icon","label","title","description"],"sources":["LegacyPermissionRenderer.tsx"],"sourcesContent":["import React, { useEffect } from \"react\";\nimport { Accordion } from \"@webiny/admin-ui\";\nimport { plugins } from \"@webiny/plugins\";\nimport type { AdminAppPermissionRendererPlugin } from \"@webiny/app-admin/types.js\";\nimport { ReactComponent as PermissionsIcon } from \"@webiny/icons/business.svg\";\nimport { TenantManagerPermissions } from \"./TenantManagerPermissions.js\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\n\nconst t = i18n.ns(\"tenant-manager/admin/permissionRenderer\");\n\nexport const LegacyPermissionRenderer = () => {\n useEffect(() => {\n plugins.register({\n type: \"admin-app-permissions-renderer\",\n name: \"admin-app-permissions-renderer-tenant-manager\",\n render(props) {\n return (\n <Accordion.Item\n icon={\n <Accordion.Item.Icon\n icon={<PermissionsIcon />}\n label={\"Tenant Manager Permissions\"}\n />\n }\n title={t`Tenant Manager`}\n description={t`Manage Tenant Manager app access permissions.`}\n data-testid={\"permission.tm\"}\n >\n <TenantManagerPermissions {...props} />\n </Accordion.Item>\n );\n }\n } as AdminAppPermissionRendererPlugin);\n }, []);\n return null;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,OAAO,QAAQ,iBAAiB;AAEzC,SAASC,cAAc,IAAIC,eAAe,QAAQ,4BAA4B;AAC9E,SAASC,wBAAwB;AACjC,SAASC,IAAI,QAAQ,2BAA2B;AAEhD,MAAMC,CAAC,GAAGD,IAAI,CAACE,EAAE,CAAC,yCAAyC,CAAC;AAE5D,OAAO,MAAMC,wBAAwB,GAAGA,CAAA,KAAM;EAC1CT,SAAS,CAAC,MAAM;IACZE,OAAO,CAACQ,QAAQ,CAAC;MACbC,IAAI,EAAE,gCAAgC;MACtCC,IAAI,EAAE,+CAA+C;MACrDC,MAAMA,CAACC,KAAK,EAAE;QACV,oBACIf,KAAA,CAAAgB,aAAA,CAACd,SAAS,CAACe,IAAI;UACXC,IAAI,eACAlB,KAAA,CAAAgB,aAAA,CAACd,SAAS,CAACe,IAAI,CAACE,IAAI;YAChBD,IAAI,eAAElB,KAAA,CAAAgB,aAAA,CAACX,eAAe,MAAE,CAAE;YAC1Be,KAAK,EAAE;UAA6B,CACvC,CACJ;UACDC,KAAK,EAAEb,CAAC,gBAAiB;UACzBc,WAAW,EAAEd,CAAC,+CAAgD;UAC9D,eAAa;QAAgB,gBAE7BR,KAAA,CAAAgB,aAAA,CAACV,wBAAwB,EAAKS,KAAQ,CAC1B,CAAC;MAEzB;IACJ,CAAqC,CAAC;EAC1C,CAAC,EAAE,EAAE,CAAC;EACN,OAAO,IAAI;AACf,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ interface TenantManagerPermissionItem {
3
+ accessLevel?: string;
4
+ name?: string;
5
+ }
6
+ interface TenantManagerPermissionsProps {
7
+ value: TenantManagerPermissionItem;
8
+ onChange: (value: TenantManagerPermissionItem[]) => void;
9
+ }
10
+ export declare const TenantManagerPermissions: ({ value, onChange }: TenantManagerPermissionsProps) => React.JSX.Element;
11
+ export {};
@@ -0,0 +1,75 @@
1
+ import React, { Fragment, useCallback, useMemo } from "react";
2
+ import { Grid, Select } from "@webiny/admin-ui";
3
+ import { i18n } from "@webiny/app/i18n/index.js";
4
+ import { PermissionInfo, gridWithPaddingClass } from "@webiny/app-admin";
5
+ import { Form } from "@webiny/form";
6
+ const t = i18n.ns("app-file-manager/admin/plugins/permissionRenderer");
7
+ const TENANT_MANAGER = "tm";
8
+ const TENANT_MANAGER_FULL_ACCESS = `${TENANT_MANAGER}.*`;
9
+ const FULL_ACCESS = "full";
10
+ const NO_ACCESS = "no";
11
+ const NO_ACCESS_DATA = {
12
+ accessLevel: NO_ACCESS
13
+ };
14
+ export const TenantManagerPermissions = ({
15
+ value,
16
+ onChange
17
+ }) => {
18
+ const onFormChange = useCallback(data => {
19
+ let newValue = [];
20
+ if (Array.isArray(value)) {
21
+ // Let's just filter out the `file-manager*` permission objects, it's easier to build new ones from scratch.
22
+ newValue = value.filter(item => !item.name.startsWith(TENANT_MANAGER));
23
+ }
24
+ if (data.accessLevel === NO_ACCESS) {
25
+ onChange(newValue);
26
+ return;
27
+ }
28
+ if (data.accessLevel === FULL_ACCESS) {
29
+ newValue.push({
30
+ name: TENANT_MANAGER_FULL_ACCESS
31
+ });
32
+ onChange(newValue);
33
+ return;
34
+ }
35
+ onChange(newValue);
36
+ }, [value]);
37
+ const formData = useMemo(() => {
38
+ if (!Array.isArray(value)) {
39
+ return NO_ACCESS_DATA;
40
+ }
41
+ const hasFullAccess = value.find(item => item.name === TENANT_MANAGER_FULL_ACCESS || item.name === "*");
42
+ if (hasFullAccess) {
43
+ return {
44
+ accessLevel: FULL_ACCESS
45
+ };
46
+ }
47
+ return NO_ACCESS_DATA;
48
+ }, []);
49
+ return /*#__PURE__*/React.createElement(Form, {
50
+ data: formData,
51
+ onChange: onFormChange
52
+ }, ({
53
+ Bind
54
+ }) => /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(Grid, {
55
+ className: gridWithPaddingClass
56
+ }, /*#__PURE__*/React.createElement(Grid.Column, {
57
+ span: 6
58
+ }, /*#__PURE__*/React.createElement(PermissionInfo, {
59
+ title: t`Access Level`
60
+ })), /*#__PURE__*/React.createElement(Grid.Column, {
61
+ span: 6
62
+ }, /*#__PURE__*/React.createElement(Bind, {
63
+ name: "accessLevel"
64
+ }, /*#__PURE__*/React.createElement(Select, {
65
+ options: [{
66
+ value: NO_ACCESS,
67
+ label: t`No access`
68
+ }, {
69
+ value: FULL_ACCESS,
70
+ label: t`Full access`
71
+ }]
72
+ }))))));
73
+ };
74
+
75
+ //# sourceMappingURL=TenantManagerPermissions.js.map