@strapi/admin 4.10.0-beta.0 → 4.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. package/.eslintignore +4 -0
  2. package/.eslintrc.js +14 -0
  3. package/admin/src/components/LanguageProvider/index.js +1 -1
  4. package/admin/src/components/LocalesProvider/__mocks__/useLocalesProvider.js +7 -0
  5. package/admin/src/components/LocalesProvider/index.js +2 -3
  6. package/admin/src/content-manager/components/CollectionTypeFormWrapper/index.js +3 -6
  7. package/admin/src/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/getTableColumn.js +2 -0
  8. package/admin/src/content-manager/components/DynamicTable/index.js +11 -29
  9. package/admin/src/content-manager/components/EditViewDataManagerProvider/reducer.js +12 -6
  10. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/findAllAndReplace.js +10 -3
  11. package/admin/src/content-manager/components/InputUID/endActionStyle.js +4 -13
  12. package/admin/src/content-manager/components/InputUID/index.js +95 -72
  13. package/admin/src/content-manager/components/RepeatableComponent/components/Component.js +8 -2
  14. package/admin/src/content-manager/components/SingleTypeFormWrapper/index.js +4 -8
  15. package/admin/src/content-manager/pages/App/LeftMenu/index.js +56 -35
  16. package/admin/src/content-manager/pages/App/actions.js +19 -7
  17. package/admin/src/content-manager/pages/App/constants.js +3 -3
  18. package/admin/src/content-manager/pages/App/index.js +5 -4
  19. package/admin/src/content-manager/pages/App/reducer.js +7 -6
  20. package/admin/src/content-manager/pages/App/selectors.js +3 -0
  21. package/admin/src/content-manager/pages/App/{useModels.js → useContentManagerInitData.js} +29 -28
  22. package/admin/src/content-manager/pages/App/utils/generateModelsLinks.js +2 -2
  23. package/admin/src/content-manager/pages/App/utils/getContentTypeLinks.js +17 -15
  24. package/admin/src/content-manager/pages/EditSettingsView/components/ModalForm.js +6 -5
  25. package/admin/src/content-manager/pages/EditSettingsView/index.js +4 -0
  26. package/admin/src/content-manager/pages/EditSettingsView/reducer.js +12 -7
  27. package/admin/src/content-manager/pages/EditSettingsView/utils/layout.js +1 -30
  28. package/admin/src/content-manager/pages/EditView/DeleteLink/index.js +5 -11
  29. package/admin/src/content-manager/pages/EditView/index.js +2 -7
  30. package/admin/src/content-manager/pages/EditViewLayoutManager/reducer.js +4 -4
  31. package/admin/src/content-manager/pages/ListSettingsView/index.js +1 -0
  32. package/admin/src/hooks/useConfigurations/__mocks__/index.js +7 -0
  33. package/admin/src/hooks/useFetchMarketplacePlugins/utils/api.js +7 -8
  34. package/admin/src/hooks/useFetchMarketplaceProviders/utils/api.js +5 -0
  35. package/admin/src/hooks/useFetchPermissionsLayout/index.js +24 -15
  36. package/admin/src/hooks/useFetchRole/index.js +37 -30
  37. package/admin/src/hooks/useModels/index.js +22 -12
  38. package/admin/src/hooks/useRegenerate/index.js +12 -7
  39. package/admin/src/hooks/useSettingsForm/index.js +14 -6
  40. package/admin/src/pages/App/index.js +19 -24
  41. package/admin/src/pages/AuthPage/components/Register/index.js +46 -38
  42. package/admin/src/pages/HomePage/SocialLinks.js +1 -1
  43. package/admin/src/pages/MarketplacePage/components/EmptyNpmPackageSearch/index.js +3 -3
  44. package/admin/src/pages/MarketplacePage/components/NpmPackagesGrid/index.js +42 -9
  45. package/admin/src/pages/MarketplacePage/components/NpmPackagesPagination/index.js +26 -0
  46. package/admin/src/pages/MarketplacePage/components/OfflineLayout/index.js +45 -0
  47. package/admin/src/pages/MarketplacePage/index.js +80 -175
  48. package/admin/src/pages/MarketplacePage/utils/useMarketplaceData.js +85 -0
  49. package/admin/src/pages/SettingsPage/components/Tokens/FormHead/index.js +4 -0
  50. package/admin/src/pages/SettingsPage/components/Tokens/Regenerate/index.js +5 -3
  51. package/admin/src/pages/SettingsPage/components/Tokens/TokenTypeSelect/index.js +7 -5
  52. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/PendingLogoDialog.js +1 -3
  53. package/admin/src/pages/SettingsPage/pages/Roles/CreatePage/index.js +6 -12
  54. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js +6 -10
  55. package/admin/src/pages/SettingsPage/pages/Roles/ListPage/components/RoleRow/index.js +12 -4
  56. package/admin/src/pages/SettingsPage/pages/Roles/ListPage/index.js +21 -2
  57. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/FormTransferTokenContainer/index.js +41 -0
  58. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/index.js +53 -9
  59. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/utils/schema.js +1 -0
  60. package/admin/src/pages/SettingsPage/pages/TransferTokens/ListView/index.js +27 -5
  61. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/index.js +18 -33
  62. package/admin/src/pages/SettingsPage/pages/Webhooks/ListView/index.js +41 -41
  63. package/admin/src/translations/en.json +52 -50
  64. package/admin/src/translations/fr.json +89 -1
  65. package/admin/src/translations/ru.json +51 -19
  66. package/build/1387.84b454d3.chunk.js +1 -0
  67. package/build/1657.45231968.chunk.js +168 -0
  68. package/build/3081.bcf9a12f.chunk.js +108 -0
  69. package/build/462.8fff7f3b.chunk.js +71 -0
  70. package/build/4628.20631dd1.chunk.js +1 -0
  71. package/build/5542.b8240e3f.chunk.js +70 -0
  72. package/build/5563.905daa13.chunk.js +79 -0
  73. package/build/6404.68405699.chunk.js +100 -0
  74. package/build/7259.b7d00cea.chunk.js +1 -0
  75. package/build/8694.6522968d.chunk.js +247 -0
  76. package/build/Admin-authenticatedApp.b036fe95.chunk.js +79 -0
  77. package/build/Admin_InternalErrorPage.15c6bf07.chunk.js +1 -0
  78. package/build/Admin_homePage.f9309c6d.chunk.js +73 -0
  79. package/build/Admin_marketplace.56bc1008.chunk.js +31 -0
  80. package/build/Admin_pluginsPage.f6b52ee9.chunk.js +6 -0
  81. package/build/Admin_profilePage.9112cffc.chunk.js +15 -0
  82. package/build/Admin_settingsPage.4604a16c.chunk.js +79 -0
  83. package/build/Upload_ConfigureTheView.eaaec495.chunk.js +1 -0
  84. package/build/admin-app.014adc27.chunk.js +110 -0
  85. package/build/admin-edit-roles-page.8a4063f7.chunk.js +280 -0
  86. package/build/admin-edit-users.7e14d85f.chunk.js +10 -0
  87. package/build/admin-roles-list.329c1f63.chunk.js +31 -0
  88. package/build/admin-users.d02de059.chunk.js +34 -0
  89. package/build/api-tokens-create-page.97595e12.chunk.js +1 -0
  90. package/build/api-tokens-edit-page.cd36e30e.chunk.js +1 -0
  91. package/build/api-tokens-list-page.6757c7b9.chunk.js +16 -0
  92. package/build/audit-logs-settings-page.19d90bda.chunk.js +76 -0
  93. package/build/content-manager.84f81966.chunk.js +1130 -0
  94. package/build/content-type-builder-list-view.9c2c020c.chunk.js +214 -0
  95. package/build/{content-type-builder-translation-de-json.0979cccb.chunk.js → content-type-builder-translation-de-json.393a76c0.chunk.js} +1 -1
  96. package/build/{content-type-builder-translation-dk-json.e05583e9.chunk.js → content-type-builder-translation-dk-json.fbd39bb7.chunk.js} +1 -1
  97. package/build/content-type-builder-translation-en-json.446b611d.chunk.js +1 -0
  98. package/build/{content-type-builder-translation-es-json.fe4daad8.chunk.js → content-type-builder-translation-es-json.9288474b.chunk.js} +1 -1
  99. package/build/{content-type-builder-translation-fr-json.b1eb52f6.chunk.js → content-type-builder-translation-fr-json.d35e269c.chunk.js} +1 -1
  100. package/build/{content-type-builder-translation-id-json.ee3b36bb.chunk.js → content-type-builder-translation-id-json.f0513929.chunk.js} +1 -1
  101. package/build/{content-type-builder-translation-it-json.13b3c26a.chunk.js → content-type-builder-translation-it-json.aaf16753.chunk.js} +1 -1
  102. package/build/{content-type-builder-translation-ko-json.8a274be5.chunk.js → content-type-builder-translation-ko-json.8fe21a7f.chunk.js} +1 -1
  103. package/build/{content-type-builder-translation-ms-json.2d29c1e0.chunk.js → content-type-builder-translation-ms-json.3b5d2d3e.chunk.js} +1 -1
  104. package/build/{content-type-builder-translation-nl-json.40bbc562.chunk.js → content-type-builder-translation-nl-json.225ef5d3.chunk.js} +1 -1
  105. package/build/{content-type-builder-translation-pl-json.24a34349.chunk.js → content-type-builder-translation-pl-json.92f36be2.chunk.js} +1 -1
  106. package/build/{content-type-builder-translation-pt-BR-json.97f71a9d.chunk.js → content-type-builder-translation-pt-BR-json.3bd10f89.chunk.js} +1 -1
  107. package/build/{content-type-builder-translation-ru-json.54d11230.chunk.js → content-type-builder-translation-ru-json.9bfe47ce.chunk.js} +1 -1
  108. package/build/{content-type-builder-translation-sk-json.626c9493.chunk.js → content-type-builder-translation-sk-json.d03cc18a.chunk.js} +1 -1
  109. package/build/{content-type-builder-translation-sv-json.59f5e1e5.chunk.js → content-type-builder-translation-sv-json.d23dcd32.chunk.js} +1 -1
  110. package/build/{content-type-builder-translation-th-json.6fe3ed55.chunk.js → content-type-builder-translation-th-json.7ad256e2.chunk.js} +1 -1
  111. package/build/{content-type-builder-translation-tr-json.cea4d226.chunk.js → content-type-builder-translation-tr-json.926f6191.chunk.js} +1 -1
  112. package/build/{content-type-builder-translation-uk-json.c4524247.chunk.js → content-type-builder-translation-uk-json.7bf19546.chunk.js} +1 -1
  113. package/build/{content-type-builder-translation-zh-json.faedd610.chunk.js → content-type-builder-translation-zh-json.ad24dbeb.chunk.js} +1 -1
  114. package/build/content-type-builder.68af11d2.chunk.js +126 -0
  115. package/build/email-settings-page.1095e1ab.chunk.js +10 -0
  116. package/build/en-json.c7fc79af.chunk.js +1 -0
  117. package/build/fr-json.5947cf63.chunk.js +1 -0
  118. package/build/{highlight.js.26ef649f.chunk.js → highlight.js.28a1547e.chunk.js} +2 -2
  119. package/build/i18n-settings-page.d95b32df.chunk.js +60 -0
  120. package/build/index.html +1 -1
  121. package/build/main.841e0dcb.js +2280 -0
  122. package/build/review-workflows-settings.f7890c40.chunk.js +106 -0
  123. package/build/ru-json.e0662702.chunk.js +1 -0
  124. package/build/{runtime~main.5a95bee6.js → runtime~main.965f8af8.js} +1 -1
  125. package/build/sso-settings-page.1dd4886e.chunk.js +1 -0
  126. package/build/transfer-tokens-create-page.ec2ca215.chunk.js +1 -0
  127. package/build/transfer-tokens-edit-page.22bf28e5.chunk.js +1 -0
  128. package/build/transfer-tokens-list-page.cf8c77f2.chunk.js +16 -0
  129. package/build/upload-settings.945fdcfa.chunk.js +13 -0
  130. package/build/{upload-translation-th-json.3847dae0.chunk.js → upload-translation-th-json.98d35574.chunk.js} +1 -1
  131. package/build/upload.a86b1054.chunk.js +33 -0
  132. package/build/users-advanced-settings-page.5b5a9baa.chunk.js +8 -0
  133. package/build/users-email-settings-page.e5506eb4.chunk.js +23 -0
  134. package/build/users-providers-settings-page.e32089c2.chunk.js +28 -0
  135. package/build/users-roles-settings-page.20656f92.chunk.js +30 -0
  136. package/build/webhook-edit-page.a3b62049.chunk.js +75 -0
  137. package/build/webhook-list-page.ca38eeef.chunk.js +71 -0
  138. package/{admin/src/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/ReviewWorkflowsStage.js → ee/admin/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/ReviewWorkflowsStageEE.js} +2 -2
  139. package/ee/admin/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/getTableColumn.js +47 -0
  140. package/ee/admin/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/index.js +3 -0
  141. package/ee/admin/content-manager/pages/EditView/InformationBox/InformationBoxEE.js +64 -18
  142. package/ee/admin/hooks/useAuthProviders/index.js +28 -29
  143. package/ee/admin/hooks/useLicenseLimitNotification/index.js +1 -1
  144. package/ee/admin/pages/AuthResponse/index.js +7 -3
  145. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/hooks/useAuditLogsData.js +6 -3
  146. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/index.js +15 -5
  147. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/utils/getDisplayedFilters.js +52 -45
  148. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/ReviewWorkflows.js +9 -5
  149. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/Stage.js +2 -2
  150. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows.js +2 -2
  151. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/reducer/index.js +2 -1
  152. package/ee/server/content-types/workflow/index.js +0 -3
  153. package/ee/server/content-types/workflow-stage/index.js +0 -5
  154. package/ee/server/controllers/authentication/middlewares.js +2 -1
  155. package/ee/server/controllers/workflows/stages/index.js +8 -1
  156. package/ee/server/register.js +3 -1
  157. package/ee/server/services/audit-logs.js +75 -16
  158. package/ee/server/services/index.js +1 -0
  159. package/ee/server/services/review-workflows/entity-service-decorator.js +17 -5
  160. package/ee/server/services/review-workflows/metrics.js +24 -0
  161. package/ee/server/services/review-workflows/review-workflows.js +44 -94
  162. package/ee/server/services/review-workflows/stages.js +136 -17
  163. package/ee/server/utils/persisted-tables.js +116 -22
  164. package/ee/server/utils/review-workflows.js +9 -0
  165. package/jest.config.front.js +1 -6
  166. package/package.json +25 -23
  167. package/server/controllers/transfer/runner.js +4 -2
  168. package/server/middlewares/data-transfer.js +4 -1
  169. package/server/routes/transfer.js +13 -4
  170. package/server/services/constants.js +4 -0
  171. package/server/services/transfer/permission.js +1 -1
  172. package/server/services/transfer/token.js +33 -31
  173. package/server/strategies/api-token.js +8 -1
  174. package/server/validation/transfer/token.js +10 -2
  175. package/webpack.config.js +6 -2
  176. package/admin/src/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/index.js +0 -1
  177. package/admin/src/content-manager/pages/App/LeftMenu/utils/index.js +0 -1
  178. package/admin/src/content-manager/pages/App/LeftMenu/utils/matchByTitle.js +0 -24
  179. package/build/2263.4c5916f9.chunk.js +0 -98
  180. package/build/4049.64715f20.chunk.js +0 -1
  181. package/build/4649.213b8a3b.chunk.js +0 -30
  182. package/build/6985.66cca29c.chunk.js +0 -1
  183. package/build/7259.aefb51e8.chunk.js +0 -1
  184. package/build/8469.853c822b.chunk.js +0 -1
  185. package/build/9505.dbe702ab.chunk.js +0 -14
  186. package/build/9816.01ee964f.chunk.js +0 -2
  187. package/build/Admin-authenticatedApp.f50ad423.chunk.js +0 -79
  188. package/build/Admin_InternalErrorPage.4ad8b0df.chunk.js +0 -1
  189. package/build/Admin_homePage.1411fb7c.chunk.js +0 -68
  190. package/build/Admin_marketplace.02608d56.chunk.js +0 -22
  191. package/build/Admin_pluginsPage.15e3b0fd.chunk.js +0 -1
  192. package/build/Admin_profilePage.76afeca0.chunk.js +0 -15
  193. package/build/Admin_settingsPage.147755cd.chunk.js +0 -9
  194. package/build/Upload_ConfigureTheView.34dde278.chunk.js +0 -1
  195. package/build/admin-app.55dd7921.chunk.js +0 -112
  196. package/build/admin-edit-roles-page.cf543488.chunk.js +0 -216
  197. package/build/admin-edit-users.31c20712.chunk.js +0 -10
  198. package/build/admin-roles-list.489c501f.chunk.js +0 -2
  199. package/build/admin-users.3e111a7d.chunk.js +0 -11
  200. package/build/api-tokens-create-page.4328b852.chunk.js +0 -1
  201. package/build/api-tokens-edit-page.bce5050f.chunk.js +0 -1
  202. package/build/api-tokens-list-page.93f24348.chunk.js +0 -16
  203. package/build/audit-logs-settings-page.7be97e82.chunk.js +0 -1
  204. package/build/content-manager.4480ae88.chunk.js +0 -1137
  205. package/build/content-type-builder-list-view.cf38fe2f.chunk.js +0 -191
  206. package/build/content-type-builder-translation-en-json.7961593e.chunk.js +0 -1
  207. package/build/content-type-builder.af9abf1e.chunk.js +0 -126
  208. package/build/email-settings-page.4bdbef9a.chunk.js +0 -3
  209. package/build/en-json.697b4bcf.chunk.js +0 -1
  210. package/build/fr-json.f66c3211.chunk.js +0 -1
  211. package/build/i18n-settings-page.2bb5be96.chunk.js +0 -1
  212. package/build/main.af8c0f31.js +0 -3790
  213. package/build/review-workflows-settings.7a7dc773.chunk.js +0 -57
  214. package/build/ru-json.6a01cea6.chunk.js +0 -1
  215. package/build/sso-settings-page.272b87c8.chunk.js +0 -1
  216. package/build/transfer-tokens-create-page.a1f14bb1.chunk.js +0 -1
  217. package/build/transfer-tokens-edit-page.00ee1c74.chunk.js +0 -1
  218. package/build/transfer-tokens-list-page.ce37354b.chunk.js +0 -16
  219. package/build/upload-settings.0875e973.chunk.js +0 -1
  220. package/build/upload.c7da1611.chunk.js +0 -13
  221. package/build/users-advanced-settings-page.1d3c14c7.chunk.js +0 -1
  222. package/build/users-email-settings-page.e8db68c4.chunk.js +0 -1
  223. package/build/users-providers-settings-page.14cac425.chunk.js +0 -1
  224. package/build/users-roles-settings-page.2ea4de84.chunk.js +0 -30
  225. package/build/webhook-edit-page.329141a5.chunk.js +0 -23
  226. package/build/webhook-list-page.029957a4.chunk.js +0 -1
  227. package/ee/server/migrations/review-workflows.js +0 -39
  228. package/ee/server/utils/test.js +0 -11
  229. /package/admin/src/{content-manager/components/InputUID/useDebounce.js → hooks/useDebounce/index.js} +0 -0
