@strapi/admin 4.9.0-exp.90df253ba90fd6879eb56a720a1f80d04ff745b8 → 4.9.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 (165) hide show
  1. package/.eslintignore +4 -0
  2. package/.eslintrc.js +14 -0
  3. package/admin/src/components/LocalesProvider/__mocks__/useLocalesProvider.js +7 -0
  4. package/admin/src/content-manager/components/DynamicZone/utils/select.js +1 -1
  5. package/admin/src/content-manager/components/EditViewDataManagerProvider/reducer.js +3 -1
  6. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/findAllAndReplace.js +10 -3
  7. package/admin/src/content-manager/components/FieldComponent/utils/select.js +2 -1
  8. package/admin/src/content-manager/components/InputUID/endActionStyle.js +4 -13
  9. package/admin/src/content-manager/components/InputUID/index.js +94 -71
  10. package/admin/src/content-manager/components/Inputs/utils/getInputType.js +1 -1
  11. package/admin/src/content-manager/components/Inputs/utils/select.js +1 -1
  12. package/admin/src/content-manager/hooks/useContentTypeLayout/index.js +1 -2
  13. package/admin/src/content-manager/hooks/useFetchContentTypeLayout/utils/formatLayouts.js +4 -1
  14. package/admin/src/content-manager/pages/CollectionTypeRecursivePath/index.js +1 -2
  15. package/admin/src/content-manager/pages/EditSettingsView/init.js +3 -1
  16. package/admin/src/content-manager/pages/EditSettingsView/utils/createPossibleMainFieldsForModelsAndComponents.js +2 -4
  17. package/admin/src/content-manager/pages/EditView/DeleteLink/utils/select.js +1 -1
  18. package/admin/src/content-manager/pages/EditView/utils/createAttributesLayout.js +2 -1
  19. package/admin/src/content-manager/pages/EditView/utils/getFieldsActionMatchingPermissions.js +2 -1
  20. package/admin/src/content-manager/utils/checkIfAttributeIsDisplayable.js +1 -1
  21. package/admin/src/content-manager/utils/createDefaultForm.js +2 -2
  22. package/admin/src/content-manager/utils/formatLayoutToApi.js +2 -1
  23. package/admin/src/content-manager/utils/getFieldName.js +1 -1
  24. package/admin/src/content-manager/utils/mergeMetasWithSchema.js +1 -1
  25. package/admin/src/content-manager/utils/paths.js +1 -1
  26. package/admin/src/content-manager/utils/removePasswordFieldsFromData.js +1 -1
  27. package/admin/src/hooks/useConfigurations/__mocks__/index.js +7 -0
  28. package/admin/src/hooks/useRegenerate/index.js +12 -7
  29. package/admin/src/hooks/useSettingsForm/index.js +3 -3
  30. package/admin/src/hooks/useSettingsForm/reducer.js +3 -1
  31. package/admin/src/hooks/useSettingsMenu/reducer.js +1 -1
  32. package/admin/src/pages/AuthPage/components/Register/index.js +46 -38
  33. package/admin/src/pages/AuthPage/reducer.js +1 -1
  34. package/admin/src/pages/SettingsPage/components/Tokens/FormHead/index.js +4 -0
  35. package/admin/src/pages/SettingsPage/components/Tokens/Regenerate/index.js +5 -3
  36. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/CollapsableContentType/index.js +1 -1
  37. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/reducer.js +1 -1
  38. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/utils/transformPermissionsData.js +6 -8
  39. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/utils/createDefaultConditionsForm.js +1 -1
  40. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/utils/generateCheckboxesActions.js +2 -1
  41. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/ActionRow/utils/getRowLabelCheckboxeState.js +2 -1
  42. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/utils/getRowLabelCheckboxesState.js +1 -1
  43. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/reducer.js +6 -1
  44. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/createDefaultCTFormFromLayout.js +5 -1
  45. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/createDefaultPluginsFormFromLayout.js +1 -2
  46. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatContentTypesPermissionToAPI.js +2 -2
  47. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/updateConditionsToFalse.js +4 -1
  48. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/updateValues.js +1 -1
  49. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/utils/formatActions.js +1 -1
  50. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/utils/createArrayOfValues.js +2 -1
  51. package/admin/src/pages/SettingsPage/pages/Roles/ListPage/index.js +1 -1
  52. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/index.js +47 -5
  53. package/admin/src/pages/SettingsPage/pages/TransferTokens/ListView/index.js +27 -5
  54. package/admin/src/pages/SettingsPage/pages/Users/ProtectedEditPage/index.js +2 -2
  55. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/utils/formatData.js +1 -7
  56. package/admin/src/permissions/index.js +1 -1
  57. package/admin/src/translations/en.json +1 -0
  58. package/admin/src/utils/getAttributesToDisplay.js +2 -4
  59. package/admin/src/utils/getExistingActions.js +1 -3
  60. package/admin/src/utils/sortLinks.js +1 -1
  61. package/build/1387.84b454d3.chunk.js +1 -0
  62. package/build/1657.45231968.chunk.js +168 -0
  63. package/build/3081.bcf9a12f.chunk.js +108 -0
  64. package/build/462.8fff7f3b.chunk.js +71 -0
  65. package/build/4628.20631dd1.chunk.js +1 -0
  66. package/build/5542.b8240e3f.chunk.js +70 -0
  67. package/build/5563.905daa13.chunk.js +79 -0
  68. package/build/6404.68405699.chunk.js +100 -0
  69. package/build/7259.b7d00cea.chunk.js +1 -0
  70. package/build/8694.6522968d.chunk.js +247 -0
  71. package/build/9347.058ddb22.chunk.js +1 -0
  72. package/build/Admin-authenticatedApp.31bf88ef.chunk.js +79 -0
  73. package/build/Admin_InternalErrorPage.15c6bf07.chunk.js +1 -0
  74. package/build/Admin_homePage.da2181fe.chunk.js +73 -0
  75. package/build/Admin_marketplace.d99044eb.chunk.js +31 -0
  76. package/build/Admin_pluginsPage.f6b52ee9.chunk.js +6 -0
  77. package/build/Admin_profilePage.9112cffc.chunk.js +15 -0
  78. package/build/Admin_settingsPage.cb63220f.chunk.js +79 -0
  79. package/build/Upload_ConfigureTheView.eaaec495.chunk.js +1 -0
  80. package/build/admin-app.8cde5b22.chunk.js +110 -0
  81. package/build/admin-edit-roles-page.4f1858e9.chunk.js +280 -0
  82. package/build/admin-edit-users.7e14d85f.chunk.js +10 -0
  83. package/build/admin-roles-list.97e198f9.chunk.js +31 -0
  84. package/build/admin-users.d02de059.chunk.js +34 -0
  85. package/build/api-tokens-create-page.97595e12.chunk.js +1 -0
  86. package/build/api-tokens-edit-page.cd36e30e.chunk.js +1 -0
  87. package/build/api-tokens-list-page.6757c7b9.chunk.js +16 -0
  88. package/build/audit-logs-settings-page.ca9a3c46.chunk.js +76 -0
  89. package/build/content-manager.de0ee3e5.chunk.js +1132 -0
  90. package/build/content-type-builder-list-view.9c2c020c.chunk.js +214 -0
  91. package/build/content-type-builder.ec5ac7ab.chunk.js +126 -0
  92. package/build/email-settings-page.1095e1ab.chunk.js +10 -0
  93. package/build/{en-json.01a88a30.chunk.js → en-json.b052667a.chunk.js} +1 -1
  94. package/build/{highlight.js.26ef649f.chunk.js → highlight.js.28a1547e.chunk.js} +2 -2
  95. package/build/i18n-settings-page.7d80aae0.chunk.js +60 -0
  96. package/build/index.html +1 -1
  97. package/build/main.d40f9ca1.js +2280 -0
  98. package/build/{runtime~main.a40b1b57.js → runtime~main.7cdc9956.js} +1 -1
  99. package/build/sso-settings-page.1dd4886e.chunk.js +1 -0
  100. package/build/transfer-tokens-create-page.ec2ca215.chunk.js +1 -0
  101. package/build/transfer-tokens-edit-page.22bf28e5.chunk.js +1 -0
  102. package/build/transfer-tokens-list-page.cf8c77f2.chunk.js +16 -0
  103. package/build/upload-settings.945fdcfa.chunk.js +13 -0
  104. package/build/upload-translation-fr-json.baab9911.chunk.js +1 -0
  105. package/build/{upload-translation-th-json.3847dae0.chunk.js → upload-translation-th-json.98d35574.chunk.js} +1 -1
  106. package/build/upload.a86b1054.chunk.js +33 -0
  107. package/build/users-advanced-settings-page.5b5a9baa.chunk.js +8 -0
  108. package/build/users-email-settings-page.e5506eb4.chunk.js +23 -0
  109. package/build/users-providers-settings-page.e32089c2.chunk.js +28 -0
  110. package/build/users-roles-settings-page.a5c5b0df.chunk.js +30 -0
  111. package/build/webhook-edit-page.213f0075.chunk.js +75 -0
  112. package/build/webhook-list-page.5beb2a5c.chunk.js +71 -0
  113. package/ee/server/bootstrap.js +3 -0
  114. package/ee/server/register.js +3 -2
  115. package/ee/server/services/audit-logs.js +75 -16
  116. package/ee/server/utils/persisted-tables.js +49 -0
  117. package/jest.config.front.js +1 -6
  118. package/package.json +21 -19
  119. package/server/middlewares/data-transfer.js +4 -1
  120. package/server/services/permission/permissions-manager/sanitize.js +2 -0
  121. package/webpack.config.js +1 -1
  122. package/build/2637.679b590b.chunk.js +0 -1
  123. package/build/4049.64715f20.chunk.js +0 -1
  124. package/build/5563.451e91ee.chunk.js +0 -30
  125. package/build/7112.2bf13da3.chunk.js +0 -14
  126. package/build/7259.7744297b.chunk.js +0 -1
  127. package/build/8469.853c822b.chunk.js +0 -1
  128. package/build/8580.b0dcf37c.chunk.js +0 -98
  129. package/build/9816.01ee964f.chunk.js +0 -2
  130. package/build/Admin-authenticatedApp.5aa08bf5.chunk.js +0 -79
  131. package/build/Admin_InternalErrorPage.4ad8b0df.chunk.js +0 -1
  132. package/build/Admin_homePage.1411fb7c.chunk.js +0 -68
  133. package/build/Admin_marketplace.0f6c8ee2.chunk.js +0 -22
  134. package/build/Admin_pluginsPage.15e3b0fd.chunk.js +0 -1
  135. package/build/Admin_profilePage.d2a8f9ab.chunk.js +0 -15
  136. package/build/Admin_settingsPage.489ec4eb.chunk.js +0 -9
  137. package/build/Upload_ConfigureTheView.34dde278.chunk.js +0 -1
  138. package/build/admin-app.4b313104.chunk.js +0 -112
  139. package/build/admin-edit-roles-page.3b196317.chunk.js +0 -216
  140. package/build/admin-edit-users.af3b0f15.chunk.js +0 -10
  141. package/build/admin-roles-list.0ad504a7.chunk.js +0 -2
  142. package/build/admin-users.af8c3123.chunk.js +0 -11
  143. package/build/api-tokens-create-page.2a6e22bd.chunk.js +0 -1
  144. package/build/api-tokens-edit-page.fa38cd63.chunk.js +0 -1
  145. package/build/api-tokens-list-page.93f24348.chunk.js +0 -16
  146. package/build/audit-logs-settings-page.7be97e82.chunk.js +0 -1
  147. package/build/content-manager.f530e141.chunk.js +0 -1139
  148. package/build/content-type-builder-list-view.cf38fe2f.chunk.js +0 -191
  149. package/build/content-type-builder.6ecd201d.chunk.js +0 -126
  150. package/build/email-settings-page.4bdbef9a.chunk.js +0 -3
  151. package/build/i18n-settings-page.2bb5be96.chunk.js +0 -1
  152. package/build/main.43b93ff3.js +0 -3843
  153. package/build/sso-settings-page.5a8588ef.chunk.js +0 -1
  154. package/build/transfer-tokens-create-page.a1f14bb1.chunk.js +0 -1
  155. package/build/transfer-tokens-edit-page.00ee1c74.chunk.js +0 -1
  156. package/build/transfer-tokens-list-page.ce37354b.chunk.js +0 -16
  157. package/build/upload-settings.0200561d.chunk.js +0 -1
  158. package/build/upload-translation-fr-json.84429734.chunk.js +0 -1
  159. package/build/upload.c7da1611.chunk.js +0 -13
  160. package/build/users-advanced-settings-page.c0cae03a.chunk.js +0 -1
  161. package/build/users-email-settings-page.a3c80419.chunk.js +0 -1
  162. package/build/users-providers-settings-page.5f86e45c.chunk.js +0 -1
  163. package/build/users-roles-settings-page.b02986df.chunk.js +0 -30
  164. package/build/webhook-edit-page.a2a2b7bb.chunk.js +0 -23
  165. package/build/webhook-list-page.029957a4.chunk.js +0 -1
@@ -1,10 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4263],{34669:function(R,u,e){e.r(u),e.d(u,{default:function(){return k}});var t=e(32735),a=e(13478),n=e(5141),g=e(92891),l=e(72041),d=e(20011),o=e(5636),p=e(60216),m=e.n(p),c=e(88423),h=e.n(c),P=e(33795),A=e.n(P),W=e(9086),T=e.n(W),K=e(84968),Z=e(83281),s=e(39161),f=e(57269),v=e(64421);const b=async y=>{const{get:_}=(0,a.getFetchClient)(),{data:r}=await _(`/admin/users/${y}`);return r.data},G=async(y,_)=>{const{put:r}=(0,a.getFetchClient)(),{data:M}=await r(`/admin/users/${y}`,_);return M.data};var H=[[{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}}]],C=e(1057),Y=e(4397);const j=(()=>window&&window.strapi&&window.strapi.isEE?e(28890).Z:e(16325).Z)(),z=["email","firstname","lastname","username","isActive","roles"],F=y=>{let{canUpdate:_}=y;const{formatMessage:r}=(0,o.useIntl)(),{params:{id:M}}=(0,n.useRouteMatch)("/settings/users/:id"),{push:U}=(0,n.useHistory)(),{setUserDisplayName:Q}=(0,a.useAppInfos)(),S=(0,a.useNotification)(),{lockApp:q,unlockApp:ee}=(0,a.useOverlayBlocker)();(0,a.useFocusWhenNavigate)();const{status:te,data:x}=(0,K.useQuery)(["user",M],()=>b(M),{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)}}),ae=async(i,E)=>{q();try{const D=await G(M,T()(i,"confirmPassword"));S({type:"success",message:r({id:"notification.success.saved",defaultMessage:"Saved"})});const O=a.auth.getUserInfo();if(M.toString()===O.id.toString()){a.auth.setUserInfo(D);const B=A()(i,"username")||(0,v.Pp)(i.firstname,i.lastname);Q(B)}E.setValues(h()(i,z))}catch(D){const O=(0,v.Iz)(D.response.data),B=Object.keys(O).reduce((N,L)=>(N[L]=O[L].id,N),{});E.setErrors(B),S({type:"warning",message:A()(D,"response.data.error.message","notification.error")})}ee()},X=te!=="success",se=X?{id:"app.containers.Users.EditPage.header.label-loading",defaultMessage:"Edit user"}:{id:"app.containers.Users.EditPage.header.label",defaultMessage:"Edit {name}"},$=Object.keys(h()(x,z)).reduce((i,E)=>E==="roles"?(i[E]=(x?.roles||[]).map(D=>{let{id:O}=D;return O}),i):(i[E]=x?.[E],i),{}),ne=$.username||(0,v.Pp)($.firstname,$.lastname),J=r(se,{name:ne});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(f.Check,null),type:"button",size:"L"},r({id:"global.save",defaultMessage:"Save"})),title:J,navigationAction:t.createElement(a.Link,{startIcon:t.createElement(f.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:ae,initialValues:$,validateOnChange:!1,validationSchema:C.YM},i=>{let{errors:E,values:D,handleChange:O,isSubmitting:B}=i;return t.createElement(a.Form,null,t.createElement(s.HeaderLayout,{primaryAction:t.createElement(s.Button,{disabled:B||!_,startIcon:t.createElement(f.Check,null),loading:B,type:"submit",size:"L"},r({id:"global.save",defaultMessage:"Save"})),title:J,navigationAction:t.createElement(a.Link,{startIcon:t.createElement(f.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(j,{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},H.map(N=>N.map(L=>t.createElement(s.GridItem,(0,d.Z)({key:L.name},L.size),t.createElement(a.GenericInput,(0,d.Z)({},L,{disabled:!_,error:E[L.name],onChange:O,value:D[L.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(Y.Z,{disabled:!_,error:E.roles,onChange:O,value:D.roles}))))))))}))};F.propTypes={canUpdate:m().bool.isRequired};var w=F,k=()=>{const y=(0,a.useNotification)(),_=(0,t.useMemo)(()=>({read:l.Z.settings.users.read,update:l.Z.settings.users.update}),[]),{isLoading:r,allowedActions:{canRead:M,canUpdate:U}}=(0,a.useRBAC)(_),{state:Q}=(0,n.useLocation)(),S=(0,g.get)(Q,"from","/");return(0,t.useEffect)(()=>{r||!M&&!U&&y({type:"info",message:{id:"notification.permission.not-allowed-read",defaultMessage:"You are not allowed to see this document"}})},[r,M,U,y]),r?t.createElement(a.LoadingIndicatorPage,null):!M&&!U?t.createElement(n.Redirect,{to:S}):t.createElement(w,{canUpdate:U})}},76779:function(R,u,e){var t=e(32735),a=e(60216),n=e.n(a),g=e(39161),l=e.n(g),d=e(13478),o=e.n(d),p=e(57269),m=e.n(p),c=e(59087),h=e.n(c),P=e(5636);const A=({children:W,target:T})=>{const K=(0,d.useNotification)(),{formatMessage:Z}=(0,P.useIntl)(),s=()=>{K({type:"info",message:{id:"notification.link-copied"}})},f=Z({id:"app.component.CopyToClipboard.label",defaultMessage:"Copy to clipboard"});return t.createElement(d.ContentBox,{endAction:t.createElement(c.CopyToClipboard,{onCopy:s,text:T},t.createElement(g.IconButton,{label:f,noBorder:!0,icon:t.createElement(p.Duplicate,null)})),title:T,titleEllipsis:!0,subtitle:W,icon:t.createElement("span",{style:{fontSize:32}},"\u2709\uFE0F"),iconBackground:"neutral100"})};A.propTypes={children:n().oneOfType([n().element,n().string]).isRequired,target:n().string.isRequired},u.Z=A},16325:function(R,u,e){var t=e(32735),a=e(5636),n=e(60216),g=e.n(n),l=e(463),d=e(76779);const o=({registrationToken:p})=>{const{formatMessage:m}=(0,a.useIntl)(),c=`${window.location.origin}${l.Z}auth/register?registrationToken=${p}`;return t.createElement(d.Z,{target:c},m({id:"app.components.Users.MagicLink.connect",defaultMessage:"Copy and share this link to give access to this user"}))};o.defaultProps={registrationToken:""},o.propTypes={registrationToken:g().string},u.Z=o},4397:function(R,u,e){var t=e(32735),a=e(60216),n=e.n(a),g=e(5636),l=e(39161),d=e.n(l),o=e(84968),p=e.n(o),m=e(83292),c=e(57269),h=e.n(c),P=e(13478),A=e.n(P);const W=m.keyframes`
2
- from {
3
- transform: rotate(0deg);
4
- }
5
- to {
6
- transform: rotate(359deg);
7
- }
8
- `,T=m.default.div`
9
- animation: ${W} 2s infinite linear;
10
- `,K=()=>t.createElement(T,null,t.createElement(c.Loader,null)),Z=async()=>{const{get:f}=(0,P.getFetchClient)(),{data:v}=await f("/admin/roles");return v.data},s=({disabled:f,error:v,onChange:b,value:G})=>{const{status:V,data:H}=(0,o.useQuery)(["roles"],Z,{staleTime:5e4}),{formatMessage:C}=(0,g.useIntl)(),Y=v?C({id:v,defaultMessage:v}):"",j=C({id:"app.components.Users.ModalCreateBody.block-title.roles",defaultMessage:"User's roles"}),z=C({id:"app.components.Users.ModalCreateBody.block-title.roles.description",defaultMessage:"A user can have one or several roles"}),F=C({id:"app.components.Select.placeholder",defaultMessage:"Select"}),w=V==="loading"?t.createElement(K,null):void 0;return t.createElement(l.Select,{id:"roles",disabled:f,error:Y,hint:z,label:j,name:"roles",onChange:I=>{b({target:{name:"roles",value:I}})},placeholder:F,multi:!0,startIcon:w,value:G,withTags:!0,required:!0},(H||[]).map(I=>t.createElement(l.Option,{key:I.id,value:I.id},C({id:`global.${I.code}`,defaultMessage:I.name}))))};s.defaultProps={disabled:!1,error:void 0},s.propTypes={disabled:n().bool,error:n().string,onChange:n().func.isRequired,value:n().array.isRequired},u.Z=s},1057:function(R,u,e){e.d(u,{YM:function(){return m},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",(c,h)=>c?h.required(a.translatedErrors.required):h)};var l={...n,currentPassword:t.Z_().when(["password","confirmPassword"],(c,h,P)=>c||h?P.required(a.translatedErrors.required):P),preferedLanguage:t.Z_().nullable()},o={roles:t.IX().min(1,a.translatedErrors.required).required(a.translatedErrors.required)},m=t.Ry().shape({...n,isActive:t.Xg(),...o})},28890:function(R,u,e){var t=e(32735),a=e(5636),n=e(60216),g=e.n(n),l=e(463),d=e(76779);const o=({registrationToken:p})=>{const{formatMessage:m}=(0,a.useIntl)();return p?t.createElement(d.Z,{target:`${window.location.origin}${l.Z}auth/register?registrationToken=${p}`},m({id:"app.components.Users.MagicLink.connect",defaultMessage:"Copy and share this link to give access to this user"})):t.createElement(d.Z,{target:`${window.location.origin}${l.Z}auth/login`},m({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:g().string},u.Z=o}}]);
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[3455],{67249:function(X,O,o){o.r(O),o.d(O,{default:function(){return G}});var e=o(32735),r=o(13478),A=o(72041),C=o(57269),t=o(39161),B=o(92891),S=o(58469),M=o(5636),N=o(5141),F=o(8888),W=()=>"todo empty role",U=o(60216),f=o.n(U);const x=({id:l,name:d,description:n,usersCount:u,icons:m,rowIndex:i})=>{const{formatMessage:E}=(0,M.useIntl)(),h=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"},h)),e.createElement(t.Td,null,e.createElement(t.Flex,{justifyContent:"flex-end",...r.stopPropagation},m.map((s,p)=>s?e.createElement(t.Box,{key:s.label,paddingLeft:p===0?0:1},e.createElement(t.IconButton,{onClick:s.onClick,label:s.label,noBorder:!0,icon:s.icon})):null))))};x.propTypes={id:f().number.isRequired,name:f().string.isRequired,description:f().string.isRequired,usersCount:f().number.isRequired,icons:f().array.isRequired,rowIndex:f().number.isRequired};var V=x,j=o(97889);const H={roleToDelete:null,showModalConfirmButtonLoading:!1,shouldRefetchData:!1};var Z=(l,d)=>(0,j.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 Q=()=>{(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:h}=(0,F.bF)(!1),[{query:s}]=(0,r.useQueryParams)(),p=s?._q||"",R=(0,S.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:h,getData:i,sortedRoles:R,roles:E}},$=({getData:l,canCreate:d,canDelete:n,canUpdate:u})=>{const{formatMessage:m}=(0,M.useIntl)(),i=(0,r.useNotification)(),[E,h]=(0,e.useState)(!1),{push:s}=(0,N.useHistory)(),[{selectedRoles:p,showModalConfirmButtonLoading:R,roleToDelete:v},T]=(0,e.useReducer)(Z,H),{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=(0,B.get)(a,["response","payload","data","ids"],null);if(c&&Array.isArray(c)){const K=c.join(`
2
- `);i({type:"warning",message:K})}else i({type:"warning",message:{id:"notification.error"}})}g()},y=(0,e.useCallback)(a=>{s(`/settings/roles/duplicate/${a}`)},[s]),k=()=>s("/settings/roles/new"),D=(0,e.useCallback)(a=>{T({type:"SET_ROLE_TO_DELETE",id:a}),g()},[]),g=()=>h(a=>!a),L=(0,e.useCallback)(a=>{s(`/settings/roles/${a}`)},[s]),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]),J=(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:k,getIcons:J,selectedRoles:p,isWarningDeleteAllOpened:E,showModalConfirmButtonLoading:R,handleToggleModal:g,handleDeleteData:b}};var z=()=>{const{formatMessage:l}=(0,M.useIntl)(),{isLoadingForPermissions:d,canCreate:n,canRead:u,canDelete:m,canUpdate:i,isLoading:E,getData:h,sortedRoles:s}=Q(),{handleNewRoleClick:p,getIcons:R,isWarningDeleteAllOpened:v,showModalConfirmButtonLoading:T,handleToggleModal:P,handleDeleteData:b}=$({getData:h,canCreate:n,canDelete:m,canUpdate:i}),y=s.length+1,k=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:k,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,s?.map((g,L)=>e.createElement(V,{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(W,null)),e.createElement(r.ConfirmDialog,{isOpen:v,onConfirm:b,isConfirmButtonLoading:T,onToggleDialog:P}))},G=()=>e.createElement(r.CheckPagePermissions,{permissions:A.Z.settings.roles.main},e.createElement(z,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(64421);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(35563);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(35563);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))}}]);