@@ -1,10 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4263],{34669:function(R,c,e){e.r(c),e.d(c,{default:function(){return y}});var t=e(32735),a=e(13478),n=e(5141),u=e(72041),l=e(20011),m=e(5636),o=e(60216),p=e.n(o),g=e(88423),d=e.n(g),O=e(33795),f=e.n(O),W=e(9086),K=e.n(W),T=e(84968),Z=e(83281),s=e(39161),M=e(57269),P=e(8997);const I=async L=>{const{get:_}=(0,a.getFetchClient)(),{data:r}=await _(`/admin/users/${L}`);return r.data},N=async(L,_)=>{const{put:r}=(0,a.getFetchClient)(),{data:h}=await r(`/admin/users/${L}`,_);return h.data};var G=[[{intlLabel:{id:"Auth.form.firstname.label",defaultMessage:"First name"},name:"firstname",placeholder:{id:"Auth.form.firstname.placeholder",defaultMessage:"e.g. Kai"},type:"text",size:{col:6,xs:12},required:!0},{intlLabel:{id:"Auth.form.lastname.label",defaultMessage:"Last name"},name:"lastname",placeholder:{id:"Auth.form.lastname.placeholder",defaultMessage:"e.g. Doe"},type:"text",size:{col:6,xs:12}}],[{intlLabel:{id:"Auth.form.email.label",defaultMessage:"Email"},name:"email",placeholder:{id:"Auth.form.email.placeholder",defaultMessage:"e.g. kai.doe@strapi.io"},type:"email",size:{col:6,xs:12},required:!0},{intlLabel:{id:"Auth.form.username.label",defaultMessage:"Username"},name:"username",placeholder:{id:"Auth.form.username.placeholder",defaultMessage:"e.g. Kai_Doe"},type:"text",size:{col:6,xs:12}}],[{intlLabel:{id:"global.password",defaultMessage:"Password"},name:"password",type:"password",size:{col:6,xs:12},autoComplete:"new-password"},{intlLabel:{id:"Auth.form.confirmPassword.label",defaultMessage:"Password confirmation"},name:"confirmPassword",type:"password",size:{col:6,xs:12},autoComplete:"new-password"}],[{intlLabel:{id:"Auth.form.active.label",defaultMessage:"Active"},name:"isActive",type:"bool",size:{col:6,xs:12}}]],H=e(1057),A=e(4397);const Y=(()=>window&&window.strapi&&window.strapi.isEE?e(28890).Z:e(16325).Z)(),z=["email","firstname","lastname","username","isActive","roles"],F=L=>{let{canUpdate:_}=L;const{formatMessage:r}=(0,m.useIntl)(),{params:{id:h}}=(0,n.useRouteMatch)("/settings/users/:id"),{push:U}=(0,n.useHistory)(),{setUserDisplayName:j}=(0,a.useAppInfos)(),S=(0,a.useNotification)(),{lockApp:k,unlockApp:q}=(0,a.useOverlayBlocker)();(0,a.useFocusWhenNavigate)();const{status:ee,data:x}=(0,T.useQuery)(["user",h],()=>I(h),{retry:!1,onError(i){i.response.status===403&&(S({type:"info",message:{id:"notification.permission.not-allowed-read",defaultMessage:"You are not allowed to see this document"}}),U("/")),console.log(i.response.status)}}),te=async(i,E)=>{k();try{const v=await N(h,K()(i,"confirmPassword"));S({type:"success",message:r({id:"notification.success.saved",defaultMessage:"Saved"})});const D=a.auth.getUserInfo();if(h.toString()===D.id.toString()){a.auth.setUserInfo(v);const B=f()(i,"username")||(0,P.Pp)(i.firstname,i.lastname);j(B)}E.setValues(d()(i,z))}catch(v){const D=(0,P.Iz)(v.response.data),B=Object.keys(D).reduce((b,C)=>(b[C]=D[C].id,b),{});E.setErrors(B),S({type:"warning",message:f()(v,"response.data.error.message","notification.error")})}q()},X=ee!=="success",ae=X?{id:"app.containers.Users.EditPage.header.label-loading",defaultMessage:"Edit user"}:{id:"app.containers.Users.EditPage.header.label",defaultMessage:"Edit {name}"},$=Object.keys(d()(x,z)).reduce((i,E)=>E==="roles"?(i[E]=(x?.roles||[]).map(v=>{let{id:D}=v;return D}),i):(i[E]=x?.[E],i),{}),se=$.username||(0,P.Pp)($.firstname,$.lastname),J=r(ae,{name:se});return X?t.createElement(s.Main,{"aria-busy":"true"},t.createElement(a.SettingsPageTitle,{name:"Users"}),t.createElement(s.HeaderLayout,{primaryAction:t.createElement(s.Button,{disabled:!0,startIcon:t.createElement(M.Check,null),type:"button",size:"L"},r({id:"global.save",defaultMessage:"Save"})),title:J,navigationAction:t.createElement(a.Link,{startIcon:t.createElement(M.ArrowLeft,null),to:"/settings/users?pageSize=10&page=1&sort=firstname"},r({id:"global.back",defaultMessage:"Back"}))}),t.createElement(s.ContentLayout,null,t.createElement(a.LoadingIndicatorPage,null))):t.createElement(s.Main,null,t.createElement(a.SettingsPageTitle,{name:"Users"}),t.createElement(Z.Formik,{onSubmit:te,initialValues:$,validateOnChange:!1,validationSchema:H.YM},i=>{let{errors:E,values:v,handleChange:D,isSubmitting:B}=i;return t.createElement(a.Form,null,t.createElement(s.HeaderLayout,{primaryAction:t.createElement(s.Button,{disabled:B||!_,startIcon:t.createElement(M.Check,null),loading:B,type:"submit",size:"L"},r({id:"global.save",defaultMessage:"Save"})),title:J,navigationAction:t.createElement(a.Link,{startIcon:t.createElement(M.ArrowLeft,null),to:"/settings/users?pageSize=10&page=1&sort=firstname"},r({id:"global.back",defaultMessage:"Back"}))}),t.createElement(s.ContentLayout,null,x?.registrationToken&&t.createElement(s.Box,{paddingBottom:6},t.createElement(Y,{registrationToken:x.registrationToken})),t.createElement(s.Flex,{direction:"column",alignItems:"stretch",gap:7},t.createElement(s.Box,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},t.createElement(s.Flex,{direction:"column",alignItems:"stretch",gap:4},t.createElement(s.Typography,{variant:"delta",as:"h2"},r({id:"app.components.Users.ModalCreateBody.block-title.details",defaultMessage:"Details"})),t.createElement(s.Grid,{gap:5},G.map(b=>b.map(C=>t.createElement(s.GridItem,(0,l.Z)({key:C.name},C.size),t.createElement(a.GenericInput,(0,l.Z)({},C,{disabled:!_,error:E[C.name],onChange:D,value:v[C.name]||""})))))))),t.createElement(s.Box,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},t.createElement(s.Flex,{direction:"column",alignItems:"stretch",gap:4},t.createElement(s.Typography,{variant:"delta",as:"h2"},r({id:"global.roles",defaultMessage:"User's role"})),t.createElement(s.Grid,{gap:5},t.createElement(s.GridItem,{col:6,xs:12},t.createElement(A.Z,{disabled:!_,error:E.roles,onChange:D,value:v.roles}))))))))}))};F.propTypes={canUpdate:p().bool.isRequired};var w=F,y=()=>{const L=(0,a.useNotification)(),_=(0,t.useMemo)(()=>({read:u.Z.settings.users.read,update:u.Z.settings.users.update}),[]),{isLoading:r,allowedActions:{canRead:h,canUpdate:U}}=(0,a.useRBAC)(_),{state:j}=(0,n.useLocation)(),S=j?.from??"/";return(0,t.useEffect)(()=>{r||!h&&!U&&L({type:"info",message:{id:"notification.permission.not-allowed-read",defaultMessage:"You are not allowed to see this document"}})},[r,h,U,L]),r?t.createElement(a.LoadingIndicatorPage,null):!h&&!U?t.createElement(n.Redirect,{to:S}):t.createElement(w,{canUpdate:U})}},76779:function(R,c,e){var t=e(32735),a=e(60216),n=e.n(a),u=e(39161),l=e.n(u),m=e(13478),o=e.n(m),p=e(57269),g=e.n(p),d=e(59087),O=e.n(d),f=e(5636);const W=({children:K,target:T})=>{const Z=(0,m.useNotification)(),{formatMessage:s}=(0,f.useIntl)(),M=()=>{Z({type:"info",message:{id:"notification.link-copied"}})},P=s({id:"app.component.CopyToClipboard.label",defaultMessage:"Copy to clipboard"});return t.createElement(m.ContentBox,{endAction:t.createElement(d.CopyToClipboard,{onCopy:M,text:T},t.createElement(u.IconButton,{label:P,noBorder:!0,icon:t.createElement(p.Duplicate,null)})),title:T,titleEllipsis:!0,subtitle:K,icon:t.createElement("span",{style:{fontSize:32}},"\u2709\uFE0F"),iconBackground:"neutral100"})};W.propTypes={children:n().oneOfType([n().element,n().string]).isRequired,target:n().string.isRequired},c.Z=W},16325:function(R,c,e){var t=e(32735),a=e(5636),n=e(60216),u=e.n(n),l=e(463),m=e(76779);const o=({registrationToken:p})=>{const{formatMessage:g}=(0,a.useIntl)(),d=`${window.location.origin}${l.Z}auth/register?registrationToken=${p}`;return t.createElement(m.Z,{target:d},g({id:"app.components.Users.MagicLink.connect",defaultMessage:"Copy and share this link to give access to this user"}))};o.defaultProps={registrationToken:""},o.propTypes={registrationToken:u().string},c.Z=o},4397:function(R,c,e){var t=e(32735),a=e(60216),n=e.n(a),u=e(5636),l=e(39161),m=e.n(l),o=e(84968),p=e.n(o),g=e(83292),d=e(57269),O=e.n(d),f=e(13478),W=e.n(f);const K=g.keyframes`
2
- from {
3
- transform: rotate(0deg);
4
- }
5
- to {
6
- transform: rotate(359deg);
7
- }
8
- `,T=g.default.div`
9
- animation: ${K} 2s infinite linear;
10
- `,Z=()=>t.createElement(T,null,t.createElement(d.Loader,null)),s=async()=>{const{get:P}=(0,f.getFetchClient)(),{data:I}=await P("/admin/roles");return I.data},M=({disabled:P,error:I,onChange:N,value:Q})=>{const{status:G,data:H}=(0,o.useQuery)(["roles"],s,{staleTime:5e4}),{formatMessage:A}=(0,u.useIntl)(),Y=I?A({id:I,defaultMessage:I}):"",z=A({id:"app.components.Users.ModalCreateBody.block-title.roles",defaultMessage:"User's roles"}),F=A({id:"app.components.Users.ModalCreateBody.block-title.roles.description",defaultMessage:"A user can have one or several roles"}),w=A({id:"app.components.Select.placeholder",defaultMessage:"Select"}),V=G==="loading"?t.createElement(Z,null):void 0;return t.createElement(l.Select,{id:"roles",disabled:P,error:Y,hint:F,label:z,name:"roles",onChange:y=>{N({target:{name:"roles",value:y}})},placeholder:w,multi:!0,startIcon:V,value:Q,withTags:!0,required:!0},(H||[]).map(y=>t.createElement(l.Option,{key:y.id,value:y.id},A({id:`global.${y.code}`,defaultMessage:y.name}))))};M.defaultProps={disabled:!1,error:void 0},M.propTypes={disabled:n().bool,error:n().string,onChange:n().func.isRequired,value:n().array.isRequired},c.Z=M},1057:function(R,c,e){e.d(c,{YM:function(){return g},Rw:function(){return l}});var t=e(5173),a=e(13478);const n={firstname:t.Z_().trim().required(a.translatedErrors.required),lastname:t.Z_(),email:t.Z_().email(a.translatedErrors.email).lowercase().required(a.translatedErrors.required),username:t.Z_().nullable(),password:t.Z_().min(8,a.translatedErrors.minLength).matches(/[a-z]/,"components.Input.error.contain.lowercase").matches(/[A-Z]/,"components.Input.error.contain.uppercase").matches(/\d/,"components.Input.error.contain.number"),confirmPassword:t.Z_().min(8,a.translatedErrors.minLength).oneOf([t.iH("password"),null],"components.Input.error.password.noMatch").when("password",(d,O)=>d?O.required(a.translatedErrors.required):O)};var l={...n,currentPassword:t.Z_().when(["password","confirmPassword"],(d,O,f)=>d||O?f.required(a.translatedErrors.required):f),preferedLanguage:t.Z_().nullable()},o={roles:t.IX().min(1,a.translatedErrors.required).required(a.translatedErrors.required)},g=t.Ry().shape({...n,isActive:t.Xg(),...o})},28890:function(R,c,e){var t=e(32735),a=e(5636),n=e(60216),u=e.n(n),l=e(463),m=e(76779);const o=({registrationToken:p})=>{const{formatMessage:g}=(0,a.useIntl)();return p?t.createElement(m.Z,{target:`${window.location.origin}${l.Z}auth/register?registrationToken=${p}`},g({id:"app.components.Users.MagicLink.connect",defaultMessage:"Copy and share this link to give access to this user"})):t.createElement(m.Z,{target:`${window.location.origin}${l.Z}auth/login`},g({id:"app.components.Users.MagicLink.connect.sso",defaultMessage:"Send this link to the user, the first login can be made via a SSO provider."}))};o.defaultProps={registrationToken:""},o.propTypes={registrationToken:u().string},c.Z=o}}]);
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[3455],{67249:function(Y,k,s){s.r(k),s.d(k,{default:function(){return J}});var e=s(32735),r=s(13478),A=s(72041),C=s(57269),t=s(39161),B=s(33795),S=s.n(B),N=s(58469),M=s(5636),F=s(5141),W=s(8888),U=()=>"todo empty role",V=s(60216),h=s.n(V);const x=({id:l,name:d,description:n,usersCount:u,icons:m,rowIndex:i})=>{const{formatMessage:E}=(0,M.useIntl)(),f=E({id:"Roles.RoleRow.user-count",defaultMessage:"{number, plural, =0 {# user} one {# user} other {# users}}"},{number:u});return e.createElement(t.Tr,{"aria-rowindex":i,key:l,...(0,r.onRowClick)({fn:m[1].onClick})},e.createElement(t.Td,{maxWidth:(0,r.pxToRem)(130)},e.createElement(t.Typography,{ellipsis:!0,textColor:"neutral800"},d)),e.createElement(t.Td,{maxWidth:(0,r.pxToRem)(250)},e.createElement(t.Typography,{ellipsis:!0,textColor:"neutral800"},n)),e.createElement(t.Td,null,e.createElement(t.Typography,{textColor:"neutral800"},f)),e.createElement(t.Td,null,e.createElement(t.Flex,{justifyContent:"flex-end",...r.stopPropagation},m.map((o,p)=>o?e.createElement(t.Box,{key:o.label,paddingLeft:p===0?0:1},e.createElement(t.IconButton,{onClick:o.onClick,label:o.label,noBorder:!0,icon:o.icon})):null))))};x.propTypes={id:h().number.isRequired,name:h().string.isRequired,description:h().string.isRequired,usersCount:h().number.isRequired,icons:h().array.isRequired,rowIndex:h().number.isRequired};var j=x,H=s(97889);const Z={roleToDelete:null,showModalConfirmButtonLoading:!1,shouldRefetchData:!1};var Q=(l,d)=>(0,H.default)(l,n=>{switch(d.type){case"ON_REMOVE_ROLES":{n.showModalConfirmButtonLoading=!0;break}case"ON_REMOVE_ROLES_SUCCEEDED":{n.shouldRefetchData=!0,n.roleToDelete=null;break}case"RESET_DATA_TO_DELETE":{n.shouldRefetchData=!1,n.roleToDelete=null,n.showModalConfirmButtonLoading=!1;break}case"SET_ROLE_TO_DELETE":{n.roleToDelete=d.id;break}default:return n}});const $=()=>{(0,r.useFocusWhenNavigate)();const{isLoading:l,allowedActions:{canCreate:d,canDelete:n,canRead:u,canUpdate:m}}=(0,r.useRBAC)(A.Z.settings.roles),{getData:i,roles:E,isLoading:f}=(0,W.bF)(!1),[{query:o}]=(0,r.useQueryParams)(),p=o?._q||"",R=(0,N.ZP)(E,p,{keys:["name","description"]});return(0,e.useEffect)(()=>{!l&&u&&i()},[l,u,i]),{isLoadingForPermissions:l,canCreate:d,canDelete:n,canRead:u,canUpdate:m,isLoading:f,getData:i,sortedRoles:R,roles:E}},z=({getData:l,canCreate:d,canDelete:n,canUpdate:u})=>{const{formatMessage:m}=(0,M.useIntl)(),i=(0,r.useNotification)(),[E,f]=(0,e.useState)(!1),{push:o}=(0,F.useHistory)(),[{selectedRoles:p,showModalConfirmButtonLoading:R,roleToDelete:v},T]=(0,e.useReducer)(Q,Z),{post:P}=(0,r.getFetchClient)(),b=async()=>{try{T({type:"ON_REMOVE_ROLES"}),await P("/admin/roles/batch-delete",{ids:[v]}),await l(),T({type:"RESET_DATA_TO_DELETE"})}catch(a){const c=S()(a,["response","payload","data","ids"],null);if(c&&Array.isArray(c)){const X=c.join(`
2
- `);i({type:"warning",message:X})}else i({type:"warning",message:{id:"notification.error"}})}g()},y=(0,e.useCallback)(a=>{o(`/settings/roles/duplicate/${a}`)},[o]),O=()=>o("/settings/roles/new"),D=(0,e.useCallback)(a=>{T({type:"SET_ROLE_TO_DELETE",id:a}),g()},[]),g=()=>f(a=>!a),L=(0,e.useCallback)(a=>{o(`/settings/roles/${a}`)},[o]),w=(0,e.useCallback)((a,c)=>{a.preventDefault(),a.stopPropagation(),c.usersCount?i({type:"info",message:{id:"Roles.ListPage.notification.delete-not-allowed"}}):D(c.id)},[i,D]),I=(0,e.useCallback)((a,c)=>{a.preventDefault(),a.stopPropagation(),y(c.id)},[y]),K=(0,e.useCallback)(a=>[...d?[{onClick:c=>I(c,a),label:m({id:"app.utils.duplicate",defaultMessage:"Duplicate"}),icon:e.createElement(C.Duplicate,null)}]:[],...u?[{onClick:()=>L(a.id),label:m({id:"app.utils.edit",defaultMessage:"Edit"}),icon:e.createElement(C.Pencil,null)}]:[],...n?[{onClick:c=>w(c,a),label:m({id:"global.delete",defaultMessage:"Delete"}),icon:e.createElement(C.Trash,null)}]:[]],[m,w,I,L,d,u,n]);return{handleNewRoleClick:O,getIcons:K,selectedRoles:p,isWarningDeleteAllOpened:E,showModalConfirmButtonLoading:R,handleToggleModal:g,handleDeleteData:b}};var G=()=>{const{formatMessage:l}=(0,M.useIntl)(),{isLoadingForPermissions:d,canCreate:n,canRead:u,canDelete:m,canUpdate:i,isLoading:E,getData:f,sortedRoles:o}=$(),{handleNewRoleClick:p,getIcons:R,isWarningDeleteAllOpened:v,showModalConfirmButtonLoading:T,handleToggleModal:P,handleDeleteData:b}=z({getData:f,canCreate:n,canDelete:m,canUpdate:i}),y=o.length+1,O=6;if(d)return e.createElement(t.Main,null,e.createElement(r.LoadingIndicatorPage,null));const D=l({id:"global.roles",defaultMessage:"roles"});return e.createElement(t.Main,null,e.createElement(r.SettingsPageTitle,{name:"Roles"}),e.createElement(t.HeaderLayout,{primaryAction:n?e.createElement(t.Button,{onClick:p,startIcon:e.createElement(C.Plus,null),size:"S"},l({id:"Settings.roles.list.button.add",defaultMessage:"Add new role"})):null,title:D,subtitle:l({id:"Settings.roles.list.description",defaultMessage:"List of roles"}),as:"h2"}),u&&e.createElement(t.ActionLayout,{startActions:e.createElement(r.SearchURLQuery,{label:l({id:"app.component.search.label",defaultMessage:"Search for {target}"},{target:D})})}),u&&e.createElement(t.ContentLayout,null,e.createElement(t.Table,{colCount:O,rowCount:y,footer:n?e.createElement(t.TFooter,{onClick:p,icon:e.createElement(C.Plus,null)},l({id:"Settings.roles.list.button.add",defaultMessage:"Add new role"})):null},e.createElement(t.Thead,null,e.createElement(t.Tr,{"aria-rowindex":1},e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},l({id:"global.name",defaultMessage:"Name"}))),e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},l({id:"global.description",defaultMessage:"Description"}))),e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},l({id:"global.users",defaultMessage:"Users"}))),e.createElement(t.Th,null,e.createElement(t.VisuallyHidden,null,l({id:"global.actions",defaultMessage:"Actions"}))))),e.createElement(t.Tbody,null,o?.map((g,L)=>e.createElement(j,{key:g.id,id:g.id,name:g.name,description:g.description,usersCount:g.usersCount,icons:R(g),rowIndex:L+2})))),!y&&!E&&e.createElement(U,null)),e.createElement(r.ConfirmDialog,{isOpen:v,onConfirm:b,isConfirmButtonLoading:T,onToggleDialog:P}))},J=()=>e.createElement(r.CheckPagePermissions,{permissions:A.Z.settings.roles.main},e.createElement(G,null))}}]);
@@ -1,11 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5199],{83119:function(D,l){const e=()=>null;l.Z=e},83196:function(D,l,e){var t=e(32735),s=e(60216),r=e.n(s),a=e(5636),i=e(39161),m=e.n(i),o=e(57269),g=e.n(o),n=e(13478),E=e.n(n);const y=({displayedFilters:p})=>{const[C,T]=(0,t.useState)(!1),{formatMessage:_}=(0,a.useIntl)(),L=(0,t.useRef)(),O=()=>{T(K=>!K)};return t.createElement(t.Fragment,null,t.createElement(i.Box,{paddingTop:1,paddingBottom:1},t.createElement(i.Button,{variant:"tertiary",ref:L,startIcon:t.createElement(o.Filter,null),onClick:O,size:"S"},_({id:"app.utils.filters",defaultMessage:"Filters"})),C&&t.createElement(n.FilterPopoverURLQuery,{displayedFilters:p,isVisible:C,onToggle:O,source:L})),t.createElement(n.FilterListURLQuery,{filtersSchema:p}))};y.propTypes={displayedFilters:r().arrayOf(r().shape({name:r().string.isRequired,metadatas:r().shape({label:r().string}),fieldSchema:r().shape({type:r().string})})).isRequired},l.Z=y},9814:function(D,l,e){var t=e(32735),s=e(5636),r=e(60216),a=e.n(r),i=e(39161),m=e.n(i),o=e(57269),g=e.n(o);const n=({onClick:E})=>{const{formatMessage:y}=(0,s.useIntl)();return t.createElement(i.Button,{onClick:E,startIcon:t.createElement(o.Envelop,null),size:"S"},y({id:"Settings.permissions.users.create",defaultMessage:"Invite new user"}))};n.propTypes={onClick:a().func.isRequired},l.Z=n},62658:function(D,l){const e={firstname:"",lastname:"",email:"",roles:[]};l.Z=e},61358:function(D,l){const e=[];l.Z=e},54865:function(D,l,e){e.r(l),e.d(l,{default:function(){return ge}});var t=e(32735),s=e(13478),r=e(72041),a=e(39161),i=e(5141),m=e(5636),o=e(84968),g=e(60216),n=e.n(g),E=e(57269),y=e(8997);const p=({canDelete:d,headers:M,entriesToDelete:f,onClickDelete:R,onSelectRow:$,withMainAction:A,withBulkActions:U,rows:Q})=>{const{push:I,location:{pathname:F}}=(0,i.useHistory)(),{formatMessage:P}=(0,m.useIntl)();return t.createElement(a.Tbody,null,Q.map(c=>{const z=f.findIndex(h=>h===c.id)!==-1;return t.createElement(a.Tr,{key:c.id,...(0,s.onRowClick)({fn:()=>I(`${F}/${c.id}`),condition:U})},A&&t.createElement(a.Td,{...s.stopPropagation},t.createElement(a.BaseCheckbox,{"aria-label":P({id:"app.component.table.select.one-entry",defaultMessage:"Select {target}"},{target:(0,y.Pp)(c.firstname,c.lastname)}),checked:z,onChange:()=>{$({name:c.id,value:!z})}})),M.map(({key:h,cellFormatter:G,name:S,...Z})=>t.createElement(a.Td,{key:h},typeof G=="function"?G(c,{key:h,name:S,formatMessage:P,...Z}):t.createElement(a.Typography,{textColor:"neutral800"},c[S]||"-"))),U&&t.createElement(a.Td,null,t.createElement(a.Flex,{justifyContent:"end"},t.createElement(a.IconButton,{onClick:()=>I(`${F}/${c.id}`),label:P({id:"app.component.table.edit",defaultMessage:"Edit {target}"},{target:(0,y.Pp)(c.firstname,c.lastname)}),noBorder:!0,icon:t.createElement(E.Pencil,null)}),d&&t.createElement(a.Box,{paddingLeft:1,...s.stopPropagation},t.createElement(a.IconButton,{onClick:()=>R(c.id),label:P({id:"global.delete-target",defaultMessage:"Delete {target}"},{target:(0,y.Pp)(c.firstname,c.lastname)}),noBorder:!0,icon:t.createElement(E.Trash,null)})))))}))};p.defaultProps={canDelete:!1,entriesToDelete:[],onClickDelete(){},onSelectRow(){},rows:[],withBulkActions:!1,withMainAction:!1},p.propTypes={canDelete:n().bool,entriesToDelete:n().array,headers:n().array.isRequired,onClickDelete:n().func,onSelectRow:n().func,rows:n().array,withBulkActions:n().bool,withMainAction:n().bool};var C=p,T=e(83196),_=e(20011),L=e(83281),O=e(4397),x=[[{intlLabel:{id:"Auth.form.firstname.label",defaultMessage:"First name"},name:"firstname",placeholder:{id:"Auth.form.firstname.placeholder",defaultMessage:"e.g. Kai"},type:"text",size:{col:6,xs:12},required:!0},{intlLabel:{id:"Auth.form.lastname.label",defaultMessage:"Last name"},name:"lastname",placeholder:{id:"Auth.form.lastname.placeholder",defaultMessage:"e.g. Doe"},type:"text",size:{col:6,xs:12}}],[{intlLabel:{id:"Auth.form.email.label",defaultMessage:"Email"},name:"email",placeholder:{id:"Auth.form.email.placeholder",defaultMessage:"e.g. kai.doe@strapi.io"},type:"email",size:{col:6,xs:12},required:!0}]],v=e(5173),q=v.Ry().shape({firstname:v.Z_().trim().required(s.translatedErrors.required),lastname:v.Z_(),email:v.Z_().email(s.translatedErrors.email).required(s.translatedErrors.required),roles:v.IX().min(1,s.translatedErrors.required).required(s.translatedErrors.required)}),ee={create:{buttonSubmitLabel:{id:"app.containers.Users.ModalForm.footer.button-success",defaultMessage:"Invite user"},isDisabled:!1,next:"magic-link"},"magic-link":{buttonSubmitLabel:{id:"global.finish",defaultMessage:"Finish"},isDisabled:!0,next:null}};const N=(()=>window&&window.strapi&&window.strapi.isEE?e(64746).Z:e(62658).Z)(),te=(()=>window&&window.strapi&&window.strapi.isEE?e(43116).Z:e(61358).Z)(),ae=(()=>window&&window.strapi&&window.strapi.isEE?e(28890).Z:e(16325).Z)(),Y=d=>{let{queryName:M,onToggle:f}=d;const[R,$]=(0,t.useState)("create"),[A,U]=(0,t.useState)(!1),[Q,I]=(0,t.useState)(null),F=(0,o.useQueryClient)(),{formatMessage:P}=(0,m.useIntl)(),c=(0,s.useNotification)(),{lockApp:z,unlockApp:h}=(0,s.useOverlayBlocker)(),{post:G}=(0,s.useFetchClient)(),S=(0,o.useMutation)(W=>G("/admin/users",W),{async onSuccess(W){let{data:j}=W;I(j.data.registrationToken),await F.refetchQueries(M),await F.refetchQueries(["ee","license-limit-info"]),k(),U(!1)},onError(W){throw U(!1),c({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}}),W},onSettled(){h()}}),Z=P({id:"Settings.permissions.users.create",defaultMessage:"Invite new user"}),ne=async(W,j)=>{let{setErrors:J}=j;z(),U(!0);try{await S.mutateAsync(W)}catch(V){h(),V?.response?.data?.error.message==="Email already taken"&&J({email:V.response.data.error.message})}},k=()=>{u?$(u):f()},{buttonSubmitLabel:X,isDisabled:H,next:u}=ee[R],_e=R==="create"?t.createElement(a.Button,{type:"submit",loading:A},P(X)):t.createElement(a.Button,{type:"button",loading:A,onClick:f},P(X));return t.createElement(a.ModalLayout,{onClose:f,labelledBy:"title"},t.createElement(a.ModalHeader,null,t.createElement(a.Breadcrumbs,{label:Z},t.createElement(a.Crumb,null,Z))),t.createElement(L.Formik,{initialValues:N,onSubmit:ne,validationSchema:q,validateOnChange:!1},W=>{let{errors:j,handleChange:J,values:V}=W;return t.createElement(s.Form,null,t.createElement(a.ModalBody,null,t.createElement(a.Flex,{direction:"column",alignItems:"stretch",gap:6},R!=="create"&&t.createElement(ae,{registrationToken:Q}),t.createElement(a.Box,null,t.createElement(a.Typography,{variant:"beta",as:"h2"},P({id:"app.components.Users.ModalCreateBody.block-title.details",defaultMessage:"User details"})),t.createElement(a.Box,{paddingTop:4},t.createElement(a.Flex,{direction:"column",alignItems:"stretch",gap:1},t.createElement(a.Grid,{gap:5},x.map(re=>re.map(B=>t.createElement(a.GridItem,(0,_.Z)({key:B.name},B.size),t.createElement(s.GenericInput,(0,_.Z)({},B,{disabled:H,error:j[B.name],onChange:J,value:V[B.name]}))))))))),t.createElement(a.Box,null,t.createElement(a.Typography,{variant:"beta",as:"h2"},P({id:"global.roles",defaultMessage:"User's role"})),t.createElement(a.Box,{paddingTop:4},t.createElement(a.Grid,{gap:5},t.createElement(a.GridItem,{col:6,xs:12},t.createElement(O.Z,{disabled:H,error:j.roles,onChange:J,value:V.roles})),te.map(re=>re.map(B=>t.createElement(a.GridItem,(0,_.Z)({key:B.name},B.size),t.createElement(s.GenericInput,(0,_.Z)({},B,{disabled:H,onChange:J,value:V[B.name]})))))))))),t.createElement(a.ModalFooter,{startActions:t.createElement(a.Button,{variant:"tertiary",onClick:f,type:"button"},P({id:"app.components.Button.cancel",defaultMessage:"Cancel"})),endActions:_e}))}))};Y.propTypes={onToggle:n().func.isRequired,queryName:n().array.isRequired};var se=Y;const w=({pagination:d})=>t.createElement(a.Box,{paddingTop:4},t.createElement(a.Flex,{alignItems:"flex-end",justifyContent:"space-between"},t.createElement(s.PageSizeURLQuery,null),t.createElement(s.PaginationURLQuery,{pagination:d})));w.defaultProps={pagination:{pageCount:0,pageSize:10,total:0}},w.propTypes={pagination:n().shape({page:n().number,pageCount:n().number,pageSize:n().number,total:n().number})};var b=w;const ie=async(d,M)=>{const{get:f}=(0,s.getFetchClient)(),{data:{data:R}}=await f(`/admin/users${d}`);return M(),R},ce=async d=>{const{post:M}=(0,s.getFetchClient)();await M("/admin/users/batch-delete",{ids:d})};var de=[{name:"firstname",metadatas:{label:"Firstname"},fieldSchema:{type:"string"}},{name:"lastname",metadatas:{label:"Lastname"},fieldSchema:{type:"string"}},{name:"email",metadatas:{label:"Email"},fieldSchema:{type:"email"}},{name:"username",metadatas:{label:"Username"},fieldSchema:{type:"string"}},{name:"isActive",metadatas:{label:"Active user"},fieldSchema:{type:"boolean"}}],me=[{name:"firstname",key:"firstname",metadatas:{label:{id:"Settings.permissions.users.firstname",defaultMessage:"Firstname"},sortable:!0}},{name:"lastname",key:"lastname",metadatas:{label:{id:"Settings.permissions.users.lastname",defaultMessage:"Lastname"},sortable:!0}},{key:"email",name:"email",metadatas:{label:{id:"Settings.permissions.users.email",defaultMessage:"Email"},sortable:!0}},{key:"roles",name:"roles",metadatas:{label:{id:"Settings.permissions.users.roles",defaultMessage:"Roles"},sortable:!1},cellFormatter({roles:d},{formatMessage:M}){return t.createElement(a.Typography,{textColor:"neutral800"},d.map(f=>M({id:`Settings.permissions.users.${f.code}`,defaultMessage:f.name})).join(`,
2
- `))}},{key:"username",name:"username",metadatas:{label:{id:"Settings.permissions.users.username",defaultMessage:"Username"},sortable:!0}},{key:"isActive",name:"isActive",metadatas:{label:{id:"Settings.permissions.users.user-status",defaultMessage:"User status"},sortable:!1},cellFormatter({isActive:d},{formatMessage:M}){return t.createElement(a.Flex,null,t.createElement(s.Status,{isActive:d,variant:d?"success":"danger"}),t.createElement(a.Typography,{textColor:"neutral800"},M({id:d?"Settings.permissions.users.active":"Settings.permissions.users.inactive",defaultMessage:d?"Active":"Inactive"})))}}];const ue=(()=>window&&window.strapi&&window.strapi.isEE?e(99724).Z:e(9814).Z)(),Ee=(()=>window&&window.strapi&&window.strapi.isEE?e(21306).Z:e(83119).Z)();var pe=()=>{const{formatAPIError:d}=(0,s.useAPIErrorHandler)(),[M,f]=(0,t.useState)(!1),{allowedActions:{canCreate:R,canDelete:$,canRead:A}}=(0,s.useRBAC)(r.Z.settings.users),U=(0,o.useQueryClient)(),Q=(0,s.useNotification)(),{formatMessage:I}=(0,m.useIntl)(),{search:F}=(0,i.useLocation)();(0,s.useFocusWhenNavigate)(),Ee();const{notifyStatus:P}=(0,a.useNotifyAT)(),c=["users",F],z=me.map(u=>({...u,metadatas:{...u.metadatas,label:I(u.metadatas.label)}})),h=I({id:"global.users",defaultMessage:"Users"}),G=()=>{P(I({id:"app.utils.notify.data-loaded",defaultMessage:"The {target} has loaded"},{target:h}))},{status:S,data:Z,isFetching:ne}=(0,o.useQuery)(c,()=>ie(F,G),{enabled:A,retry:!1,onError(u){Q({type:"warning",message:{id:"notification.error",message:d(u),defaultMessage:"An error occured"}})}}),k=()=>{f(u=>!u)},X=(0,o.useMutation)(u=>ce(u),{async onSuccess(){await U.refetchQueries(c),await U.refetchQueries(["ee","license-limit-info"])},onError(u){Q({type:"warning",message:{id:"notification.error",message:d(u),defaultMessage:"An error occured"}})}}),H=S!=="success"&&S!=="error"||S==="success"&≠return t.createElement(a.Main,{"aria-busy":H},t.createElement(s.SettingsPageTitle,{name:"Users"}),t.createElement(a.HeaderLayout,{primaryAction:R&&t.createElement(ue,{onClick:k}),title:h,subtitle:I({id:"Settings.permissions.users.listview.header.subtitle",defaultMessage:"All the users who have access to the Strapi admin panel"})}),A&&t.createElement(a.ActionLayout,{startActions:t.createElement(t.Fragment,null,t.createElement(s.SearchURLQuery,{label:I({id:"app.component.search.label",defaultMessage:"Search for {target}"},{target:h})}),t.createElement(T.Z,{displayedFilters:de}))}),t.createElement(a.ContentLayout,{canRead:A},!A&&t.createElement(s.NoPermissions,null),S==="error"&&t.createElement("div",null,"TODO: An error occurred"),A&&t.createElement(t.Fragment,null,t.createElement(s.DynamicTable,{contentType:"Users",isLoading:H,onConfirmDeleteAll:X.mutateAsync,onConfirmDelete:u=>X.mutateAsync([u]),headers:z,rows:Z?.results,withBulkActions:!0,withMainAction:$},t.createElement(C,{canDelete:$,headers:z,rows:Z?.results||[],withBulkActions:!0,withMainAction:$})),t.createElement(b,{pagination:Z?.pagination}))),M&&t.createElement(se,{onToggle:k,queryName:c}))},ge=()=>t.createElement(s.CheckPagePermissions,{permissions:r.Z.settings.users.main},t.createElement(pe,null))},76779:function(D,l,e){var t=e(32735),s=e(60216),r=e.n(s),a=e(39161),i=e.n(a),m=e(13478),o=e.n(m),g=e(57269),n=e.n(g),E=e(59087),y=e.n(E),p=e(5636);const C=({children:T,target:_})=>{const L=(0,m.useNotification)(),{formatMessage:O}=(0,p.useIntl)(),K=()=>{L({type:"info",message:{id:"notification.link-copied"}})},x=O({id:"app.component.CopyToClipboard.label",defaultMessage:"Copy to clipboard"});return t.createElement(m.ContentBox,{endAction:t.createElement(E.CopyToClipboard,{onCopy:K,text:_},t.createElement(a.IconButton,{label:x,noBorder:!0,icon:t.createElement(g.Duplicate,null)})),title:_,titleEllipsis:!0,subtitle:T,icon:t.createElement("span",{style:{fontSize:32}},"\u2709\uFE0F"),iconBackground:"neutral100"})};C.propTypes={children:r().oneOfType([r().element,r().string]).isRequired,target:r().string.isRequired},l.Z=C},16325:function(D,l,e){var t=e(32735),s=e(5636),r=e(60216),a=e.n(r),i=e(463),m=e(76779);const o=({registrationToken:g})=>{const{formatMessage:n}=(0,s.useIntl)(),E=`${window.location.origin}${i.Z}auth/register?registrationToken=${g}`;return t.createElement(m.Z,{target:E},n({id:"app.components.Users.MagicLink.connect",defaultMessage:"Copy and share this link to give access to this user"}))};o.defaultProps={registrationToken:""},o.propTypes={registrationToken:a().string},l.Z=o},4397:function(D,l,e){var t=e(32735),s=e(60216),r=e.n(s),a=e(5636),i=e(39161),m=e.n(i),o=e(84968),g=e.n(o),n=e(83292),E=e(57269),y=e.n(E),p=e(13478),C=e.n(p);const T=n.keyframes`
3
- from {
4
- transform: rotate(0deg);
5
- }
6
- to {
7
- transform: rotate(359deg);
8
- }
9
- `,_=n.default.div`
10
- animation: ${T} 2s infinite linear;
11
- `,L=()=>t.createElement(_,null,t.createElement(E.Loader,null)),O=async()=>{const{get:x}=(0,p.getFetchClient)(),{data:v}=await x("/admin/roles");return v.data},K=({disabled:x,error:v,onChange:oe,value:q})=>{const{status:le,data:ee}=(0,o.useQuery)(["roles"],O,{staleTime:5e4}),{formatMessage:N}=(0,a.useIntl)(),te=v?N({id:v,defaultMessage:v}):"",ae=N({id:"app.components.Users.ModalCreateBody.block-title.roles",defaultMessage:"User's roles"}),Y=N({id:"app.components.Users.ModalCreateBody.block-title.roles.description",defaultMessage:"A user can have one or several roles"}),se=N({id:"app.components.Select.placeholder",defaultMessage:"Select"}),w=le==="loading"?t.createElement(L,null):void 0;return t.createElement(i.Select,{id:"roles",disabled:x,error:te,hint:Y,label:ae,name:"roles",onChange:b=>{oe({target:{name:"roles",value:b}})},placeholder:se,multi:!0,startIcon:w,value:q,withTags:!0,required:!0},(ee||[]).map(b=>t.createElement(i.Option,{key:b.id,value:b.id},N({id:`global.${b.code}`,defaultMessage:b.name}))))};K.defaultProps={disabled:!1,error:void 0},K.propTypes={disabled:r().bool,error:r().string,onChange:r().func.isRequired,value:r().array.isRequired},l.Z=K},99724:function(D,l,e){var t=e(32735),s=e(5636),r=e(60216),a=e.n(r),i=e(39161),m=e.n(i),o=e(57269),g=e.n(o),n=e(36866),E=e.n(n),y=e(58414);const p=({onClick:C})=>{const{formatMessage:T}=(0,s.useIntl)(),{license:_}=(0,y.q5)(),{permittedSeats:L,shouldStopCreate:O}=_?.data??{};return t.createElement(i.Flex,{gap:2},!E()(L)&&O&&t.createElement(i.Tooltip,{description:T({id:"Settings.application.admin-seats.at-limit-tooltip",defaultMessage:"At limit: add seats to invite more users"}),position:"left"},t.createElement(i.Icon,{width:`${14/16}rem`,height:`${14/16}rem`,color:"danger500",as:o.ExclamationMarkCircle})),t.createElement(i.Button,{"data-testid":"create-user-button",onClick:C,startIcon:t.createElement(o.Envelop,null),size:"S",disabled:O},T({id:"Settings.permissions.users.create",defaultMessage:"Invite new user"})))};p.propTypes={onClick:a().func.isRequired},l.Z=p},64746:function(D,l,e){var t=e(62658);const s=strapi.features.isEnabled(strapi.features.SSO)?{useSSORegistration:!0}:{},r={...t.Z,...s};l.Z=r},43116:function(D,l){const e=strapi.features.isEnabled(strapi.features.SSO)?[[{intlLabel:{id:"Settings.permissions.users.form.sso",defaultMessage:"Connect with SSO"},hint:{id:"Settings.permissions.users.form.sso.description",defaultMessage:"When enabled (ON), users can login via SSO"},name:"useSSORegistration",type:"bool",size:{col:6,xs:12}}]]:[];l.Z=e},28890:function(D,l,e){var t=e(32735),s=e(5636),r=e(60216),a=e.n(r),i=e(463),m=e(76779);const o=({registrationToken:g})=>{const{formatMessage:n}=(0,s.useIntl)();return g?t.createElement(m.Z,{target:`${window.location.origin}${i.Z}auth/register?registrationToken=${g}`},n({id:"app.components.Users.MagicLink.connect",defaultMessage:"Copy and share this link to give access to this user"})):t.createElement(m.Z,{target:`${window.location.origin}${i.Z}auth/login`},n({id:"app.components.Users.MagicLink.connect.sso",defaultMessage:"Send this link to the user, the first login can be made via a SSO provider."}))};o.defaultProps={registrationToken:""},o.propTypes={registrationToken:a().string},l.Z=o}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4299],{3330:function(i,t,e){e.r(t);var s=e(32735),_=e(13478),l=e.n(_),n=e(72041),E=e(24649);const a=()=>s.createElement(_.CheckPagePermissions,{permissions:n.Z.settings["api-tokens"].create},s.createElement(E.Z,null));t.default=a}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[92],{97841:function(i,s,e){e.r(s);var t=e(32735),_=e(13478),l=e.n(_),n=e(72041),E=e(24649);const a=()=>t.createElement(_.CheckPagePermissions,{permissions:n.Z.settings["api-tokens"].read},t.createElement(E.Z,null));s.default=a}}]);
@@ -1,16 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[8056],{81450:function($,v,n){n.d(v,{Z:function(){return A}});var e=n(32735),s=n(5141),b=n(60216),t=n.n(b),a=n(39161),l=n(13478),C=n(57269),D=n(5636);const k=({tokenName:o,onClickDelete:c,tokenType:E})=>{const{formatMessage:d}=(0,D.useIntl)(),{trackUsage:p}=(0,l.useTracking)(),[u,T]=(0,e.useState)(!1),h=()=>{T(!1),p("willDeleteToken",{tokenType:E}),c()};return e.createElement(a.Box,{paddingLeft:1,onClick:f=>f.stopPropagation()},e.createElement(a.IconButton,{onClick:()=>{T(!0)},label:d({id:"global.delete-target",defaultMessage:"Delete {target}"},{target:`${o}`}),name:"delete",noBorder:!0,icon:e.createElement(C.Trash,null)}),e.createElement(l.ConfirmDialog,{onToggleDialog:()=>T(!1),onConfirm:h,isOpen:u}))};k.propTypes={tokenName:t().string.isRequired,onClickDelete:t().func.isRequired,tokenType:t().string.isRequired};var L=k,H=n(83292);const B={edit:{id:"app.component.table.edit",defaultMessage:"Edit {target}"},read:{id:"app.component.table.read",defaultMessage:"Read {target}"}},w=(0,H.default)(l.Link)`
2
- svg {
3
- path {
4
- fill: ${({theme:o})=>o.colors.neutral500};
5
- }
6
- }
7
-
8
- &:hover,
9
- &:focus {
10
- svg {
11
- path {
12
- fill: ${({theme:o})=>o.colors.neutral800};
13
- }
14
- }
15
- }
16
- `,g=({tokenName:o,tokenId:c,buttonType:E,children:d})=>{const{formatMessage:p}=(0,D.useIntl)(),{location:{pathname:u}}=(0,s.useHistory)();return e.createElement(w,{to:`${u}/${c}`,title:p(B[E],{target:o})},d)};g.propTypes={tokenName:t().string.isRequired,tokenId:t().oneOfType([t().string,t().number]).isRequired,buttonType:t().string,children:t().node.isRequired},g.defaultProps={buttonType:"edit"};var U=g;const S=({tokenName:o,tokenId:c})=>e.createElement(U,{tokenName:o,tokenId:c},e.createElement(C.Pencil,null));S.propTypes={tokenName:t().string.isRequired,tokenId:t().oneOfType([t().string,t().number]).isRequired};var W=S;const P=({tokenName:o,tokenId:c})=>e.createElement(U,{tokenName:o,tokenId:c,buttonType:"read"},e.createElement(C.Eye,null));P.propTypes={tokenName:t().string.isRequired,tokenId:t().oneOfType([t().string,t().number]).isRequired};var V=P;const m=({permissions:o,headers:c,contentType:E,isLoading:d,tokens:p,onConfirmDelete:u,tokenType:T})=>{const{canDelete:h,canUpdate:f,canRead:M}=o,N=h||f||M,[{query:y}]=(0,l.useQueryParams)(),[,R]=y?y.sort.split(":"):"ASC",{push:x,location:{pathname:I}}=(0,s.useHistory)(),{trackUsage:F}=(0,l.useTracking)(),Z=p.sort((i,O)=>{const r=i.name.localeCompare(O.name);return R==="DESC"?-r:r});return e.createElement(l.DynamicTable,{headers:c,contentType:E,rows:p,withBulkActions:N,isLoading:d,onConfirmDelete:u},e.createElement(a.Tbody,null,Z.map(i=>e.createElement(a.Tr,{key:i.id,...(0,l.onRowClick)({fn(){F("willEditTokenFromList",{tokenType:T}),x(`${I}/${i.id}`)},condition:f})},e.createElement(a.Td,{maxWidth:(0,l.pxToRem)(250)},e.createElement(a.Typography,{textColor:"neutral800",fontWeight:"bold",ellipsis:!0},i.name)),e.createElement(a.Td,{maxWidth:(0,l.pxToRem)(250)},e.createElement(a.Typography,{textColor:"neutral800",ellipsis:!0},i.description)),e.createElement(a.Td,null,e.createElement(a.Typography,{textColor:"neutral800"},e.createElement(l.RelativeTime,{timestamp:new Date(i.createdAt)}))),e.createElement(a.Td,null,i.lastUsedAt&&e.createElement(a.Typography,{textColor:"neutral800"},e.createElement(l.RelativeTime,{timestamp:new Date(i.lastUsedAt)}))),N&&e.createElement(a.Td,null,e.createElement(a.Flex,{justifyContent:"end"},f&&e.createElement(W,{tokenName:i.name,tokenId:i.id}),!f&&M&&e.createElement(V,{tokenName:i.name,tokenId:i.id}),h&&e.createElement(L,{tokenName:i.name,onClickDelete:()=>u(i.id),tokenType:T})))))))};m.propTypes={tokens:t().array,permissions:t().shape({canRead:t().bool,canDelete:t().bool,canUpdate:t().bool}).isRequired,headers:t().arrayOf(t().shape({cellFormatter:t().func,key:t().string.isRequired,metadatas:t().shape({label:t().string.isRequired,sortable:t().bool}).isRequired,name:t().string.isRequired})),contentType:t().string.isRequired,isLoading:t().bool,onConfirmDelete:t().func,tokenType:t().string.isRequired},m.defaultProps={tokens:[],headers:[],isLoading:!1,onConfirmDelete(){}};var A=m},68774:function($,v,n){n.d(v,{Z:function(){return e},f:function(){return s}});const e="api-token",s="transfer-token"},37168:function($,v,n){n.r(v),n.d(v,{default:function(){return P}});var e=n(32735),s=n(13478),b=n(72041),t=n(5636),a=n(84968),l=n(5141),C=n(33348),D=n.n(C),k=n(39161),L=n(57269),B=[{name:"name",key:"name",metadatas:{label:{id:"Settings.apiTokens.ListView.headers.name",defaultMessage:"Name"},sortable:!0}},{name:"description",key:"description",metadatas:{label:{id:"Settings.apiTokens.ListView.headers.description",defaultMessage:"Description"},sortable:!1}},{name:"createdAt",key:"createdAt",metadatas:{label:{id:"Settings.apiTokens.ListView.headers.createdAt",defaultMessage:"Created at"},sortable:!1}},{name:"lastUsedAt",key:"lastUsedAt",metadatas:{label:{id:"Settings.apiTokens.ListView.headers.lastUsedAt",defaultMessage:"Last used"},sortable:!1}}],w=n(81450),g=n(68774),S=()=>{(0,s.useFocusWhenNavigate)();const V=(0,a.useQueryClient)(),{formatMessage:m}=(0,t.useIntl)(),A=(0,s.useNotification)(),{allowedActions:{canCreate:o,canDelete:c,canUpdate:E,canRead:d}}=(0,s.useRBAC)(b.Z.settings["api-tokens"]),{push:p}=(0,l.useHistory)(),{trackUsage:u}=(0,s.useTracking)(),{startSection:T}=(0,s.useGuidedTour)(),h=(0,e.useRef)(T),{get:f,del:M}=(0,s.useFetchClient)();(0,e.useEffect)(()=>{h.current&&h.current("apiTokens")},[]),(0,e.useEffect)(()=>{p({search:D().stringify({sort:"name:ASC"},{encode:!1})})},[p]);const N=B.map(r=>({...r,metadatas:{...r.metadatas,label:m(r.metadatas.label)}})),{data:y,status:R,isFetching:x}=(0,a.useQuery)(["api-tokens"],async()=>{u("willAccessTokenList",{tokenType:g.Z});const{data:{data:r}}=await f("/admin/api-tokens");return u("didAccessTokenList",{number:r.length,tokenType:g.Z}),r},{enabled:d,onError(){A({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),I=d&&(R!=="success"&&R!=="error"||R==="success"&&x),F=(0,a.useMutation)(async r=>{await M(`/admin/api-tokens/${r}`)},{async onSuccess(){await V.invalidateQueries(["api-tokens"]),u("didDeleteToken")},onError(r){r?.response?.data?.data?A({type:"warning",message:r.response.data.data}):A({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),Z=d&&y,i=d&&!y&&!o,O=d&&!y&&o;return e.createElement(k.Main,{"aria-busy":I},e.createElement(s.SettingsPageTitle,{name:"API Tokens"}),e.createElement(k.HeaderLayout,{title:m({id:"Settings.apiTokens.title",defaultMessage:"API Tokens"}),subtitle:m({id:"Settings.apiTokens.description",defaultMessage:"List of generated tokens to consume the API"}),primaryAction:o?e.createElement(s.LinkButton,{"data-testid":"create-api-token-button",startIcon:e.createElement(L.Plus,null),size:"S",onClick:()=>u("willAddTokenFromList",{tokenType:g.Z}),to:"/settings/api-tokens/create"},m({id:"Settings.apiTokens.create",defaultMessage:"Create new API Token"})):void 0}),e.createElement(k.ContentLayout,null,!d&&e.createElement(s.NoPermissions,null),Z&&e.createElement(w.Z,{permissions:{canRead:d,canDelete:c,canUpdate:E},headers:N,contentType:"api-tokens",rows:y,isLoading:I,onConfirmDelete:r=>F.mutateAsync(r),tokens:y,tokenType:g.Z}),O&&e.createElement(s.NoContent,{content:{id:"Settings.apiTokens.addFirstToken",defaultMessage:"Add your first API Token"},action:e.createElement(k.Button,{variant:"secondary",startIcon:e.createElement(L.Plus,null)},m({id:"Settings.apiTokens.addNewToken",defaultMessage:"Add new API Token"}))}),i&&e.createElement(s.NoContent,{content:{id:"Settings.apiTokens.emptyStateLayout",defaultMessage:"You don\u2019t have any content yet..."}})))},P=()=>e.createElement(s.CheckPagePermissions,{permissions:b.Z.settings["api-tokens"].main},e.createElement(S,null))}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[2812],{83196:function(_,D,i){var e=i(32735),u=i(60216),p=i.n(u),y=i(5636),t=i(39161),x=i.n(t),n=i(57269),N=i.n(n),h=i(13478),V=i.n(h);const R=({displayedFilters:M})=>{const[b,T]=(0,e.useState)(!1),{formatMessage:v}=(0,y.useIntl)(),S=(0,e.useRef)(),A=()=>{T(O=>!O)};return e.createElement(e.Fragment,null,e.createElement(t.Box,{paddingTop:1,paddingBottom:1},e.createElement(t.Button,{variant:"tertiary",ref:S,startIcon:e.createElement(n.Filter,null),onClick:A,size:"S"},v({id:"app.utils.filters",defaultMessage:"Filters"})),b&&e.createElement(h.FilterPopoverURLQuery,{displayedFilters:M,isVisible:b,onToggle:A,source:S})),e.createElement(h.FilterListURLQuery,{filtersSchema:M}))};R.propTypes={displayedFilters:p().arrayOf(p().shape({name:p().string.isRequired,metadatas:p().shape({label:p().string}),fieldSchema:p().shape({type:p().string})})).isRequired},D.Z=R},71765:function(_,D,i){i.r(D),i.d(D,{default:function(){return X}});var e=i(32735),u=i(13478),p=i(72041),y=i(5636),t=i(39161),x=i(60216),n=i.n(x),N=i(57269),h=i(51064),V=i.n(h),M=()=>{const{formatDate:a}=(0,y.useIntl)();return m=>{const o=V()(m),d=a(o,{dateStyle:"long"}),s=a(o,{timeStyle:"medium",hourCycle:"h24"});return`${d}, ${s}`}};const b={"entry.create":"Create entry{model, select, undefined {} other { ({model})}}","entry.update":"Update entry{model, select, undefined {} other { ({model})}}","entry.delete":"Delete entry{model, select, undefined {} other { ({model})}}","entry.publish":"Publish entry{model, select, undefined {} other { ({model})}}","entry.unpublish":"Unpublish entry{model, select, undefined {} other { ({model})}}","media.create":"Create media","media.update":"Update media","media.delete":"Delete media","media-folder.create":"Create media folder","media-folder.update":"Update media folder","media-folder.delete":"Delete media folder","user.create":"Create user","user.update":"Update user","user.delete":"Delete user","admin.auth.success":"Admin login","admin.logout":"Admin logout","content-type.create":"Create content type","content-type.update":"Update content type","content-type.delete":"Delete content type","component.create":"Create component","component.update":"Update component","component.delete":"Delete component","role.create":"Create role","role.update":"Update role","role.delete":"Delete role","permission.create":"Create permission","permission.update":"Update permission","permission.delete":"Delete permission"},T=a=>b[a]||a,v=({headers:a,rows:l,onOpenModal:m})=>{const{formatMessage:o}=(0,y.useIntl)(),d=M(),s=({type:r,value:c,model:g})=>r==="date"?d(c):r==="action"?o({id:`Settings.permissions.auditLogs.${c}`,defaultMessage:T(c)},{model:g}):c||"-";return e.createElement(t.Tbody,null,l.map(r=>e.createElement(t.Tr,{key:r.id,...(0,u.onRowClick)({fn:()=>m(r.id)})},a.map(({key:c,name:g,cellFormatter:f})=>e.createElement(t.Td,{key:c},e.createElement(t.Typography,{textColor:"neutral800"},s({type:c,value:f?f(r[g]):r[g],model:r.payload?.model})))),e.createElement(t.Td,{...u.stopPropagation},e.createElement(t.Flex,{justifyContent:"end"},e.createElement(t.IconButton,{onClick:()=>m(r.id),"aria-label":o({id:"app.component.table.view",defaultMessage:"{target} details"},{target:`${r.action} action`}),noBorder:!0,icon:e.createElement(N.Eye,null)}))))))};v.defaultProps={rows:[]},v.propTypes={headers:n().array.isRequired,rows:n().array,onOpenModal:n().func.isRequired};var S=v,O=[{name:"action",key:"action",metadatas:{label:{id:"Settings.permissions.auditLogs.action",defaultMessage:"Action"},sortable:!0}},{name:"date",key:"date",metadatas:{label:{id:"Settings.permissions.auditLogs.date",defaultMessage:"Date"},sortable:!0}},{key:"user",name:"user",metadatas:{label:{id:"Settings.permissions.auditLogs.user",defaultMessage:"User"},sortable:!1},cellFormatter:a=>a?a.displayName:""}];const I=({pagination:a})=>e.createElement(t.Box,{paddingTop:4},e.createElement(t.Flex,{alignItems:"flex-end",justifyContent:"space-between"},e.createElement(u.PageSizeURLQuery,null),e.createElement(u.PaginationURLQuery,{pagination:a})));I.defaultProps={pagination:{pageCount:0,pageSize:50,total:0}},I.propTypes={pagination:n().shape({page:n().number,pageCount:n().number,pageSize:n().number,total:n().number})};var j=I,F=i(84968);const $=({actionLabel:a,actionName:l})=>e.createElement(t.Flex,{direction:"column",alignItems:"baseline",gap:1},e.createElement(t.Typography,{textColor:"neutral600",variant:"sigma"},a),e.createElement(t.Typography,{textColor:"neutral600"},l));$.propTypes={actionLabel:n().string.isRequired,actionName:n().string.isRequired};var P=$;const U=({status:a,data:l,formattedDate:m})=>{const{formatMessage:o}=(0,y.useIntl)();if(a==="loading")return e.createElement(t.Flex,{padding:7,justifyContent:"center",alignItems:"center"},e.createElement(t.Loader,null,"Loading content..."));const{action:d,user:s,payload:r}=l;return e.createElement(e.Fragment,null,e.createElement(t.Box,{marginBottom:3},e.createElement(t.Typography,{variant:"delta",id:"title"},o({id:"Settings.permissions.auditLogs.details",defaultMessage:"Log Details"}))),e.createElement(t.Grid,{gap:4,gridCols:2,paddingTop:4,paddingBottom:4,paddingLeft:6,paddingRight:6,marginBottom:4,background:"neutral100",hasRadius:!0},e.createElement(P,{actionLabel:o({id:"Settings.permissions.auditLogs.action",defaultMessage:"Action"}),actionName:o({id:`Settings.permissions.auditLogs.${d}`,defaultMessage:T(d)},{model:r?.model})}),e.createElement(P,{actionLabel:o({id:"Settings.permissions.auditLogs.date",defaultMessage:"Date"}),actionName:m}),e.createElement(P,{actionLabel:o({id:"Settings.permissions.auditLogs.user",defaultMessage:"User"}),actionName:s?.displayName||"-"}),e.createElement(P,{actionLabel:o({id:"Settings.permissions.auditLogs.userId",defaultMessage:"User ID"}),actionName:s?.id.toString()||"-"})),e.createElement(t.JSONInput,{value:JSON.stringify(r,null,2),disabled:!0,label:o({id:"Settings.permissions.auditLogs.payload",defaultMessage:"Payload"})}))};U.defaultProps={data:{}},U.propTypes={status:n().oneOf(["idle","loading","error","success"]).isRequired,data:n().shape({action:n().string,date:n().string,payload:n().object,user:n().object}),formattedDate:n().string.isRequired};var w=U;const W=({handleClose:a,logId:l})=>{const{get:m}=(0,u.useFetchClient)(),o=(0,u.useNotification)(),d=async f=>{const{data:E}=await m(`/admin/audit-logs/${f}`);if(!E)throw new Error("Audit log not found");return E},{data:s,status:r}=(0,F.useQuery)(["audit-log",l],()=>d(l),{onError(){o({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}}),a()}}),c=M(),g=s?c(s.date):"";return e.createElement(t.ModalLayout,{onClose:a,labelledBy:"title"},e.createElement(t.ModalHeader,null,e.createElement(t.Breadcrumbs,{label:g,id:"title"},e.createElement(t.Crumb,null,g))),e.createElement(t.ModalBody,null,e.createElement(w,{status:r,data:s,formattedDate:g})))};W.propTypes={handleClose:n().func.isRequired,logId:n().string.isRequired};var H=W,z=i(83196);const B=({value:a,options:l,onChange:m})=>{const{formatMessage:o}=(0,y.useIntl)(),d=o({id:"Settings.permissions.auditLogs.filter.aria-label",defaultMessage:"Search and select an option to filter"});return e.createElement(t.Combobox,{"aria-label":d,value:a,onChange:m},l.map(({label:s,customValue:r})=>e.createElement(t.ComboboxOption,{key:r,value:r},s)))};B.defaultProps={value:null},B.propTypes={value:n().string,options:n().arrayOf(n().shape({label:n().string.isRequired,customValue:n().string.isRequired}).isRequired).isRequired,onChange:n().func.isRequired};var K=B;const Q=[{intlLabel:{id:"components.FilterOptions.FILTER_TYPES.$eq",defaultMessage:"is"},value:"$eq"},{intlLabel:{id:"components.FilterOptions.FILTER_TYPES.$ne",defaultMessage:"is not"},value:"$ne"}];var Z=({formatMessage:a,users:l})=>{const m=s=>s.username?s.username:s.firstname&&s.lastname?a({id:"Settings.permissions.auditLogs.user.fullname",defaultMessage:"{firstname} {lastname}"},{firstname:s.firstname,lastname:s.lastname}):s.email,o=Object.keys(b).map(s=>({label:a({id:`Settings.permissions.auditLogs.${s}`,defaultMessage:T(s)},{model:void 0}),customValue:s})),d=l&&l.results.map(s=>({label:m(s),customValue:s.id.toString()}));return[{name:"action",metadatas:{customOperators:Q,label:a({id:"Settings.permissions.auditLogs.action",defaultMessage:"Action"}),options:o,customInput:K},fieldSchema:{type:"enumeration"}},{name:"date",metadatas:{label:a({id:"Settings.permissions.auditLogs.date",defaultMessage:"Date"})},fieldSchema:{type:"datetime"}},{name:"user",metadatas:{customOperators:Q,label:a({id:"Settings.permissions.auditLogs.user",defaultMessage:"User"}),options:d,customInput:K},fieldSchema:{type:"relation",mainField:{name:"id"}}}]},J=i(5141),Y=({canRead:a})=>{const{get:l}=(0,u.useFetchClient)(),{search:m}=(0,J.useLocation)(),o=(0,u.useNotification)(),d=async({queryKey:C})=>{const q=C[1],{data:ee}=await l(`/admin/audit-logs${q}`);return ee},s=async()=>{const{data:C}=await l("/admin/users");return C},r={enabled:a,keepPreviousData:!0,retry:!1,staleTime:1e3*20,onError:C=>o({type:"warning",message:C.message})},{data:c,isLoading:g,isError:f}=(0,F.useQuery)(["auditLogs",m],d,r),{data:E,isError:L}=(0,F.useQuery)(["auditLogsUsers"],s,{...r,staleTime:2*(1e3*60)}),k=f||L;return{auditLogs:c,users:E?.data,isLoading:g,hasError:k}},G=()=>{const{formatMessage:a}=(0,y.useIntl)(),{allowedActions:{canRead:l}}=(0,u.useRBAC)(p.Z.settings.auditLogs),[{query:m},o]=(0,u.useQueryParams)(),{auditLogs:d,users:s,isLoading:r,hasError:c}=Y({canRead:l});(0,u.useFocusWhenNavigate)();const g=Z({formatMessage:a,users:s}),f=a({id:"global.auditLogs",defaultMessage:"Audit Logs"}),E=O.map(L=>({...L,metadatas:{...L.metadatas,label:a(L.metadatas.label)}}));return c?e.createElement(t.Layout,null,e.createElement(t.ContentLayout,null,e.createElement(t.Box,{paddingTop:8},e.createElement(u.AnErrorOccurred,null)))):e.createElement(t.Main,{"aria-busy":r},e.createElement(u.SettingsPageTitle,{name:f}),e.createElement(t.HeaderLayout,{title:f,subtitle:a({id:"Settings.permissions.auditLogs.listview.header.subtitle",defaultMessage:"Logs of all the activities that happened in your environment"})}),e.createElement(t.ActionLayout,{startActions:e.createElement(z.Z,{displayedFilters:g})}),e.createElement(t.ContentLayout,{canRead:l},e.createElement(u.DynamicTable,{contentType:"Audit logs",headers:E,rows:d?.results||[],withBulkActions:!0,isLoading:r},e.createElement(S,{headers:E,rows:d?.results||[],onOpenModal:L=>o({id:L})})),e.createElement(j,{pagination:d?.pagination})),m?.id&&e.createElement(H,{handleClose:()=>o({id:null},"remove"),logId:m.id}))},X=()=>e.createElement(u.CheckPagePermissions,{permissions:p.Z.settings.auditLogs.main},e.createElement(G,null))}}]);