@strapi/admin 4.8.2 → 4.9.0-beta.1

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 (109) hide show
  1. package/admin/src/content-manager/components/DynamicZone/utils/select.js +1 -1
  2. package/admin/src/content-manager/components/FieldComponent/utils/select.js +2 -1
  3. package/admin/src/content-manager/components/Inputs/utils/getInputType.js +1 -1
  4. package/admin/src/content-manager/components/Inputs/utils/select.js +1 -1
  5. package/admin/src/content-manager/hooks/useContentTypeLayout/index.js +1 -2
  6. package/admin/src/content-manager/hooks/useFetchContentTypeLayout/utils/formatLayouts.js +4 -1
  7. package/admin/src/content-manager/pages/CollectionTypeRecursivePath/index.js +1 -2
  8. package/admin/src/content-manager/pages/EditSettingsView/init.js +3 -1
  9. package/admin/src/content-manager/pages/EditSettingsView/utils/createPossibleMainFieldsForModelsAndComponents.js +2 -4
  10. package/admin/src/content-manager/pages/EditView/DeleteLink/utils/select.js +1 -1
  11. package/admin/src/content-manager/pages/EditView/utils/createAttributesLayout.js +2 -1
  12. package/admin/src/content-manager/pages/EditView/utils/getFieldsActionMatchingPermissions.js +2 -1
  13. package/admin/src/content-manager/utils/checkIfAttributeIsDisplayable.js +1 -1
  14. package/admin/src/content-manager/utils/createDefaultForm.js +2 -2
  15. package/admin/src/content-manager/utils/formatLayoutToApi.js +2 -1
  16. package/admin/src/content-manager/utils/getFieldName.js +1 -1
  17. package/admin/src/content-manager/utils/mergeMetasWithSchema.js +1 -1
  18. package/admin/src/content-manager/utils/paths.js +1 -1
  19. package/admin/src/content-manager/utils/removePasswordFieldsFromData.js +1 -1
  20. package/admin/src/hooks/useRegenerate/index.js +12 -7
  21. package/admin/src/hooks/useSettingsForm/index.js +3 -3
  22. package/admin/src/hooks/useSettingsForm/reducer.js +3 -1
  23. package/admin/src/hooks/useSettingsMenu/reducer.js +1 -1
  24. package/admin/src/pages/AuthPage/reducer.js +1 -1
  25. package/admin/src/pages/SettingsPage/components/Tokens/FormHead/index.js +4 -0
  26. package/admin/src/pages/SettingsPage/components/Tokens/Regenerate/index.js +5 -3
  27. package/admin/src/pages/SettingsPage/components/Tokens/TokenTypeSelect/index.js +7 -5
  28. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/CollapsableContentType/index.js +1 -1
  29. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/reducer.js +1 -1
  30. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/utils/transformPermissionsData.js +6 -8
  31. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/utils/createDefaultConditionsForm.js +1 -1
  32. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/utils/generateCheckboxesActions.js +2 -1
  33. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/ActionRow/utils/getRowLabelCheckboxeState.js +2 -1
  34. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/utils/getRowLabelCheckboxesState.js +1 -1
  35. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/reducer.js +6 -1
  36. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/createDefaultCTFormFromLayout.js +5 -1
  37. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/createDefaultPluginsFormFromLayout.js +1 -2
  38. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatContentTypesPermissionToAPI.js +2 -2
  39. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/updateConditionsToFalse.js +4 -1
  40. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/updateValues.js +1 -1
  41. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/utils/formatActions.js +1 -1
  42. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/utils/createArrayOfValues.js +2 -1
  43. package/admin/src/pages/SettingsPage/pages/Roles/ListPage/index.js +1 -1
  44. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/FormTransferTokenContainer/index.js +41 -0
  45. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/index.js +53 -9
  46. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/utils/schema.js +1 -0
  47. package/admin/src/pages/SettingsPage/pages/TransferTokens/ListView/index.js +27 -5
  48. package/admin/src/pages/SettingsPage/pages/Users/ProtectedEditPage/index.js +2 -2
  49. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/utils/formatData.js +1 -7
  50. package/admin/src/permissions/index.js +1 -1
  51. package/admin/src/translations/en.json +1 -0
  52. package/admin/src/utils/getAttributesToDisplay.js +2 -4
  53. package/admin/src/utils/getExistingActions.js +1 -3
  54. package/admin/src/utils/sortLinks.js +1 -1
  55. package/build/{8580.0aa21940.chunk.js → 2263.4c5916f9.chunk.js} +61 -61
  56. package/build/5563.aa832e5f.chunk.js +30 -0
  57. package/build/6985.66cca29c.chunk.js +1 -0
  58. package/build/7259.e6ef3b8e.chunk.js +1 -0
  59. package/build/{7112.2bf13da3.chunk.js → 9505.dbe702ab.chunk.js} +6 -6
  60. package/build/Admin-authenticatedApp.cb754f73.chunk.js +79 -0
  61. package/build/{Admin_profilePage.d2a8f9ab.chunk.js → Admin_profilePage.76afeca0.chunk.js} +1 -1
  62. package/build/{Admin_settingsPage.7450acfc.chunk.js → Admin_settingsPage.0aa4fcdc.chunk.js} +2 -2
  63. package/build/admin-app.50584489.chunk.js +112 -0
  64. package/build/admin-edit-roles-page.cf543488.chunk.js +216 -0
  65. package/build/admin-edit-users.31c20712.chunk.js +10 -0
  66. package/build/admin-roles-list.489c501f.chunk.js +2 -0
  67. package/build/{admin-users.af8c3123.chunk.js → admin-users.3e111a7d.chunk.js} +1 -1
  68. package/build/{api-tokens-create-page.4328b852.chunk.js → api-tokens-create-page.2a6e22bd.chunk.js} +1 -1
  69. package/build/{api-tokens-edit-page.bce5050f.chunk.js → api-tokens-edit-page.fa38cd63.chunk.js} +1 -1
  70. package/build/content-manager.f8b9710b.chunk.js +1139 -0
  71. package/build/content-type-builder.0f5dbcf1.chunk.js +126 -0
  72. package/build/{en-json.01a88a30.chunk.js → en-json.b052667a.chunk.js} +1 -1
  73. package/build/index.html +1 -1
  74. package/build/main.7fa3d343.js +3783 -0
  75. package/build/{runtime~main.05f8f4a1.js → runtime~main.03d11c09.js} +2 -2
  76. package/build/sso-settings-page.272b87c8.chunk.js +1 -0
  77. package/build/transfer-tokens-list-page.3c9b0280.chunk.js +16 -0
  78. package/build/users-advanced-settings-page.1d3c14c7.chunk.js +1 -0
  79. package/build/{users-email-settings-page.a3c80419.chunk.js → users-email-settings-page.e8db68c4.chunk.js} +1 -1
  80. package/build/users-providers-settings-page.14cac425.chunk.js +1 -0
  81. package/build/users-roles-settings-page.2ea4de84.chunk.js +30 -0
  82. package/build/{webhook-edit-page.a2a2b7bb.chunk.js → webhook-edit-page.329141a5.chunk.js} +3 -3
  83. package/ee/server/bootstrap.js +3 -0
  84. package/ee/server/utils/persisted-tables.js +49 -0
  85. package/package.json +11 -11
  86. package/server/controllers/transfer/runner.js +4 -2
  87. package/server/middlewares/data-transfer.js +4 -1
  88. package/server/routes/transfer.js +13 -4
  89. package/server/services/constants.js +4 -0
  90. package/server/services/permission/permissions-manager/sanitize.js +2 -0
  91. package/server/services/transfer/permission.js +1 -1
  92. package/server/services/transfer/token.js +33 -31
  93. package/server/validation/transfer/token.js +10 -2
  94. package/build/2637.679b590b.chunk.js +0 -1
  95. package/build/4649.33220ac3.chunk.js +0 -30
  96. package/build/7259.3675c199.chunk.js +0 -1
  97. package/build/Admin-authenticatedApp.26f0eff6.chunk.js +0 -79
  98. package/build/admin-app.c0729915.chunk.js +0 -112
  99. package/build/admin-edit-roles-page.3b196317.chunk.js +0 -216
  100. package/build/admin-edit-users.af3b0f15.chunk.js +0 -10
  101. package/build/admin-roles-list.0ad504a7.chunk.js +0 -2
  102. package/build/content-manager.b2578b87.chunk.js +0 -1139
  103. package/build/content-type-builder.a93f97ba.chunk.js +0 -126
  104. package/build/main.ed856941.js +0 -3809
  105. package/build/sso-settings-page.5a8588ef.chunk.js +0 -1
  106. package/build/transfer-tokens-list-page.ce37354b.chunk.js +0 -16
  107. package/build/users-advanced-settings-page.c0cae03a.chunk.js +0 -1
  108. package/build/users-providers-settings-page.5f86e45c.chunk.js +0 -1
  109. package/build/users-roles-settings-page.b02986df.chunk.js +0 -30
@@ -1,2 +1,2 @@
1
- (function(){"use strict";var b={},m={};function a(n){var i=m[n];if(i!==void 0)return i.exports;var t=m[n]={id:n,loaded:!1,exports:{}};return b[n].call(t.exports,t,t.exports,a),t.loaded=!0,t.exports}a.m=b,function(){var n=[];a.O=function(i,t,o,r){if(t){r=r||0;for(var s=n.length;s>0&&n[s-1][2]>r;s--)n[s]=n[s-1];n[s]=[t,o,r];return}for(var e=1/0,s=0;s<n.length;s++){for(var t=n[s][0],o=n[s][1],r=n[s][2],f=!0,l=0;l<t.length;l++)(r&!1||e>=r)&&Object.keys(a.O).every(function(j){return a.O[j](t[l])})?t.splice(l--,1):(f=!1,r<e&&(e=r));if(f){n.splice(s--,1);var c=o();c!==void 0&&(i=c)}}return i}}(),function(){a.n=function(n){var i=n&&n.__esModule?function(){return n.default}:function(){return n};return a.d(i,{a:i}),i}}(),function(){var n=Object.getPrototypeOf?function(t){return Object.getPrototypeOf(t)}:function(t){return t.__proto__},i;a.t=function(t,o){if(o&1&&(t=this(t)),o&8||typeof t=="object"&&t&&(o&4&&t.__esModule||o&16&&typeof t.then=="function"))return t;var r=Object.create(null);a.r(r);var s={};i=i||[null,n({}),n([]),n(n)];for(var e=o&2&&t;typeof e=="object"&&!~i.indexOf(e);e=n(e))Object.getOwnPropertyNames(e).forEach(function(f){s[f]=function(){return t[f]}});return s.default=function(){return t},a.d(r,s),r}}(),function(){a.d=function(n,i){for(var t in i)a.o(i,t)&&!a.o(n,t)&&Object.defineProperty(n,t,{enumerable:!0,get:i[t]})}}(),function(){a.f={},a.e=function(n){return Promise.all(Object.keys(a.f).reduce(function(i,t){return a.f[t](n,i),i},[]))}}(),function(){a.u=function(n){return""+({46:"content-type-builder-translation-zh-Hans-json",90:"i18n-translation-de-json",92:"api-tokens-edit-page",96:"email-translation-de-json",123:"ru-json",129:"i18n-translation-es-json",302:"sso-settings-page",320:"en-json",395:"tr-json",435:"email-translation-it-json",562:"no-json",585:"upload-translation-pt-json",606:"sk-json",615:"upload-translation-uk-json",695:"upload-settings",742:"content-type-builder-translation-th-json",744:"email-translation-cs-json",749:"th-json",801:"Admin-authenticatedApp",830:"he-json",931:"content-type-builder-translation-en-json",994:"content-manager",1001:"content-type-builder-translation-nl-json",1009:"upload-translation-ms-json",1011:"zh-json",1018:"email-translation-ko-json",1023:"content-type-builder-translation-it-json",1056:"upload-translation-tr-json",1157:"email-translation-pt-BR-json",1167:"users-permissions-translation-ko-json",1180:"i18n-translation-tr-json",1312:"ja-json",1331:"upload-translation-es-json",1375:"upload-translation-pt-BR-json",1377:"ko-json",1442:"users-permissions-translation-cs-json",1495:"email-settings-page",1674:"users-permissions-translation-ru-json",1930:"users-permissions-translation-pt-json",2137:"i18n-translation-fr-json",2151:"content-type-builder-translation-id-json",2246:"content-type-builder-translation-dk-json",2248:"gu-json",2282:"users-providers-settings-page",2380:"users-permissions-translation-tr-json",2411:"email-translation-tr-json",2464:"users-permissions-translation-de-json",2489:"upload-translation-ko-json",2492:"transfer-tokens-edit-page",2544:"admin-edit-roles-page",2553:"zh-Hans-json",2567:"content-type-builder-translation-ko-json",2603:"email-translation-en-json",2648:"email-translation-ar-json",2657:"content-type-builder-translation-cs-json",2671:"nl-json",2742:"users-permissions-translation-zh-Hans-json",2812:"audit-logs-settings-page",3025:"ms-json",3038:"upload-translation-sk-json",3043:"email-translation-zh-Hans-json",3095:"users-permissions-translation-sk-json",3098:"users-permissions-translation-fr-json",3166:"email-translation-pt-json",3206:"email-translation-nl-json",3278:"vi-json",3304:"content-type-builder-translation-tr-json",3340:"pt-json",3455:"admin-roles-list",3516:"ca-json",3530:"users-permissions-translation-vi-json",3552:"i18n-settings-page",3650:"upload",3677:"Admin_pluginsPage",3702:"users-permissions-translation-pl-json",3825:"email-translation-dk-json",3948:"content-type-builder-translation-pl-json",3964:"content-type-builder-translation-ms-json",3981:"Admin_homePage",4021:"upload-translation-de-json",4121:"webhook-list-page",4179:"users-permissions-translation-id-json",4263:"admin-edit-users",4299:"api-tokens-create-page",4302:"content-type-builder-translation-zh-json",4587:"email-translation-th-json",4693:"email-translation-fr-json",4804:"upload-translation-ru-json",4816:"transfer-tokens-create-page",4987:"upload-translation-pl-json",5053:"upload-translation-zh-json",5162:"webhook-edit-page",5199:"admin-users",5222:"upload-translation-it-json",5296:"i18n-translation-dk-json",5388:"email-translation-ru-json",5396:"users-permissions-translation-zh-json",5516:"Admin_marketplace",5538:"admin-app",5751:"email-translation-es-json",5880:"upload-translation-ja-json",5894:"hu-json",5895:"Admin_settingsPage",5905:"content-type-builder-list-view",5906:"content-type-builder-translation-pt-BR-json",6232:"upload-translation-th-json",6280:"i18n-translation-ko-json",6332:"hi-json",6377:"users-permissions-translation-dk-json",6434:"upload-translation-en-json",6460:"users-permissions-translation-en-json",6745:"email-translation-uk-json",6784:"email-translation-ms-json",6817:"it-json",6831:"upload-translation-zh-Hans-json",6836:"users-permissions-translation-uk-json",6848:"email-translation-zh-json",6901:"de-json",7048:"users-permissions-translation-nl-json",7094:"users-permissions-translation-ar-json",7155:"content-type-builder-translation-de-json",7186:"content-type-builder-translation-ru-json",7327:"email-translation-vi-json",7347:"highlight.js",7403:"uk-json",7465:"upload-translation-dk-json",7519:"cs-json",7663:"email-translation-id-json",7808:"i18n-translation-zh-json",7817:"users-permissions-translation-es-json",7828:"users-permissions-translation-th-json",7833:"upload-translation-fr-json",7846:"pl-json",7898:"dk-json",7934:"content-type-builder-translation-pt-json",7958:"ar-json",7997:"content-type-builder-translation-sk-json",8006:"fr-json",8056:"api-tokens-list-page",8175:"i18n-translation-en-json",8178:"email-translation-ja-json",8329:"content-type-builder-translation-sv-json",8342:"content-type-builder-translation-es-json",8360:"eu-json",8367:"es-json",8418:"users-email-settings-page",8423:"upload-translation-ca-json",8467:"users-permissions-translation-sv-json",8481:"email-translation-pl-json",8573:"content-type-builder-translation-uk-json",8736:"users-permissions-translation-pt-BR-json",8853:"users-roles-settings-page",8880:"content-type-builder",8897:"id-json",8907:"content-type-builder-translation-ja-json",8965:"content-type-builder-translation-fr-json",9220:"users-permissions-translation-ms-json",9303:"sv-json",9366:"i18n-translation-pl-json",9412:"email-translation-sk-json",9460:"users-advanced-settings-page",9497:"Admin_profilePage",9501:"Admin_InternalErrorPage",9502:"users-permissions-translation-ja-json",9511:"content-type-builder-translation-ar-json",9514:"Upload_ConfigureTheView",9600:"transfer-tokens-list-page",9647:"pt-BR-json",9726:"sa-json",9762:"i18n-translation-zh-Hans-json",9797:"upload-translation-he-json",9903:"ml-json",9905:"users-permissions-translation-it-json"}[n]||n)+"."+{46:"415577fb",90:"362384a6",92:"bce5050f",96:"1b334230",123:"6a01cea6",129:"87b494d1",302:"5a8588ef",320:"01a88a30",395:"bac5dbd3",435:"a2ed8c78",562:"19a2dbfa",585:"6b937fdf",606:"2374f129",615:"9950466a",695:"0875e973",742:"6fe3ed55",744:"6eaeec6a",749:"5f659396",801:"26f0eff6",830:"3cf0b48a",931:"e577d595",994:"b2578b87",1001:"40bbc562",1009:"74f6d746",1011:"3529f1e5",1018:"4de49b23",1023:"13b3c26a",1056:"74117e5c",1157:"81cca553",1167:"357d7a33",1180:"10f0600d",1312:"81b6d1e3",1331:"ba2eb03a",1375:"d1704f0b",1377:"4539f4ba",1442:"7e23424a",1495:"4bdbef9a",1674:"20e177db",1930:"a7eda429",2137:"57ddc77e",2151:"ee3b36bb",2246:"e05583e9",2248:"4d667d0c",2282:"5f86e45c",2380:"2bd7ff98",2411:"e6c0f8fc",2464:"a6fb670f",2489:"a52eab64",2492:"00ee1c74",2544:"3b196317",2553:"4cfef87d",2567:"8a274be5",2603:"4211d4d0",2637:"679b590b",2648:"88304564",2657:"a5b299ca",2671:"98345913",2742:"6ab714ee",2812:"7be97e82",3025:"0eddffd9",3038:"483a18f6",3043:"c6841563",3095:"7f37180f",3098:"7e55bbbb",3166:"2a2a0643",3206:"377bdd9f",3278:"ee4c5537",3304:"cea4d226",3340:"ee554a41",3455:"0ad504a7",3516:"43e14418",3530:"6722a8a2",3552:"2bb5be96",3650:"c7da1611",3677:"15e3b0fd",3702:"0a7287d1",3825:"85402492",3948:"24a34349",3964:"2d29c1e0",3981:"1411fb7c",4021:"420c943b",4049:"64715f20",4121:"029957a4",4179:"a5a0fb59",4263:"af3b0f15",4299:"4328b852",4302:"faedd610",4587:"660fa9a8",4649:"33220ac3",4693:"78be2787",4804:"675f6b93",4816:"a1f14bb1",4987:"426f31c9",5053:"e1dd6eb2",5162:"a2a2b7bb",5199:"af8c3123",5222:"e87d7966",5296:"89401417",5388:"6bce37dd",5396:"7978eaa6",5516:"02608d56",5538:"c0729915",5751:"0b6b1006",5880:"44b88e7a",5894:"fe71e6c8",5895:"7450acfc",5905:"cf38fe2f",5906:"97f71a9d",6232:"3847dae0",6280:"ef4f9471",6332:"323be97d",6377:"60e50f48",6434:"8b7573ce",6460:"4b302272",6745:"bd1fb6bf",6784:"7390477e",6817:"bfe27ed8",6831:"db163b6b",6836:"6a0a1572",6848:"7a2232ea",6901:"fcac7381",7048:"c9f92a3c",7094:"7d87d54d",7112:"2bf13da3",7155:"0979cccb",7186:"54d11230",7259:"3675c199",7327:"9fb7e6d7",7347:"26ef649f",7403:"b7e38370",7465:"bbb2fa05",7519:"4b44411c",7663:"c97239fe",7808:"bef2dc07",7817:"35007573",7828:"1e9c0247",7833:"84429734",7846:"59a5dab3",7898:"e34cad0d",7934:"ddb44f8c",7958:"39e54aba",7997:"626c9493",8006:"f66c3211",8056:"93f24348",8175:"60af6722",8178:"63eebd02",8329:"59f5e1e5",8342:"fe4daad8",8360:"fb17c8f9",8367:"715b6fd8",8418:"a3c80419",8423:"57954414",8467:"17187818",8469:"853c822b",8481:"97d0db97",8573:"c4524247",8580:"0aa21940",8736:"1b6d2920",8853:"b02986df",8880:"a93f97ba",8897:"41e07c46",8907:"9be0d5b2",8965:"b1eb52f6",9220:"c83f87c4",9303:"ae6e71ea",9366:"dfac513d",9412:"53da2fcd",9460:"c0cae03a",9497:"d2a8f9ab",9501:"4ad8b0df",9502:"891fe76e",9511:"56d8fcf4",9514:"34dde278",9600:"ce37354b",9647:"9410688b",9726:"6359a11c",9762:"757ce62d",9797:"0a830937",9816:"01ee964f",9903:"8988e374",9905:"0705465d"}[n]+".chunk.js"}}(),function(){a.miniCssF=function(n){}}(),function(){a.g=function(){if(typeof globalThis=="object")return globalThis;try{return this||new Function("return this")()}catch{if(typeof window=="object")return window}}()}(),function(){a.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)}}(),function(){var n={},i="@strapi/admin:";a.l=function(t,o,r,s){if(n[t]){n[t].push(o);return}var e,f;if(r!==void 0)for(var l=document.getElementsByTagName("script"),c=0;c<l.length;c++){var d=l[c];if(d.getAttribute("src")==t||d.getAttribute("data-webpack")==i+r){e=d;break}}e||(f=!0,e=document.createElement("script"),e.charset="utf-8",e.timeout=120,a.nc&&e.setAttribute("nonce",a.nc),e.setAttribute("data-webpack",i+r),e.src=t),n[t]=[o];var u=function(g,j){e.onerror=e.onload=null,clearTimeout(p);var h=n[t];if(delete n[t],e.parentNode&&e.parentNode.removeChild(e),h&&h.forEach(function(y){return y(j)}),g)return g(j)},p=setTimeout(u.bind(null,void 0,{type:"timeout",target:e}),12e4);e.onerror=u.bind(null,e.onerror),e.onload=u.bind(null,e.onload),f&&document.head.appendChild(e)}}(),function(){a.r=function(n){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})}}(),function(){a.nmd=function(n){return n.paths=[],n.children||(n.children=[]),n}}(),function(){a.p="/admin/"}(),function(){a.b=document.baseURI||self.location.href;var n={1303:0};a.f.j=function(o,r){var s=a.o(n,o)?n[o]:void 0;if(s!==0)if(s)r.push(s[2]);else if(o!=1303){var e=new Promise(function(d,u){s=n[o]=[d,u]});r.push(s[2]=e);var f=a.p+a.u(o),l=new Error,c=function(d){if(a.o(n,o)&&(s=n[o],s!==0&&(n[o]=void 0),s)){var u=d&&(d.type==="load"?"missing":d.type),p=d&&d.target&&d.target.src;l.message="Loading chunk "+o+` failed.
2
- (`+u+": "+p+")",l.name="ChunkLoadError",l.type=u,l.request=p,s[1](l)}};a.l(f,c,"chunk-"+o,o)}else n[o]=0},a.O.j=function(o){return n[o]===0};var i=function(o,r){var s=r[0],e=r[1],f=r[2],l,c,d=0;if(s.some(function(p){return n[p]!==0})){for(l in e)a.o(e,l)&&(a.m[l]=e[l]);if(f)var u=f(a)}for(o&&o(r);d<s.length;d++)c=s[d],a.o(n,c)&&n[c]&&n[c][0](),n[c]=0;return a.O(u)},t=self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[];t.forEach(i.bind(null,0)),t.push=i.bind(null,t.push.bind(t))}(),function(){a.nc=void 0}()})();
1
+ (function(){"use strict";var j={},m={};function a(n){var i=m[n];if(i!==void 0)return i.exports;var t=m[n]={id:n,loaded:!1,exports:{}};return j[n].call(t.exports,t,t.exports,a),t.loaded=!0,t.exports}a.m=j,function(){var n=[];a.O=function(i,t,o,r){if(t){r=r||0;for(var s=n.length;s>0&&n[s-1][2]>r;s--)n[s]=n[s-1];n[s]=[t,o,r];return}for(var e=1/0,s=0;s<n.length;s++){for(var t=n[s][0],o=n[s][1],r=n[s][2],c=!0,l=0;l<t.length;l++)(r&!1||e>=r)&&Object.keys(a.O).every(function(b){return a.O[b](t[l])})?t.splice(l--,1):(c=!1,r<e&&(e=r));if(c){n.splice(s--,1);var d=o();d!==void 0&&(i=d)}}return i}}(),function(){a.n=function(n){var i=n&&n.__esModule?function(){return n.default}:function(){return n};return a.d(i,{a:i}),i}}(),function(){var n=Object.getPrototypeOf?function(t){return Object.getPrototypeOf(t)}:function(t){return t.__proto__},i;a.t=function(t,o){if(o&1&&(t=this(t)),o&8||typeof t=="object"&&t&&(o&4&&t.__esModule||o&16&&typeof t.then=="function"))return t;var r=Object.create(null);a.r(r);var s={};i=i||[null,n({}),n([]),n(n)];for(var e=o&2&&t;typeof e=="object"&&!~i.indexOf(e);e=n(e))Object.getOwnPropertyNames(e).forEach(function(c){s[c]=function(){return t[c]}});return s.default=function(){return t},a.d(r,s),r}}(),function(){a.d=function(n,i){for(var t in i)a.o(i,t)&&!a.o(n,t)&&Object.defineProperty(n,t,{enumerable:!0,get:i[t]})}}(),function(){a.f={},a.e=function(n){return Promise.all(Object.keys(a.f).reduce(function(i,t){return a.f[t](n,i),i},[]))}}(),function(){a.u=function(n){return""+({46:"content-type-builder-translation-zh-Hans-json",90:"i18n-translation-de-json",92:"api-tokens-edit-page",96:"email-translation-de-json",123:"ru-json",129:"i18n-translation-es-json",302:"sso-settings-page",320:"en-json",395:"tr-json",435:"email-translation-it-json",562:"no-json",585:"upload-translation-pt-json",606:"sk-json",615:"upload-translation-uk-json",695:"upload-settings",742:"content-type-builder-translation-th-json",744:"email-translation-cs-json",749:"th-json",801:"Admin-authenticatedApp",830:"he-json",931:"content-type-builder-translation-en-json",994:"content-manager",1001:"content-type-builder-translation-nl-json",1009:"upload-translation-ms-json",1011:"zh-json",1018:"email-translation-ko-json",1023:"content-type-builder-translation-it-json",1056:"upload-translation-tr-json",1157:"email-translation-pt-BR-json",1167:"users-permissions-translation-ko-json",1180:"i18n-translation-tr-json",1312:"ja-json",1331:"upload-translation-es-json",1375:"upload-translation-pt-BR-json",1377:"ko-json",1442:"users-permissions-translation-cs-json",1495:"email-settings-page",1674:"users-permissions-translation-ru-json",1930:"users-permissions-translation-pt-json",2137:"i18n-translation-fr-json",2151:"content-type-builder-translation-id-json",2246:"content-type-builder-translation-dk-json",2248:"gu-json",2282:"users-providers-settings-page",2380:"users-permissions-translation-tr-json",2411:"email-translation-tr-json",2464:"users-permissions-translation-de-json",2489:"upload-translation-ko-json",2492:"transfer-tokens-edit-page",2544:"admin-edit-roles-page",2553:"zh-Hans-json",2567:"content-type-builder-translation-ko-json",2603:"email-translation-en-json",2648:"email-translation-ar-json",2657:"content-type-builder-translation-cs-json",2671:"nl-json",2742:"users-permissions-translation-zh-Hans-json",2812:"audit-logs-settings-page",3025:"ms-json",3038:"upload-translation-sk-json",3043:"email-translation-zh-Hans-json",3095:"users-permissions-translation-sk-json",3098:"users-permissions-translation-fr-json",3166:"email-translation-pt-json",3206:"email-translation-nl-json",3278:"vi-json",3304:"content-type-builder-translation-tr-json",3340:"pt-json",3455:"admin-roles-list",3516:"ca-json",3530:"users-permissions-translation-vi-json",3552:"i18n-settings-page",3650:"upload",3677:"Admin_pluginsPage",3702:"users-permissions-translation-pl-json",3825:"email-translation-dk-json",3948:"content-type-builder-translation-pl-json",3964:"content-type-builder-translation-ms-json",3981:"Admin_homePage",4021:"upload-translation-de-json",4121:"webhook-list-page",4179:"users-permissions-translation-id-json",4263:"admin-edit-users",4299:"api-tokens-create-page",4302:"content-type-builder-translation-zh-json",4587:"email-translation-th-json",4693:"email-translation-fr-json",4804:"upload-translation-ru-json",4816:"transfer-tokens-create-page",4987:"upload-translation-pl-json",5053:"upload-translation-zh-json",5162:"webhook-edit-page",5199:"admin-users",5222:"upload-translation-it-json",5296:"i18n-translation-dk-json",5388:"email-translation-ru-json",5396:"users-permissions-translation-zh-json",5516:"Admin_marketplace",5538:"admin-app",5751:"email-translation-es-json",5880:"upload-translation-ja-json",5894:"hu-json",5895:"Admin_settingsPage",5905:"content-type-builder-list-view",5906:"content-type-builder-translation-pt-BR-json",6232:"upload-translation-th-json",6280:"i18n-translation-ko-json",6332:"hi-json",6377:"users-permissions-translation-dk-json",6434:"upload-translation-en-json",6460:"users-permissions-translation-en-json",6745:"email-translation-uk-json",6784:"email-translation-ms-json",6817:"it-json",6831:"upload-translation-zh-Hans-json",6836:"users-permissions-translation-uk-json",6848:"email-translation-zh-json",6901:"de-json",7048:"users-permissions-translation-nl-json",7094:"users-permissions-translation-ar-json",7155:"content-type-builder-translation-de-json",7186:"content-type-builder-translation-ru-json",7327:"email-translation-vi-json",7347:"highlight.js",7403:"uk-json",7465:"upload-translation-dk-json",7519:"cs-json",7663:"email-translation-id-json",7808:"i18n-translation-zh-json",7817:"users-permissions-translation-es-json",7828:"users-permissions-translation-th-json",7833:"upload-translation-fr-json",7846:"pl-json",7898:"dk-json",7934:"content-type-builder-translation-pt-json",7958:"ar-json",7997:"content-type-builder-translation-sk-json",8006:"fr-json",8056:"api-tokens-list-page",8175:"i18n-translation-en-json",8178:"email-translation-ja-json",8329:"content-type-builder-translation-sv-json",8342:"content-type-builder-translation-es-json",8360:"eu-json",8367:"es-json",8418:"users-email-settings-page",8423:"upload-translation-ca-json",8467:"users-permissions-translation-sv-json",8481:"email-translation-pl-json",8573:"content-type-builder-translation-uk-json",8736:"users-permissions-translation-pt-BR-json",8853:"users-roles-settings-page",8880:"content-type-builder",8897:"id-json",8907:"content-type-builder-translation-ja-json",8965:"content-type-builder-translation-fr-json",9220:"users-permissions-translation-ms-json",9303:"sv-json",9366:"i18n-translation-pl-json",9412:"email-translation-sk-json",9460:"users-advanced-settings-page",9497:"Admin_profilePage",9501:"Admin_InternalErrorPage",9502:"users-permissions-translation-ja-json",9511:"content-type-builder-translation-ar-json",9514:"Upload_ConfigureTheView",9600:"transfer-tokens-list-page",9647:"pt-BR-json",9726:"sa-json",9762:"i18n-translation-zh-Hans-json",9797:"upload-translation-he-json",9903:"ml-json",9905:"users-permissions-translation-it-json"}[n]||n)+"."+{46:"415577fb",90:"362384a6",92:"fa38cd63",96:"1b334230",123:"6a01cea6",129:"87b494d1",302:"272b87c8",320:"b052667a",395:"bac5dbd3",435:"a2ed8c78",562:"19a2dbfa",585:"6b937fdf",606:"2374f129",615:"9950466a",695:"0875e973",742:"6fe3ed55",744:"6eaeec6a",749:"5f659396",801:"cb754f73",830:"3cf0b48a",931:"e577d595",994:"f8b9710b",1001:"40bbc562",1009:"74f6d746",1011:"3529f1e5",1018:"4de49b23",1023:"13b3c26a",1056:"74117e5c",1157:"81cca553",1167:"357d7a33",1180:"10f0600d",1312:"81b6d1e3",1331:"ba2eb03a",1375:"d1704f0b",1377:"4539f4ba",1442:"7e23424a",1495:"4bdbef9a",1674:"20e177db",1930:"a7eda429",2137:"57ddc77e",2151:"ee3b36bb",2246:"e05583e9",2248:"4d667d0c",2263:"4c5916f9",2282:"14cac425",2380:"2bd7ff98",2411:"e6c0f8fc",2464:"a6fb670f",2489:"a52eab64",2492:"00ee1c74",2544:"cf543488",2553:"4cfef87d",2567:"8a274be5",2603:"4211d4d0",2648:"88304564",2657:"a5b299ca",2671:"98345913",2742:"6ab714ee",2812:"7be97e82",3025:"0eddffd9",3038:"483a18f6",3043:"c6841563",3095:"7f37180f",3098:"7e55bbbb",3166:"2a2a0643",3206:"377bdd9f",3278:"ee4c5537",3304:"cea4d226",3340:"ee554a41",3455:"489c501f",3516:"43e14418",3530:"6722a8a2",3552:"2bb5be96",3650:"c7da1611",3677:"15e3b0fd",3702:"0a7287d1",3825:"85402492",3948:"24a34349",3964:"2d29c1e0",3981:"1411fb7c",4021:"420c943b",4049:"64715f20",4121:"029957a4",4179:"a5a0fb59",4263:"31c20712",4299:"2a6e22bd",4302:"faedd610",4587:"660fa9a8",4693:"78be2787",4804:"675f6b93",4816:"a1f14bb1",4987:"426f31c9",5053:"e1dd6eb2",5162:"329141a5",5199:"3e111a7d",5222:"e87d7966",5296:"89401417",5388:"6bce37dd",5396:"7978eaa6",5516:"02608d56",5538:"50584489",5563:"aa832e5f",5751:"0b6b1006",5880:"44b88e7a",5894:"fe71e6c8",5895:"0aa4fcdc",5905:"cf38fe2f",5906:"97f71a9d",6232:"3847dae0",6280:"ef4f9471",6332:"323be97d",6377:"60e50f48",6434:"8b7573ce",6460:"4b302272",6745:"bd1fb6bf",6784:"7390477e",6817:"bfe27ed8",6831:"db163b6b",6836:"6a0a1572",6848:"7a2232ea",6901:"fcac7381",6985:"66cca29c",7048:"c9f92a3c",7094:"7d87d54d",7155:"0979cccb",7186:"54d11230",7259:"e6ef3b8e",7327:"9fb7e6d7",7347:"26ef649f",7403:"b7e38370",7465:"bbb2fa05",7519:"4b44411c",7663:"c97239fe",7808:"bef2dc07",7817:"35007573",7828:"1e9c0247",7833:"84429734",7846:"59a5dab3",7898:"e34cad0d",7934:"ddb44f8c",7958:"39e54aba",7997:"626c9493",8006:"f66c3211",8056:"93f24348",8175:"60af6722",8178:"63eebd02",8329:"59f5e1e5",8342:"fe4daad8",8360:"fb17c8f9",8367:"715b6fd8",8418:"e8db68c4",8423:"57954414",8467:"17187818",8469:"853c822b",8481:"97d0db97",8573:"c4524247",8736:"1b6d2920",8853:"2ea4de84",8880:"0f5dbcf1",8897:"41e07c46",8907:"9be0d5b2",8965:"b1eb52f6",9220:"c83f87c4",9303:"ae6e71ea",9366:"dfac513d",9412:"53da2fcd",9460:"1d3c14c7",9497:"76afeca0",9501:"4ad8b0df",9502:"891fe76e",9505:"dbe702ab",9511:"56d8fcf4",9514:"34dde278",9600:"3c9b0280",9647:"9410688b",9726:"6359a11c",9762:"757ce62d",9797:"0a830937",9816:"01ee964f",9903:"8988e374",9905:"0705465d"}[n]+".chunk.js"}}(),function(){a.miniCssF=function(n){}}(),function(){a.g=function(){if(typeof globalThis=="object")return globalThis;try{return this||new Function("return this")()}catch{if(typeof window=="object")return window}}()}(),function(){a.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)}}(),function(){var n={},i="@strapi/admin:";a.l=function(t,o,r,s){if(n[t]){n[t].push(o);return}var e,c;if(r!==void 0)for(var l=document.getElementsByTagName("script"),d=0;d<l.length;d++){var f=l[d];if(f.getAttribute("src")==t||f.getAttribute("data-webpack")==i+r){e=f;break}}e||(c=!0,e=document.createElement("script"),e.charset="utf-8",e.timeout=120,a.nc&&e.setAttribute("nonce",a.nc),e.setAttribute("data-webpack",i+r),e.src=t),n[t]=[o];var u=function(g,b){e.onerror=e.onload=null,clearTimeout(p);var h=n[t];if(delete n[t],e.parentNode&&e.parentNode.removeChild(e),h&&h.forEach(function(y){return y(b)}),g)return g(b)},p=setTimeout(u.bind(null,void 0,{type:"timeout",target:e}),12e4);e.onerror=u.bind(null,e.onerror),e.onload=u.bind(null,e.onload),c&&document.head.appendChild(e)}}(),function(){a.r=function(n){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})}}(),function(){a.nmd=function(n){return n.paths=[],n.children||(n.children=[]),n}}(),function(){a.p="/admin/"}(),function(){a.b=document.baseURI||self.location.href;var n={1303:0};a.f.j=function(o,r){var s=a.o(n,o)?n[o]:void 0;if(s!==0)if(s)r.push(s[2]);else if(o!=1303){var e=new Promise(function(f,u){s=n[o]=[f,u]});r.push(s[2]=e);var c=a.p+a.u(o),l=new Error,d=function(f){if(a.o(n,o)&&(s=n[o],s!==0&&(n[o]=void 0),s)){var u=f&&(f.type==="load"?"missing":f.type),p=f&&f.target&&f.target.src;l.message="Loading chunk "+o+` failed.
2
+ (`+u+": "+p+")",l.name="ChunkLoadError",l.type=u,l.request=p,s[1](l)}};a.l(c,d,"chunk-"+o,o)}else n[o]=0},a.O.j=function(o){return n[o]===0};var i=function(o,r){var s=r[0],e=r[1],c=r[2],l,d,f=0;if(s.some(function(p){return n[p]!==0})){for(l in e)a.o(e,l)&&(a.m[l]=e[l]);if(c)var u=c(a)}for(o&&o(r);f<s.length;f++)d=s[f],a.o(n,d)&&n[d]&&n[d][0](),n[d]=0;return a.O(u)},t=self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[];t.forEach(i.bind(null,0)),t.push=i.bind(null,t.push.bind(t))}(),function(){a.nc=void 0}()})();
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[302],{26930:function(A,u,a){a.r(u),a.d(u,{SingleSignOn:function(){return f},default:function(){return L}});var e=a(32735),l=a(13478),R=a(57269),s=a(39161),E=a(5636),v=a(89793),b=a.n(v),C=a(8997),g=a(8888),c=a(72041),r=a(5173),M=r.Ry().shape({autoRegister:r.Xg().required(l.translatedErrors.required),defaultRole:r.nK().when("autoRegister",(t,i)=>t?i.required(l.translatedErrors.required):i.nullable())});const m={...c.Z.settings.sso,readRoles:c.Z.settings.roles.read},f=()=>{const{formatMessage:t}=(0,E.useIntl)(),{isLoading:i,allowedActions:{canUpdate:h,canReadRoles:O}}=(0,l.useRBAC)(m),[{formErrors:o,initialData:y,isLoading:I,modifiedData:d,showHeaderButtonLoader:P},H,{handleChange:S,handleSubmit:D}]=(0,g.G4)((0,C.IF)("providers/options"),M,()=>{},["autoRegister","defaultRole"]),{roles:F}=(0,g.bF)(O);(0,l.useFocusWhenNavigate)();const T=i||I;(0,e.useEffect)(()=>{if(o.defaultRole){const n='[name="defaultRole"]';document.querySelector(n).focus()}},[o]);const p=b()(y,d);return e.createElement(s.Layout,null,e.createElement(l.SettingsPageTitle,{name:"SSO"}),e.createElement(s.Main,{tabIndex:-1},e.createElement("form",{onSubmit:n=>{if(p){n.preventDefault();return}D(n)}},e.createElement(s.HeaderLayout,{primaryAction:e.createElement(s.Button,{"data-testid":"save-button",disabled:p,loading:P,startIcon:e.createElement(R.Check,null),type:"submit",size:"L"},t({id:"global.save",defaultMessage:"Save"})),title:t({id:"Settings.sso.title",defaultMessage:"Single Sign-On"}),subtitle:t({id:"Settings.sso.description",defaultMessage:"Configure the settings for the Single Sign-On feature."})}),e.createElement(s.ContentLayout,null,T?e.createElement(l.LoadingIndicatorPage,null):e.createElement(s.Flex,{direction:"column",alignItems:"stretch",gap:4,background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},e.createElement(s.Typography,{variant:"delta",as:"h2"},t({id:"global.settings",defaultMessage:"Settings"})),e.createElement(s.Grid,{gap:4},e.createElement(s.GridItem,{col:6,m:6,s:12},e.createElement(s.ToggleInput,{"aria-label":"autoRegister","data-testid":"autoRegister",disabled:!h,checked:d.autoRegister,hint:t({id:"Settings.sso.form.registration.description",defaultMessage:"Create new user on SSO login if no account exists"}),label:t({id:"Settings.sso.form.registration.label",defaultMessage:"Auto-registration"}),name:"autoRegister",offLabel:t({id:"app.components.ToggleCheckbox.off-label",defaultMessage:"Off"}),onLabel:t({id:"app.components.ToggleCheckbox.on-label",defaultMessage:"On"}),onChange:n=>{S({target:{name:"autoRegister",value:n.target.checked}})}})),e.createElement(s.GridItem,{col:6,m:6,s:12},e.createElement(s.Select,{disabled:!h,hint:t({id:"Settings.sso.form.defaultRole.description",defaultMessage:"It will attach the new authenticated user to the selected role"}),error:o.defaultRole?t({id:o.defaultRole.id,defaultMessage:o.defaultRole.id}):"",label:t({id:"Settings.sso.form.defaultRole.label",defaultMessage:"Default role"}),name:"defaultRole",onChange:n=>{S({target:{name:"defaultRole",value:n}})},placeholder:t({id:"components.InputSelect.option.placeholder",defaultMessage:"Choose here"}),value:d.defaultRole},F.map(({id:n,name:x})=>e.createElement(s.Option,{key:n,value:n.toString()},x))))))))))};var L=()=>e.createElement(l.CheckPagePermissions,{permissions:m.main},e.createElement(f,null))}}]);
@@ -0,0 +1,16 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[9600],{81450:function(H,C,n){n.d(C,{Z:function(){return E}});var e=n(32735),r=n(5141),A=n(60216),t=n.n(A),s=n(39161),l=n(13478),R=n(57269),L=n(5636);const k=({tokenName:o,onClickDelete:c,tokenType:h})=>{const{formatMessage:d}=(0,L.useIntl)(),{trackUsage:f}=(0,l.useTracking)(),[u,p]=(0,e.useState)(!1),v=()=>{p(!1),f("willDeleteToken",{tokenType:h}),c()};return e.createElement(s.Box,{paddingLeft:1,onClick:T=>T.stopPropagation()},e.createElement(s.IconButton,{onClick:()=>{p(!0)},label:d({id:"global.delete-target",defaultMessage:"Delete {target}"},{target:`${o}`}),name:"delete",noBorder:!0,icon:e.createElement(R.Trash,null)}),e.createElement(l.ConfirmDialog,{onToggleDialog:()=>p(!1),onConfirm:v,isOpen:u}))};k.propTypes={tokenName:t().string.isRequired,onClickDelete:t().func.isRequired,tokenType:t().string.isRequired};var D=k,W=n(83292);const B={edit:{id:"app.component.table.edit",defaultMessage:"Edit {target}"},read:{id:"app.component.table.read",defaultMessage:"Read {target}"}},I=(0,W.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:h,children:d})=>{const{formatMessage:f}=(0,L.useIntl)(),{location:{pathname:u}}=(0,r.useHistory)();return e.createElement(I,{to:`${u}/${c}`,title:f(B[h],{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(R.Pencil,null));S.propTypes={tokenName:t().string.isRequired,tokenId:t().oneOfType([t().string,t().number]).isRequired};var Y=S;const M=({tokenName:o,tokenId:c})=>e.createElement(U,{tokenName:o,tokenId:c,buttonType:"read"},e.createElement(R.Eye,null));M.propTypes={tokenName:t().string.isRequired,tokenId:t().oneOfType([t().string,t().number]).isRequired};var V=M;const m=({permissions:o,headers:c,contentType:h,isLoading:d,tokens:f,onConfirmDelete:u,tokenType:p})=>{const{canDelete:v,canUpdate:T,canRead:N}=o,P=v||T||N,[{query:y}]=(0,l.useQueryParams)(),[,b]=y?y.sort.split(":"):"ASC",{push:O,location:{pathname:w}}=(0,r.useHistory)(),{trackUsage:x}=(0,l.useTracking)(),F=f.sort((i,$)=>{const a=i.name.localeCompare($.name);return b==="DESC"?-a:a});return e.createElement(l.DynamicTable,{headers:c,contentType:h,rows:f,withBulkActions:P,isLoading:d,onConfirmDelete:u},e.createElement(s.Tbody,null,F.map(i=>e.createElement(s.Tr,{key:i.id,...(0,l.onRowClick)({fn(){x("willEditTokenFromList",{tokenType:p}),O(`${w}/${i.id}`)},condition:T})},e.createElement(s.Td,{maxWidth:(0,l.pxToRem)(250)},e.createElement(s.Typography,{textColor:"neutral800",fontWeight:"bold",ellipsis:!0},i.name)),e.createElement(s.Td,{maxWidth:(0,l.pxToRem)(250)},e.createElement(s.Typography,{textColor:"neutral800",ellipsis:!0},i.description)),e.createElement(s.Td,null,e.createElement(s.Typography,{textColor:"neutral800"},e.createElement(l.RelativeTime,{timestamp:new Date(i.createdAt)}))),e.createElement(s.Td,null,i.lastUsedAt&&e.createElement(s.Typography,{textColor:"neutral800"},e.createElement(l.RelativeTime,{timestamp:new Date(i.lastUsedAt)}))),P&&e.createElement(s.Td,null,e.createElement(s.Flex,{justifyContent:"end"},T&&e.createElement(Y,{tokenName:i.name,tokenId:i.id}),!T&&N&&e.createElement(V,{tokenName:i.name,tokenId:i.id}),v&&e.createElement(D,{tokenName:i.name,onClickDelete:()=>u(i.id),tokenType:p})))))))};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 E=m},68774:function(H,C,n){n.d(C,{Z:function(){return e},f:function(){return r}});const e="api-token",r="transfer-token"},38286:function(H,C,n){n.r(C),n.d(C,{default:function(){return M}});var e=n(32735),r=n(13478),A=n(72041),t=n(5636),s=n(84968),l=n(5141),R=n(33348),L=n.n(R),k=n(39161),D=n(57269),B=[{name:"name",key:"name",metadatas:{label:{id:"Settings.tokens.ListView.headers.name",defaultMessage:"Name"},sortable:!0}},{name:"description",key:"description",metadatas:{label:{id:"Settings.tokens.ListView.headers.description",defaultMessage:"Description"},sortable:!1}},{name:"createdAt",key:"createdAt",metadatas:{label:{id:"Settings.tokens.ListView.headers.createdAt",defaultMessage:"Created at"},sortable:!1}},{name:"lastUsedAt",key:"lastUsedAt",metadatas:{label:{id:"Settings.tokens.ListView.headers.lastUsedAt",defaultMessage:"Last used"},sortable:!1}}],I=n(81450),g=n(68774),S=()=>{(0,r.useFocusWhenNavigate)();const V=(0,s.useQueryClient)(),{formatMessage:m}=(0,t.useIntl)(),E=(0,r.useNotification)(),{allowedActions:{canCreate:o,canDelete:c,canUpdate:h,canRead:d}}=(0,r.useRBAC)(A.Z.settings["transfer-tokens"]),{push:f}=(0,l.useHistory)(),{trackUsage:u}=(0,r.useTracking)(),{startSection:p}=(0,r.useGuidedTour)(),v=(0,e.useRef)(p),{get:T,del:N}=(0,r.useFetchClient)();(0,e.useEffect)(()=>{v.current&&v.current("transferTokens")},[]),(0,e.useEffect)(()=>{f({search:L().stringify({sort:"name:ASC"},{encode:!1})})},[f]);const P=B.map(a=>({...a,metadatas:{...a.metadatas,label:m(a.metadatas.label)}})),{data:y,status:b,isFetching:O}=(0,s.useQuery)(["transfer-tokens"],async()=>{u("willAccessTokenList",{tokenType:g.f});const{data:{data:a}}=await T("/admin/transfer/tokens");return u("didAccessTokenList",{number:a.length,tokenType:g.f}),a},{enabled:d,onError(a){console.log("error",a),a?.response?.data?.error?.details?.code==="INVALID_TOKEN_SALT"?E({type:"warning",message:{id:"notification.error.invalid.configuration",defaultMessage:"You have an invalid configuration, check your server log for more information."}}):E({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),w=d&&(b!=="success"&&b!=="error"||b==="success"&&O),x=(0,s.useMutation)(async a=>{await N(`/admin/transfer/tokens/${a}`)},{async onSuccess(){await V.invalidateQueries(["transfer-tokens"])},onError(a){a?.response?.data?.data?E({type:"warning",message:a.response.data.data}):a?.response?.data?.error?.details?.code==="INVALID_TOKEN_SALT"?E({type:"warning",message:{id:"notification.error.invalid.configuration",defaultMessage:"You have an invalid configuration, check your server log for more information."}}):E({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),F=d&&y,i=d&&!y&&!o,$=d&&!y&&o;return e.createElement(k.Main,{"aria-busy":w},e.createElement(r.SettingsPageTitle,{name:"Transfer Tokens"}),e.createElement(k.HeaderLayout,{title:m({id:"Settings.transferTokens.title",defaultMessage:"Transfer Tokens"}),subtitle:m({id:"Settings.transferTokens.description",defaultMessage:'"List of generated transfer tokens"'}),primaryAction:o?e.createElement(r.LinkButton,{"data-testid":"create-transfer-token-button",startIcon:e.createElement(D.Plus,null),size:"S",onClick:()=>u("willAddTokenFromList",{tokenType:g.f}),to:"/settings/transfer-tokens/create"},m({id:"Settings.transferTokens.create",defaultMessage:"Create new Transfer Token"})):void 0}),e.createElement(k.ContentLayout,null,!d&&e.createElement(r.NoPermissions,null),F&&e.createElement(I.Z,{permissions:{canRead:d,canDelete:c,canUpdate:h},headers:P,contentType:"trasfer-tokens",rows:y,isLoading:w,onConfirmDelete:a=>x.mutateAsync(a),tokens:y,tokenType:g.f}),$&&e.createElement(r.NoContent,{content:{id:"Settings.transferTokens.addFirstToken",defaultMessage:"Add your first Transfer Token"},action:e.createElement(k.Button,{variant:"secondary",startIcon:e.createElement(D.Plus,null)},m({id:"Settings.transferTokens.addNewToken",defaultMessage:"Add new Transfer Token"}))}),i&&e.createElement(r.NoContent,{content:{id:"Settings.transferTokens.emptyStateLayout",defaultMessage:"You don\u2019t have any content yet..."}})))},M=()=>e.createElement(r.CheckPagePermissions,{permissions:A.Z.settings["transfer-tokens"].main},e.createElement(S,null))}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[9460],{84764:function(L,f,a){a.r(f),a.d(f,{default:function(){return P}});var t=a(32735),c=a(84968),b=a(5636),y=a(83281),i=a(13478),n=a(39161),S=a(57269),p=a(88369),e=a(59677),h=[{intlLabel:{id:(0,e.OB)("EditForm.inputToggle.label.email"),defaultMessage:"One account per email address"},description:{id:(0,e.OB)("EditForm.inputToggle.description.email"),defaultMessage:"Disallow the user to create multiple accounts using the same email address with different authentication providers."},name:"unique_email",type:"bool",size:{col:12,xs:12}},{intlLabel:{id:(0,e.OB)("EditForm.inputToggle.label.sign-up"),defaultMessage:"Enable sign-ups"},description:{id:(0,e.OB)("EditForm.inputToggle.description.sign-up"),defaultMessage:"When disabled (OFF), the registration process is forbidden. No one can subscribe anymore no matter the used provider."},name:"allow_register",type:"bool",size:{col:12,xs:12}},{intlLabel:{id:(0,e.OB)("EditForm.inputToggle.label.email-reset-password"),defaultMessage:"Reset password page"},description:{id:(0,e.OB)("EditForm.inputToggle.description.email-reset-password"),defaultMessage:"URL of your application's reset password page."},placeholder:{id:(0,e.OB)("EditForm.inputToggle.placeholder.email-reset-password"),defaultMessage:"ex: https://youtfrontend.com/reset-password"},name:"email_reset_password",type:"text",size:{col:6,xs:12}},{intlLabel:{id:(0,e.OB)("EditForm.inputToggle.label.email-confirmation"),defaultMessage:"Enable email confirmation"},description:{id:(0,e.OB)("EditForm.inputToggle.description.email-confirmation"),defaultMessage:"When enabled (ON), new registered users receive a confirmation email."},name:"email_confirmation",type:"bool",size:{col:12,xs:12}},{intlLabel:{id:(0,e.OB)("EditForm.inputToggle.label.email-confirmation-redirection"),defaultMessage:"Redirection url"},description:{id:(0,e.OB)("EditForm.inputToggle.description.email-confirmation-redirection"),defaultMessage:"After you confirmed your email, choose where you will be redirected."},placeholder:{id:(0,e.OB)("EditForm.inputToggle.placeholder.email-confirmation-redirection"),defaultMessage:"ex: https://youtfrontend.com/email-confirmation"},name:"email_confirmation_redirection",type:"text",size:{col:6,xs:12}}],r=a(5173);const u=new RegExp("(^$)|((.+:\\/\\/.*)(d*)\\/?(.*))");var m=r.Ry().shape({email_confirmation_redirection:r.nK().when("email_confirmation",{is:!0,then:r.Z_().matches(u).required(),otherwise:r.Z_().nullable()}),email_reset_password:r.Z_(i.translatedErrors.string).matches(u,i.translatedErrors.regex).nullable()});const T=async()=>{const{get:s}=(0,i.getFetchClient)(),{data:l}=await s((0,e.Gc)("advanced"));return l},R=s=>{const{put:l}=(0,i.getFetchClient)();return l((0,e.Gc)("advanced"),s)},w=()=>t.createElement(i.CheckPagePermissions,{permissions:p.Z.readAdvancedSettings},t.createElement(C,null)),C=()=>{const{formatMessage:s}=(0,b.useIntl)(),l=(0,i.useNotification)(),{lockApp:x,unlockApp:M}=(0,i.useOverlayBlocker)(),{notifyStatus:N}=(0,n.useNotifyAT)(),I=(0,c.useQueryClient)();(0,i.useFocusWhenNavigate)();const z=(0,t.useMemo)(()=>({update:p.Z.updateAdvancedSettings}),[]),{isLoading:G,allowedActions:{canUpdate:Z}}=(0,i.useRBAC)(z),{status:H,data:B}=(0,c.useQuery)("advanced",()=>T(),{onSuccess(){N(s({id:(0,e.OB)("Form.advancedSettings.data.loaded"),defaultMessage:"Advanced settings data has been loaded"}))},onError(){l({type:"warning",message:{id:(0,e.OB)("notification.error"),defaultMessage:"An error occured"}})}}),U=G||H!=="success",F=(0,c.useMutation)(d=>R(d),{async onSuccess(){await I.invalidateQueries("advanced"),l({type:"success",message:{id:(0,e.OB)("notification.success.saved"),defaultMessage:"Saved"}}),M()},onError(){l({type:"warning",message:{id:(0,e.OB)("notification.error"),defaultMessage:"An error occured"}}),M()},refetchActive:!0}),{isLoading:k}=F,D=async d=>{x();const g=d.email_confirmation?d.email_confirmation_redirection:"";await F.mutateAsync({...d,email_confirmation_redirection:g})};return U?t.createElement(n.Main,{"aria-busy":"true"},t.createElement(i.SettingsPageTitle,{name:s({id:(0,e.OB)("HeaderNav.link.advancedSettings"),defaultMessage:"Advanced Settings"})}),t.createElement(n.HeaderLayout,{title:s({id:(0,e.OB)("HeaderNav.link.advancedSettings"),defaultMessage:"Advanced Settings"})}),t.createElement(n.ContentLayout,null,t.createElement(i.LoadingIndicatorPage,null))):t.createElement(n.Main,{"aria-busy":k},t.createElement(i.SettingsPageTitle,{name:s({id:(0,e.OB)("HeaderNav.link.advancedSettings"),defaultMessage:"Advanced Settings"})}),t.createElement(y.Formik,{onSubmit:D,initialValues:B.settings,validateOnChange:!1,validationSchema:m,enableReinitialize:!0},({errors:d,values:g,handleChange:A,isSubmitting:Q})=>t.createElement(i.Form,null,t.createElement(n.HeaderLayout,{title:s({id:(0,e.OB)("HeaderNav.link.advancedSettings"),defaultMessage:"Advanced Settings"}),primaryAction:t.createElement(n.Button,{loading:Q,type:"submit",disabled:!Z,startIcon:t.createElement(S.Check,null),size:"S"},s({id:"global.save",defaultMessage:"Save"}))}),t.createElement(n.ContentLayout,null,t.createElement(n.Box,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},t.createElement(n.Flex,{direction:"column",alignItems:"stretch",gap:4},t.createElement(n.Typography,{variant:"delta",as:"h2"},s({id:"global.settings",defaultMessage:"Settings"})),t.createElement(n.Grid,{gap:6},t.createElement(n.GridItem,{col:6,s:12},t.createElement(n.Select,{label:s({id:(0,e.OB)("EditForm.inputSelect.label.role"),defaultMessage:"Default role for authenticated users"}),value:g.default_role,hint:s({id:(0,e.OB)("EditForm.inputSelect.description.role"),defaultMessage:"It will attach the new authenticated user to the selected role."}),onChange:o=>A({target:{name:"default_role",value:o}})},B.roles.map(o=>t.createElement(n.Option,{key:o.type,value:o.type},o.name)))),h.map(o=>{let O=g[o.name];return O||(O=o.type==="bool"?!1:""),t.createElement(n.GridItem,{key:o.name,...o.size},t.createElement(i.GenericInput,{...o,value:O,error:d[o.name],disabled:o.name==="email_confirmation_redirection"&&g.email_confirmation===!1,onChange:A}))}))))))))};var P=w},59677:function(L,f,a){a.d(f,{YX:function(){return y},Gc:function(){return S},OB:function(){return p.Z}});var t=a(86834),c=a.n(t),y=e=>Object.keys(e).reduce((v,h)=>{const r=e[h].controllers,u=Object.keys(r).reduce((E,m)=>(c()(r[m])||(E[m]=r[m]),E),{});return c()(u)||(v[h]={controllers:u}),v},{}),i=a(90201),S=e=>`/${i.Z}/${e}`,p=a(82069)}}]);
@@ -1 +1 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[8418],{218:function(S,h,s){s.r(h),s.d(h,{default:function(){return H}});var e=s(32735),v=s(84968),T=s(5636),a=s(13478),t=s(39161),B=s(88369),l=s(59677);const f=async()=>{const{get:n}=(0,a.getFetchClient)(),{data:o}=await n((0,l.Gc)("email-templates"));return o},M=n=>{const{put:o}=(0,a.getFetchClient)();return o((0,l.Gc)("email-templates"),n)};var O=s(60216),i=s.n(O),E=s(57269);const y=({canUpdate:n,onEditClick:o})=>{const{formatMessage:r}=(0,T.useIntl)();return e.createElement(t.Table,{colCount:3,rowCount:3},e.createElement(t.Thead,null,e.createElement(t.Tr,null,e.createElement(t.Th,{width:"1%"},e.createElement(t.VisuallyHidden,null,r({id:(0,l.OB)("Email.template.table.icon.label"),defaultMessage:"icon"}))),e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},r({id:(0,l.OB)("Email.template.table.name.label"),defaultMessage:"name"}))),e.createElement(t.Th,{width:"1%"},e.createElement(t.VisuallyHidden,null,r({id:(0,l.OB)("Email.template.table.action.label"),defaultMessage:"action"}))))),e.createElement(t.Tbody,null,e.createElement(t.Tr,{...(0,a.onRowClick)({fn:()=>o("reset_password")})},e.createElement(t.Td,null,e.createElement(t.Icon,null,e.createElement(E.Refresh,{"aria-label":r({id:"global.reset-password",defaultMessage:"Reset password"})}))),e.createElement(t.Td,null,e.createElement(t.Typography,null,r({id:"global.reset-password",defaultMessage:"Reset password"}))),e.createElement(t.Td,{...a.stopPropagation},e.createElement(t.IconButton,{onClick:()=>o("reset_password"),label:r({id:(0,l.OB)("Email.template.form.edit.label"),defaultMessage:"Edit a template"}),noBorder:!0,icon:n&&e.createElement(E.Pencil,null)}))),e.createElement(t.Tr,{...(0,a.onRowClick)({fn:()=>o("email_confirmation")})},e.createElement(t.Td,null,e.createElement(t.Icon,null,e.createElement(E.Check,{"aria-label":r({id:(0,l.OB)("Email.template.email_confirmation"),defaultMessage:"Email address confirmation"})}))),e.createElement(t.Td,null,e.createElement(t.Typography,null,r({id:(0,l.OB)("Email.template.email_confirmation"),defaultMessage:"Email address confirmation"}))),e.createElement(t.Td,{...a.stopPropagation},e.createElement(t.IconButton,{onClick:()=>o("email_confirmation"),label:r({id:(0,l.OB)("Email.template.form.edit.label"),defaultMessage:"Edit a template"}),noBorder:!0,icon:n&&e.createElement(E.Pencil,null)})))))};y.propTypes={canUpdate:i().bool.isRequired,onEditClick:i().func.isRequired};var b=y,U=s(83281),c=s(5173),G=c.Ry().shape({options:c.Ry().shape({from:c.Ry().shape({name:c.Z_().required(a.translatedErrors.required),email:c.Z_().email(a.translatedErrors.email).required(a.translatedErrors.required)}).required(),response_email:c.Z_().email(a.translatedErrors.email),object:c.Z_().required(a.translatedErrors.required),message:c.Z_().required(a.translatedErrors.required)}).required(a.translatedErrors.required)});const R=({template:n,onToggle:o,onSubmit:r})=>{const{formatMessage:m}=(0,T.useIntl)();return e.createElement(t.ModalLayout,{onClose:o,labelledBy:`${m({id:(0,l.OB)("PopUpForm.header.edit.email-templates"),defaultMessage:"Edit email template"})}, ${m({id:(0,l.OB)(n.display),defaultMessage:n.display})}`},e.createElement(t.ModalHeader,null,e.createElement(t.Breadcrumbs,{label:`${m({id:(0,l.OB)("PopUpForm.header.edit.email-templates"),defaultMessage:"Edit email template"})}, ${m({id:(0,l.OB)(n.display),defaultMessage:n.display})}`},e.createElement(t.Crumb,null,m({id:(0,l.OB)("PopUpForm.header.edit.email-templates"),defaultMessage:"Edit email template"})),e.createElement(t.Crumb,null,m({id:(0,l.OB)(n.display),defaultMessage:n.display})))),e.createElement(U.Formik,{onSubmit:r,initialValues:n,validateOnChange:!1,validationSchema:G,enableReinitialize:!0},({errors:d,values:u,handleChange:p,isSubmitting:C})=>e.createElement(a.Form,null,e.createElement(t.ModalBody,null,e.createElement(t.Grid,{gap:5},e.createElement(t.GridItem,{col:6,s:12},e.createElement(a.GenericInput,{intlLabel:{id:(0,l.OB)("PopUpForm.Email.options.from.name.label"),defaultMessage:"Shipper name"},name:"options.from.name",onChange:p,value:u.options.from.name,error:d?.options?.from?.name,type:"text"})),e.createElement(t.GridItem,{col:6,s:12},e.createElement(a.GenericInput,{intlLabel:{id:(0,l.OB)("PopUpForm.Email.options.from.email.label"),defaultMessage:"Shipper email"},name:"options.from.email",onChange:p,value:u.options.from.email,error:d?.options?.from?.email,type:"text"})),e.createElement(t.GridItem,{col:6,s:12},e.createElement(a.GenericInput,{intlLabel:{id:(0,l.OB)("PopUpForm.Email.options.response_email.label"),defaultMessage:"Response email"},name:"options.response_email",onChange:p,value:u.options.response_email,error:d?.options?.response_email,type:"text"})),e.createElement(t.GridItem,{col:6,s:12},e.createElement(a.GenericInput,{intlLabel:{id:(0,l.OB)("PopUpForm.Email.options.object.label"),defaultMessage:"Subject"},name:"options.object",onChange:p,value:u.options.object,error:d?.options?.object,type:"text"})),e.createElement(t.GridItem,{col:12,s:12},e.createElement(t.Textarea,{label:m({id:(0,l.OB)("PopUpForm.Email.options.message.label"),defaultMessage:"Message"}),name:"options.message",onChange:p,value:u.options.message,error:d?.options?.message&&m({id:d.options.message,defaultMessage:d.options.message})})))),e.createElement(t.ModalFooter,{startActions:e.createElement(t.Button,{onClick:o,variant:"tertiary"},"Cancel"),endActions:e.createElement(t.Button,{loading:C,type:"submit"},"Finish")}))))};R.propTypes={template:i().shape({display:i().string,icon:i().string,options:i().shape({from:i().shape({name:i().string,email:i().string}),message:i().string,object:i().string,response_email:i().string})}).isRequired,onSubmit:i().func.isRequired,onToggle:i().func.isRequired};var k=R;const A=()=>e.createElement(a.CheckPagePermissions,{permissions:B.Z.readEmailTemplates},e.createElement(j,null)),j=()=>{const{formatMessage:n}=(0,T.useIntl)(),{trackUsage:o}=(0,a.useTracking)(),{notifyStatus:r}=(0,t.useNotifyAT)(),m=(0,a.useNotification)(),{lockApp:d,unlockApp:u}=(0,a.useOverlayBlocker)(),p=(0,e.useRef)(o),C=(0,v.useQueryClient)();(0,a.useFocusWhenNavigate)();const[Z,N]=(0,e.useState)(!1),[F,$]=(0,e.useState)(null),x=(0,e.useMemo)(()=>({update:B.Z.updateEmailTemplates}),[]),{isLoading:q,allowedActions:{canUpdate:w}}=(0,a.useRBAC)(x),{status:Q,data:I}=(0,v.useQuery)("email-templates",()=>f(),{onSuccess(){r(n({id:(0,l.OB)("Email.template.data.loaded"),defaultMessage:"Email templates has been loaded"}))},onError(){m({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),V=q||Q!=="success",P=()=>{N(g=>!g)},D=g=>{$(g),P()},L=(0,v.useMutation)(g=>M({"email-templates":g}),{async onSuccess(){await C.invalidateQueries("email-templates"),m({type:"success",message:{id:"notification.success.saved",defaultMessage:"Saved"}}),p.current("didEditEmailTemplates"),u(),P()},onError(){m({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}}),u()},refetchActive:!0}),{isLoading:z}=L,W=g=>{d(),p.current("willEditEmailTemplates");const X={...I,[F]:g};L.mutate(X)};return V?e.createElement(t.Main,{"aria-busy":"true"},e.createElement(a.SettingsPageTitle,{name:n({id:(0,l.OB)("HeaderNav.link.emailTemplates"),defaultMessage:"Email templates"})}),e.createElement(t.HeaderLayout,{title:n({id:(0,l.OB)("HeaderNav.link.emailTemplates"),defaultMessage:"Email templates"})}),e.createElement(t.ContentLayout,null,e.createElement(a.LoadingIndicatorPage,null))):e.createElement(t.Main,{"aria-busy":z},e.createElement(a.SettingsPageTitle,{name:n({id:(0,l.OB)("HeaderNav.link.emailTemplates"),defaultMessage:"Email templates"})}),e.createElement(t.HeaderLayout,{title:n({id:(0,l.OB)("HeaderNav.link.emailTemplates"),defaultMessage:"Email templates"})}),e.createElement(t.ContentLayout,null,e.createElement(b,{onEditClick:D,canUpdate:w}),Z&&e.createElement(k,{template:I[F],onToggle:P,onSubmit:W})))};var H=A},59677:function(S,h,s){s.d(h,{YX:function(){return T},Gc:function(){return B},OB:function(){return l.Z}});var e=s(92891),T=f=>Object.keys(f).reduce((M,O)=>{const i=f[O].controllers,E=Object.keys(i).reduce((y,b)=>((0,e.isEmpty)(i[b])||(y[b]=i[b]),y),{});return(0,e.isEmpty)(E)||(M[O]={controllers:E}),M},{}),a=s(90201),B=f=>`/${a.Z}/${f}`,l=s(82069)}}]);
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[8418],{218:function(U,v,n){n.r(v),n.d(v,{default:function(){return H}});var e=n(32735),f=n(84968),B=n(5636),a=n(13478),t=n(39161),O=n(88369),l=n(59677);const C=async()=>{const{get:s}=(0,a.getFetchClient)(),{data:o}=await s((0,l.Gc)("email-templates"));return o},y=s=>{const{put:o}=(0,a.getFetchClient)();return o((0,l.Gc)("email-templates"),s)};var T=n(60216),i=n.n(T),c=n(57269);const M=({canUpdate:s,onEditClick:o})=>{const{formatMessage:r}=(0,B.useIntl)();return e.createElement(t.Table,{colCount:3,rowCount:3},e.createElement(t.Thead,null,e.createElement(t.Tr,null,e.createElement(t.Th,{width:"1%"},e.createElement(t.VisuallyHidden,null,r({id:(0,l.OB)("Email.template.table.icon.label"),defaultMessage:"icon"}))),e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},r({id:(0,l.OB)("Email.template.table.name.label"),defaultMessage:"name"}))),e.createElement(t.Th,{width:"1%"},e.createElement(t.VisuallyHidden,null,r({id:(0,l.OB)("Email.template.table.action.label"),defaultMessage:"action"}))))),e.createElement(t.Tbody,null,e.createElement(t.Tr,{...(0,a.onRowClick)({fn:()=>o("reset_password")})},e.createElement(t.Td,null,e.createElement(t.Icon,null,e.createElement(c.Refresh,{"aria-label":r({id:"global.reset-password",defaultMessage:"Reset password"})}))),e.createElement(t.Td,null,e.createElement(t.Typography,null,r({id:"global.reset-password",defaultMessage:"Reset password"}))),e.createElement(t.Td,{...a.stopPropagation},e.createElement(t.IconButton,{onClick:()=>o("reset_password"),label:r({id:(0,l.OB)("Email.template.form.edit.label"),defaultMessage:"Edit a template"}),noBorder:!0,icon:s&&e.createElement(c.Pencil,null)}))),e.createElement(t.Tr,{...(0,a.onRowClick)({fn:()=>o("email_confirmation")})},e.createElement(t.Td,null,e.createElement(t.Icon,null,e.createElement(c.Check,{"aria-label":r({id:(0,l.OB)("Email.template.email_confirmation"),defaultMessage:"Email address confirmation"})}))),e.createElement(t.Td,null,e.createElement(t.Typography,null,r({id:(0,l.OB)("Email.template.email_confirmation"),defaultMessage:"Email address confirmation"}))),e.createElement(t.Td,{...a.stopPropagation},e.createElement(t.IconButton,{onClick:()=>o("email_confirmation"),label:r({id:(0,l.OB)("Email.template.form.edit.label"),defaultMessage:"Edit a template"}),noBorder:!0,icon:s&&e.createElement(c.Pencil,null)})))))};M.propTypes={canUpdate:i().bool.isRequired,onEditClick:i().func.isRequired};var b=M,h=n(83281),u=n(5173),G=u.Ry().shape({options:u.Ry().shape({from:u.Ry().shape({name:u.Z_().required(a.translatedErrors.required),email:u.Z_().email(a.translatedErrors.email).required(a.translatedErrors.required)}).required(),response_email:u.Z_().email(a.translatedErrors.email),object:u.Z_().required(a.translatedErrors.required),message:u.Z_().required(a.translatedErrors.required)}).required(a.translatedErrors.required)});const F=({template:s,onToggle:o,onSubmit:r})=>{const{formatMessage:m}=(0,B.useIntl)();return e.createElement(t.ModalLayout,{onClose:o,labelledBy:`${m({id:(0,l.OB)("PopUpForm.header.edit.email-templates"),defaultMessage:"Edit email template"})}, ${m({id:(0,l.OB)(s.display),defaultMessage:s.display})}`},e.createElement(t.ModalHeader,null,e.createElement(t.Breadcrumbs,{label:`${m({id:(0,l.OB)("PopUpForm.header.edit.email-templates"),defaultMessage:"Edit email template"})}, ${m({id:(0,l.OB)(s.display),defaultMessage:s.display})}`},e.createElement(t.Crumb,null,m({id:(0,l.OB)("PopUpForm.header.edit.email-templates"),defaultMessage:"Edit email template"})),e.createElement(t.Crumb,null,m({id:(0,l.OB)(s.display),defaultMessage:s.display})))),e.createElement(h.Formik,{onSubmit:r,initialValues:s,validateOnChange:!1,validationSchema:G,enableReinitialize:!0},({errors:d,values:p,handleChange:E,isSubmitting:P})=>e.createElement(a.Form,null,e.createElement(t.ModalBody,null,e.createElement(t.Grid,{gap:5},e.createElement(t.GridItem,{col:6,s:12},e.createElement(a.GenericInput,{intlLabel:{id:(0,l.OB)("PopUpForm.Email.options.from.name.label"),defaultMessage:"Shipper name"},name:"options.from.name",onChange:E,value:p.options.from.name,error:d?.options?.from?.name,type:"text"})),e.createElement(t.GridItem,{col:6,s:12},e.createElement(a.GenericInput,{intlLabel:{id:(0,l.OB)("PopUpForm.Email.options.from.email.label"),defaultMessage:"Shipper email"},name:"options.from.email",onChange:E,value:p.options.from.email,error:d?.options?.from?.email,type:"text"})),e.createElement(t.GridItem,{col:6,s:12},e.createElement(a.GenericInput,{intlLabel:{id:(0,l.OB)("PopUpForm.Email.options.response_email.label"),defaultMessage:"Response email"},name:"options.response_email",onChange:E,value:p.options.response_email,error:d?.options?.response_email,type:"text"})),e.createElement(t.GridItem,{col:6,s:12},e.createElement(a.GenericInput,{intlLabel:{id:(0,l.OB)("PopUpForm.Email.options.object.label"),defaultMessage:"Subject"},name:"options.object",onChange:E,value:p.options.object,error:d?.options?.object,type:"text"})),e.createElement(t.GridItem,{col:12,s:12},e.createElement(t.Textarea,{label:m({id:(0,l.OB)("PopUpForm.Email.options.message.label"),defaultMessage:"Message"}),name:"options.message",onChange:E,value:p.options.message,error:d?.options?.message&&m({id:d.options.message,defaultMessage:d.options.message})})))),e.createElement(t.ModalFooter,{startActions:e.createElement(t.Button,{onClick:o,variant:"tertiary"},"Cancel"),endActions:e.createElement(t.Button,{loading:P,type:"submit"},"Finish")}))))};F.propTypes={template:i().shape({display:i().string,icon:i().string,options:i().shape({from:i().shape({name:i().string,email:i().string}),message:i().string,object:i().string,response_email:i().string})}).isRequired,onSubmit:i().func.isRequired,onToggle:i().func.isRequired};var A=F;const j=()=>e.createElement(a.CheckPagePermissions,{permissions:O.Z.readEmailTemplates},e.createElement(k,null)),k=()=>{const{formatMessage:s}=(0,B.useIntl)(),{trackUsage:o}=(0,a.useTracking)(),{notifyStatus:r}=(0,t.useNotifyAT)(),m=(0,a.useNotification)(),{lockApp:d,unlockApp:p}=(0,a.useOverlayBlocker)(),E=(0,e.useRef)(o),P=(0,f.useQueryClient)();(0,a.useFocusWhenNavigate)();const[Z,N]=(0,e.useState)(!1),[I,$]=(0,e.useState)(null),x=(0,e.useMemo)(()=>({update:O.Z.updateEmailTemplates}),[]),{isLoading:q,allowedActions:{canUpdate:w}}=(0,a.useRBAC)(x),{status:Q,data:L}=(0,f.useQuery)("email-templates",()=>C(),{onSuccess(){r(s({id:(0,l.OB)("Email.template.data.loaded"),defaultMessage:"Email templates has been loaded"}))},onError(){m({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),V=q||Q!=="success",R=()=>{N(g=>!g)},D=g=>{$(g),R()},S=(0,f.useMutation)(g=>y({"email-templates":g}),{async onSuccess(){await P.invalidateQueries("email-templates"),m({type:"success",message:{id:"notification.success.saved",defaultMessage:"Saved"}}),E.current("didEditEmailTemplates"),p(),R()},onError(){m({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}}),p()},refetchActive:!0}),{isLoading:z}=S,W=g=>{d(),E.current("willEditEmailTemplates");const X={...L,[I]:g};S.mutate(X)};return V?e.createElement(t.Main,{"aria-busy":"true"},e.createElement(a.SettingsPageTitle,{name:s({id:(0,l.OB)("HeaderNav.link.emailTemplates"),defaultMessage:"Email templates"})}),e.createElement(t.HeaderLayout,{title:s({id:(0,l.OB)("HeaderNav.link.emailTemplates"),defaultMessage:"Email templates"})}),e.createElement(t.ContentLayout,null,e.createElement(a.LoadingIndicatorPage,null))):e.createElement(t.Main,{"aria-busy":z},e.createElement(a.SettingsPageTitle,{name:s({id:(0,l.OB)("HeaderNav.link.emailTemplates"),defaultMessage:"Email templates"})}),e.createElement(t.HeaderLayout,{title:s({id:(0,l.OB)("HeaderNav.link.emailTemplates"),defaultMessage:"Email templates"})}),e.createElement(t.ContentLayout,null,e.createElement(b,{onEditClick:D,canUpdate:w}),Z&&e.createElement(A,{template:L[I],onToggle:R,onSubmit:W})))};var H=j},59677:function(U,v,n){n.d(v,{YX:function(){return a},Gc:function(){return l},OB:function(){return C.Z}});var e=n(86834),f=n.n(e),a=y=>Object.keys(y).reduce((T,i)=>{const c=y[i].controllers,M=Object.keys(c).reduce((b,h)=>(f()(c[h])||(b[h]=c[h]),b),{});return f()(M)||(T[i]={controllers:M}),T},{}),t=n(90201),l=y=>`/${t.Z}/${y}`,C=n(82069)}}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[2282],{51509:function(f,P,t){"use strict";t.r(P),t.d(P,{ProvidersPage:function(){return K},default:function(){return le}});var e=t(32735),d=t(5636),a=t(13478),l=t(23973),u=t.n(l),m=t(23940),o=t.n(m),r=t(39161),p=t(57269),b=t(84968),n=t(5173),s=t(59677);const U={id:(0,s.OB)("PopUpForm.Providers.redirectURL.front-end.label"),defaultMessage:"The redirect URL to your front-end app"},F={id:"http://www.client-app.com",defaultMessage:"http://www.client-app.com"},C={id:(0,s.OB)("PopUpForm.Providers.enabled.description"),defaultMessage:"If disabled, users won't be able to use this provider."},y={id:(0,s.OB)("PopUpForm.Providers.enabled.label"),defaultMessage:"Enable"},Z={id:(0,s.OB)("PopUpForm.Providers.key.label"),defaultMessage:"Client ID"},D={id:(0,s.OB)("PopUpForm.Providers.redirectURL.label"),defaultMessage:"The redirect URL to add in your {provider} application configurations"},k={id:(0,s.OB)("PopUpForm.Providers.key.placeholder"),defaultMessage:"TEXT"},z={id:(0,s.OB)("PopUpForm.Providers.secret.label"),defaultMessage:"Client Secret"};var G={email:{form:[[{intlLabel:y,name:"enabled",type:"bool",description:C,size:6}]],schema:n.Ry().shape({enabled:n.Xg().required(a.translatedErrors.required)})},providers:{form:[[{intlLabel:y,name:"enabled",type:"bool",description:C,size:6,validations:{required:!0}}],[{intlLabel:Z,name:"key",type:"text",placeholder:k,size:12,validations:{required:!0}}],[{intlLabel:z,name:"secret",type:"text",placeholder:k,size:12,validations:{required:!0}}],[{intlLabel:U,placeholder:F,name:"callback",type:"text",size:12,validations:{required:!0}}],[{intlLabel:D,name:"noName",type:"text",validations:{},size:12,disabled:!0}]],schema:n.Ry().shape({enabled:n.Xg().required(a.translatedErrors.required),key:n.Z_().when("enabled",{is:!0,then:n.Z_().required(a.translatedErrors.required),otherwise:n.Z_()}),secret:n.Z_().when("enabled",{is:!0,then:n.Z_().required(a.translatedErrors.required),otherwise:n.Z_()}),callback:n.Z_().when("enabled",{is:!0,then:n.Z_().required(a.translatedErrors.required),otherwise:n.Z_()})})},providersWithSubdomain:{form:[[{intlLabel:y,name:"enabled",type:"bool",description:C,size:6,validations:{required:!0}}],[{intlLabel:Z,name:"key",type:"text",placeholder:k,size:12,validations:{required:!0}}],[{intlLabel:z,name:"secret",type:"text",placeholder:k,size:12,validations:{required:!0}}],[{intlLabel:{id:(0,s.OB)({id:"PopUpForm.Providers.jwksurl.label"}),defaultMessage:"JWKS URL"},name:"jwksurl",type:"text",placeholder:k,size:12,validations:{required:!1}}],[{intlLabel:{id:(0,s.OB)("PopUpForm.Providers.subdomain.label"),defaultMessage:"Host URI (Subdomain)"},name:"subdomain",type:"text",placeholder:{id:(0,s.OB)("PopUpForm.Providers.subdomain.placeholder"),defaultMessage:"my.subdomain.com"},size:12,validations:{required:!0}}],[{intlLabel:U,placeholder:F,name:"callback",type:"text",size:12,validations:{required:!0}}],[{intlLabel:D,name:"noName",type:"text",validations:{},size:12,disabled:!0}]],schema:n.Ry().shape({enabled:n.Xg().required(a.translatedErrors.required),key:n.Z_().when("enabled",{is:!0,then:n.Z_().required(a.translatedErrors.required),otherwise:n.Z_()}),secret:n.Z_().when("enabled",{is:!0,then:n.Z_().required(a.translatedErrors.required),otherwise:n.Z_()}),subdomain:n.Z_().when("enabled",{is:!0,then:n.Z_().required(a.translatedErrors.required),otherwise:n.Z_()}),callback:n.Z_().when("enabled",{is:!0,then:n.Z_().required(a.translatedErrors.required),otherwise:n.Z_()})})}};const _=async c=>{try{const{get:v}=(0,a.getFetchClient)(),{data:M}=await v((0,s.Gc)("providers"));return M}catch{throw c({type:"warning",message:{id:"notification.error"}}),new Error("error")}},ee=c=>{const{put:v}=(0,a.getFetchClient)();return v((0,s.Gc)("providers"),c)};var te=t(98978),re=t.n(te),ae=c=>re()(Object.keys(c).reduce((v,M)=>{const{icon:T,enabled:E,subdomain:O}=c[M],L=T==="envelope"?["fas","envelope"]:["fab",T];return O!==void 0?v.push({name:M,icon:L,enabled:E,subdomain:O}):v.push({name:M,icon:L,enabled:E}),v},[]),"name"),J=t(88369),ne=t(60216),i=t.n(ne),se=t(83281);const H=({description:c,disabled:v,intlLabel:M,error:T,name:E,onChange:O,placeholder:L,providerToEditName:S,type:R,value:g})=>{const{formatMessage:B}=(0,d.useIntl)(),A=E==="noName"?`${strapi.backendURL}/api/connect/${S}/callback`:g,q=B({id:M.id,defaultMessage:M.defaultMessage},{provider:S,...M.values}),x=c?B({id:c.id,defaultMessage:c.defaultMessage},{provider:S,...c.values}):"";if(R==="bool")return e.createElement(r.ToggleInput,{"aria-label":E,checked:g,disabled:v,hint:x,label:q,name:E,offLabel:B({id:"app.components.ToggleCheckbox.off-label",defaultMessage:"Off"}),onLabel:B({id:"app.components.ToggleCheckbox.on-label",defaultMessage:"On"}),onChange:w=>{O({target:{name:E,value:w.target.checked}})}});const X=L?B({id:L.id,defaultMessage:L.defaultMessage},{...L.values}):"",$=T?B({id:T,defaultMessage:T}):"";return e.createElement(r.TextInput,{"aria-label":E,disabled:v,error:$,label:q,name:E,onChange:O,placeholder:X,type:R,value:A})};H.defaultProps={description:null,disabled:!1,error:"",placeholder:null,value:""},H.propTypes={description:i().shape({id:i().string.isRequired,defaultMessage:i().string.isRequired,values:i().object}),disabled:i().bool,error:i().string,intlLabel:i().shape({id:i().string.isRequired,defaultMessage:i().string.isRequired,values:i().object}).isRequired,name:i().string.isRequired,onChange:i().func.isRequired,placeholder:i().shape({id:i().string.isRequired,defaultMessage:i().string.isRequired,values:i().object}),providerToEditName:i().string.isRequired,type:i().string.isRequired,value:i().oneOfType([i().bool,i().string])};var ie=H;const W=({headerBreadcrumbs:c,initialData:v,isSubmiting:M,layout:T,isOpen:E,onSubmit:O,onToggle:L,providerToEditName:S})=>{const{formatMessage:R}=(0,d.useIntl)();return E?e.createElement(r.ModalLayout,{onClose:L,labelledBy:"title"},e.createElement(r.ModalHeader,null,e.createElement(r.Breadcrumbs,{label:c.join(", ")},c.map(g=>e.createElement(r.Crumb,{key:g},g)))),e.createElement(se.Formik,{onSubmit:g=>O(g),initialValues:v,validationSchema:T.schema,validateOnChange:!1},({errors:g,handleChange:B,values:A})=>e.createElement(a.Form,null,e.createElement(r.ModalBody,null,e.createElement(r.Flex,{direction:"column",alignItems:"stretch",gap:1},e.createElement(r.Grid,{gap:5},T.form.map(q=>q.map(x=>e.createElement(r.GridItem,{key:x.name,col:x.size,xs:12},e.createElement(ie,{...x,error:g[x.name],onChange:B,value:A[x.name],providerToEditName:S}))))))),e.createElement(r.ModalFooter,{startActions:e.createElement(r.Button,{variant:"tertiary",onClick:L,type:"button"},R({id:"app.components.Button.cancel",defaultMessage:"Cancel"})),endActions:e.createElement(r.Button,{type:"submit",loading:M},R({id:"global.save",defaultMessage:"Save"}))})))):null};W.defaultProps={initialData:null,providerToEditName:null},W.propTypes={headerBreadcrumbs:i().arrayOf(i().string).isRequired,initialData:i().object,layout:i().shape({form:i().arrayOf(i().array),schema:i().object}).isRequired,isOpen:i().bool.isRequired,isSubmiting:i().bool.isRequired,onSubmit:i().func.isRequired,onToggle:i().func.isRequired,providerToEditName:i().string};var oe=W;const K=()=>{const{formatMessage:c}=(0,d.useIntl)();(0,a.useFocusWhenNavigate)();const{notifyStatus:v}=(0,r.useNotifyAT)(),M=(0,b.useQueryClient)(),{trackUsage:T}=(0,a.useTracking)(),E=(0,e.useRef)(T),[O,L]=(0,e.useState)(!1),[S,R]=(0,e.useState)(!1),[g,B]=(0,e.useState)(null),A=(0,a.useNotification)(),{lockApp:q,unlockApp:x}=(0,a.useOverlayBlocker)(),X=(0,e.useMemo)(()=>({update:J.Z.updateProviders}),[]),{isLoading:$,allowedActions:{canUpdate:w}}=(0,a.useRBAC)(X),{isLoading:de,data:j,isFetching:ue}=(0,b.useQuery)("get-providers",()=>_(A),{onSuccess(){v(c({id:(0,s.OB)("Providers.data.loaded"),defaultMessage:"Providers have been loaded"}))},initialData:{}}),ce=de||ue,me=(0,b.useMutation)(ee,{async onSuccess(){await M.invalidateQueries("get-providers"),A({type:"info",message:{id:(0,s.OB)("notification.success.submit")}}),E.current("didEditAuthenticationProvider"),R(!1),Q(),x()},onError(){A({type:"warning",message:{id:"notification.error"}}),x(),R(!1)},refetchActive:!1}),N=(0,e.useMemo)(()=>ae(j),[j]),pe=N.length,Y=(0,e.useMemo)(()=>{if(!g)return!1;const h=N.find(V=>V.name===g);return u()(h,"subdomain")},[N,g]),ge=c({id:(0,s.OB)("HeaderNav.link.providers"),defaultMessage:"Providers"}),fe=(0,e.useMemo)(()=>g==="email"?G.email:Y?G.providersWithSubdomain:G.providers,[g,Y]),Q=()=>{L(h=>!h)},I=h=>{w&&(B(h.name),Q())},be=async h=>{R(!0),q(),E.current("willEditAuthenticationProvider");const V={...j,[g]:h};me.mutate({providers:V})};return e.createElement(r.Layout,null,e.createElement(a.SettingsPageTitle,{name:ge}),e.createElement(r.Main,null,e.createElement(r.HeaderLayout,{title:c({id:(0,s.OB)("HeaderNav.link.providers"),defaultMessage:"Providers"})}),ce||$?e.createElement(a.LoadingIndicatorPage,null):e.createElement(r.ContentLayout,null,e.createElement(r.Table,{colCount:3,rowCount:pe+1},e.createElement(r.Thead,null,e.createElement(r.Tr,null,e.createElement(r.Th,null,e.createElement(r.Typography,{variant:"sigma",textColor:"neutral600"},c({id:"global.name",defaultMessage:"Name"}))),e.createElement(r.Th,null,e.createElement(r.Typography,{variant:"sigma",textColor:"neutral600"},c({id:(0,s.OB)("Providers.status"),defaultMessage:"Status"}))),e.createElement(r.Th,null,e.createElement(r.Typography,{variant:"sigma"},e.createElement(r.VisuallyHidden,null,c({id:"global.settings",defaultMessage:"Settings"})))))),e.createElement(r.Tbody,null,N.map(h=>e.createElement(r.Tr,{key:h.name,...(0,a.onRowClick)({fn:()=>I(h),condition:w})},e.createElement(r.Td,{width:"45%"},e.createElement(r.Typography,{fontWeight:"semiBold",textColor:"neutral800"},h.name)),e.createElement(r.Td,{width:"65%"},e.createElement(r.Typography,{textColor:h.enabled?"success600":"danger600","data-testid":`enable-${h.name}`},h.enabled?c({id:"global.enabled",defaultMessage:"Enabled"}):c({id:"global.disabled",defaultMessage:"Disabled"}))),e.createElement(r.Td,{...a.stopPropagation},w&&e.createElement(r.IconButton,{onClick:()=>I(h),noBorder:!0,icon:e.createElement(p.Pencil,null),label:"Edit"})))))))),e.createElement(oe,{initialData:j[g],isOpen:O,isSubmiting:S,layout:fe,headerBreadcrumbs:[c({id:(0,s.OB)("PopUpForm.header.edit.providers"),defaultMessage:"Edit Provider"}),o()(g)],onToggle:Q,onSubmit:be,providerToEditName:g}))};var le=()=>e.createElement(a.CheckPagePermissions,{permissions:J.Z.readProviders},e.createElement(K,null))},59677:function(f,P,t){"use strict";t.d(P,{YX:function(){return l},Gc:function(){return o},OB:function(){return r.Z}});var e=t(86834),d=t.n(e),l=p=>Object.keys(p).reduce((b,n)=>{const s=p[n].controllers,U=Object.keys(s).reduce((F,C)=>(d()(s[C])||(F[C]=s[C]),F),{});return d()(U)||(b[n]={controllers:U}),b},{}),u=t(90201),o=p=>`/${u.Z}/${p}`,r=t(82069)},56671:function(f,P,t){var e=t(35897),d=t(74741),a=d(e);f.exports=a},52920:function(f,P,t){var e=t(56671),d=t(81580);function a(l,u){var m=-1,o=d(l)?Array(l.length):[];return e(l,function(r,p,b){o[++m]=u(r,p,b)}),o}f.exports=a},50690:function(f,P,t){var e=t(26460),d=t(80166),a=t(88904),l=t(52920),u=t(36024),m=t(76535),o=t(1397),r=t(15362),p=t(77236);function b(n,s,U){s.length?s=e(s,function(y){return p(y)?function(Z){return d(Z,y.length===1?y[0]:y)}:y}):s=[r];var F=-1;s=e(s,m(a));var C=l(n,function(y,Z,D){var k=e(s,function(z){return z(y)});return{criteria:k,index:++F,value:y}});return u(C,function(y,Z){return o(y,Z,U)})}f.exports=b},36024:function(f){function P(t,e){var d=t.length;for(t.sort(e);d--;)t[d]=t[d].value;return t}f.exports=P},40709:function(f,P,t){var e=t(22945);function d(a,l){if(a!==l){var u=a!==void 0,m=a===null,o=a===a,r=e(a),p=l!==void 0,b=l===null,n=l===l,s=e(l);if(!b&&!s&&!r&&a>l||r&&p&&n&&!b&&!s||m&&p&&n||!u&&n||!o)return 1;if(!m&&!r&&!s&&a<l||s&&u&&o&&!m&&!r||b&&u&&o||!p&&o||!n)return-1}return 0}f.exports=d},1397:function(f,P,t){var e=t(40709);function d(a,l,u){for(var m=-1,o=a.criteria,r=l.criteria,p=o.length,b=u.length;++m<p;){var n=e(o[m],r[m]);if(n){if(m>=b)return n;var s=u[m];return n*(s=="desc"?-1:1)}}return a.index-l.index}f.exports=d},74741:function(f,P,t){var e=t(81580);function d(a,l){return function(u,m){if(u==null)return u;if(!e(u))return a(u,m);for(var o=u.length,r=l?o:-1,p=Object(u);(l?r--:++r<o)&&m(p[r],r,p)!==!1;);return u}}f.exports=d},98978:function(f,P,t){var e=t(40314),d=t(50690),a=t(94569),l=t(63108),u=a(function(m,o){if(m==null)return[];var r=o.length;return r>1&&l(m,o[0],o[1])?o=[]:r>2&&l(o[0],o[1],o[2])&&(o=[o[0]]),d(m,e(o,1),[])});f.exports=u}}]);
@@ -0,0 +1,30 @@
1
+ (self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[8853],{77495:function(f,b,n){"use strict";n.r(b),n.d(b,{default:function(){return et}});var e=n(32735),d=n(5141),r=n(13478),i=n(90201),l=n(88369),t=n(39161),m=n(57269),R=n(5636),P=n(84968),x=n(58469),T=n(59677);const D=async(s,o)=>{try{const{get:a}=(0,r.getFetchClient)(),{data:c}=await a((0,T.Gc)("roles"));return o("The roles have loaded successfully"),c}catch{throw s({type:"warning",message:{id:"notification.error"}}),new Error("error")}},F=async(s,o)=>{try{const{del:a}=(0,r.getFetchClient)();await a(`${(0,T.Gc)("roles")}/${s}`)}catch{o({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}};var B=n(60216),v=n.n(B);const M=({sortedRoles:s,canDelete:o,permissions:a,setRoleToDelete:c,onDelete:p})=>{const{formatMessage:u}=(0,R.useIntl)(),{push:E}=(0,d.useHistory)(),[y,C]=p,h=g=>o&&!["public","authenticated"].includes(g.type),A=g=>{c(g),C(!y)},L=g=>{E(`/settings/${i.Z}/roles/${g}`)};return e.createElement(t.Tbody,null,s?.map(g=>e.createElement(t.Tr,{key:g.name,...(0,r.onRowClick)({fn:()=>L(g.id)})},e.createElement(t.Td,{width:"20%"},e.createElement(t.Typography,null,g.name)),e.createElement(t.Td,{width:"50%"},e.createElement(t.Typography,null,g.description)),e.createElement(t.Td,{width:"30%"},e.createElement(t.Typography,null,`${g.nb_users} ${u({id:"global.users",defaultMessage:"users"}).toLowerCase()}`)),e.createElement(t.Td,null,e.createElement(t.Flex,{justifyContent:"end",...r.stopPropagation},e.createElement(r.CheckPermissions,{permissions:a.updateRole},e.createElement(t.IconButton,{onClick:()=>L(g.id),noBorder:!0,icon:e.createElement(m.Pencil,null),label:u({id:"app.component.table.edit",defaultMessage:"Edit {target}"},{target:`${g.name}`})})),h(g)&&e.createElement(r.CheckPermissions,{permissions:a.deleteRole},e.createElement(t.IconButton,{onClick:()=>A(g.id),noBorder:!0,icon:e.createElement(m.Trash,null),label:u({id:"global.delete-target",defaultMessage:"Delete {target}"},{target:`${g.name}`})})))))))};var I=M;M.defaultProps={canDelete:!1},M.propTypes={onDelete:v().array.isRequired,permissions:v().object.isRequired,setRoleToDelete:v().func.isRequired,sortedRoles:v().array.isRequired,canDelete:v().bool};var G=()=>{const{trackUsage:s}=(0,r.useTracking)(),{formatMessage:o}=(0,R.useIntl)(),{push:a}=(0,d.useHistory)(),c=(0,r.useNotification)(),{notifyStatus:p}=(0,t.useNotifyAT)(),[{query:u}]=(0,r.useQueryParams)(),E=u?._q||"",[y,C]=(0,e.useState)(!1),[h,A]=(0,e.useState)(!1),[L,g]=(0,e.useState)();(0,r.useFocusWhenNavigate)();const k=(0,P.useQueryClient)(),U=(0,e.useMemo)(()=>({create:l.Z.createRole,read:l.Z.readRoles,update:l.Z.updateRole,delete:l.Z.deleteRole}),[]),{isLoading:S,allowedActions:{canRead:O,canDelete:N}}=(0,r.useRBAC)(U),{isLoading:j,data:{roles:ce},isFetching:tt}=(0,P.useQuery)("get-roles",()=>D(c,p),{initialData:{},enabled:O}),ue=j||tt,nt=()=>{s("willCreateRole"),a(`/settings/${i.Z}/roles/new`)},st=()=>{C(!y)},rt={roles:{id:(0,T.OB)("Roles.empty"),defaultMessage:"You don't have any roles yet."},search:{id:(0,T.OB)("Roles.empty.search"),defaultMessage:"No roles match the search."}},at=o({id:"global.roles",defaultMessage:"Roles"}),ot=(0,P.useMutation)(dt=>F(dt,c),{async onSuccess(){await k.invalidateQueries("get-roles")}}),it=async()=>{A(!0),await ot.mutateAsync(L),C(!y),A(!1)},Y=(0,x.ZP)(ce||[],E,{keys:["name","description"]}),lt=E&&!Y.length?"search":"roles",ct=4,ut=(ce?.length||0)+1;return e.createElement(t.Layout,null,e.createElement(r.SettingsPageTitle,{name:at}),e.createElement(t.Main,{"aria-busy":ue},e.createElement(t.HeaderLayout,{title:o({id:"global.roles",defaultMessage:"Roles"}),subtitle:o({id:"Settings.roles.list.description",defaultMessage:"List of roles"}),primaryAction:e.createElement(r.CheckPermissions,{permissions:l.Z.createRole},e.createElement(t.Button,{onClick:nt,startIcon:e.createElement(m.Plus,null),size:"S"},o({id:(0,T.OB)("List.button.roles"),defaultMessage:"Add new role"})))}),e.createElement(t.ActionLayout,{startActions:e.createElement(r.SearchURLQuery,{label:o({id:"app.component.search.label",defaultMessage:"Search"})})}),e.createElement(t.ContentLayout,null,!O&&e.createElement(r.NoPermissions,null),(ue||S)&&e.createElement(r.LoadingIndicatorPage,null),O&&Y&&Y?.length?e.createElement(t.Table,{colCount:ct,rowCount:ut},e.createElement(t.Thead,null,e.createElement(t.Tr,null,e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},o({id:"global.name",defaultMessage:"Name"}))),e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},o({id:"global.description",defaultMessage:"Description"}))),e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},o({id:"global.users",defaultMessage:"Users"}))),e.createElement(t.Th,null,e.createElement(t.VisuallyHidden,null,o({id:"global.actions",defaultMessage:"Actions"}))))),e.createElement(I,{sortedRoles:Y,canDelete:N,permissions:l.Z,setRoleToDelete:g,onDelete:[y,C]})):e.createElement(r.EmptyStateLayout,{content:rt[lt]})),e.createElement(r.ConfirmDialog,{isConfirmButtonLoading:h,onConfirm:it,onToggleDialog:st,isOpen:y})))},V=()=>e.createElement(r.CheckPagePermissions,{permissions:l.Z.accessRoles},e.createElement(G,null)),K=n(83281),Z=n(82069),de=n(33795),H=n.n(de),me=n(86834),ge=n.n(me),pe=n(86205),Ee=n.n(pe);const q=(0,e.createContext)({}),_=({children:s,value:o})=>e.createElement(q.Provider,{value:o},s),X=()=>(0,e.useContext)(q);_.propTypes={children:v().node.isRequired,value:v().object.isRequired};var W=n(83292),he=n(37213),fe=n.n(he),ye=n(15738),Ce=n.n(ye),Re=s=>{switch(s){case"POST":return{text:"success600",border:"success200",background:"success100"};case"GET":return{text:"secondary600",border:"secondary200",background:"secondary100"};case"PUT":return{text:"warning600",border:"warning200",background:"warning100"};case"DELETE":return{text:"danger600",border:"danger200",background:"danger100"};default:return{text:"neutral600",border:"neutral200",background:"neutral100"}}};const be=(0,W.default)(t.Box)`
2
+ margin: -1px;
3
+ border-radius: ${({theme:s})=>s.spaces[1]} 0 0 ${({theme:s})=>s.spaces[1]};
4
+ `;function J({route:s}){const{formatMessage:o}=(0,R.useIntl)(),{method:a,handler:c,path:p}=s,u=p?Ce()(p.split("/")):[],[E="",y=""]=c?c.split("."):[],C=Re(s.method);return e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:2},e.createElement(t.Typography,{variant:"delta",as:"h3"},o({id:"users-permissions.BoundRoute.title",defaultMessage:"Bound route to"}),"\xA0",e.createElement("span",null,E),e.createElement(t.Typography,{variant:"delta",textColor:"primary600"},".",y)),e.createElement(t.Flex,{hasRadius:!0,background:"neutral0",borderColor:"neutral200",gap:0},e.createElement(be,{background:C.background,borderColor:C.border,padding:2},e.createElement(t.Typography,{fontWeight:"bold",textColor:C.text},a)),e.createElement(t.Box,{paddingLeft:2,paddingRight:2},fe()(u,h=>e.createElement(t.Typography,{key:h,textColor:h.includes(":")?"neutral600":"neutral900"},"/",h)))))}J.defaultProps={route:{handler:"Nocontroller.error",method:"GET",path:"/there-is-no-path"}},J.propTypes={route:v().shape({handler:v().string,method:v().string,path:v().string})};var ve=J,Te=()=>{const{formatMessage:s}=(0,R.useIntl)(),{selectedAction:o,routes:a}=X(),c=Ee()(o.split("."),"controllers"),p=H()(a,c[0]),u=c.slice(1).join("."),E=ge()(p)?[]:p.filter(y=>y.handler.endsWith(u));return e.createElement(t.GridItem,{col:5,background:"neutral150",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7,style:{minHeight:"100%"}},o?e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:2},E.map((y,C)=>e.createElement(ve,{key:C,route:y}))):e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:2},e.createElement(t.Typography,{variant:"delta",as:"h3"},s({id:"users-permissions.Policies.header.title",defaultMessage:"Advanced settings"})),e.createElement(t.Typography,{as:"p",textColor:"neutral600"},s({id:"users-permissions.Policies.header.hint",defaultMessage:"Select the application's actions or the plugin's actions and click on the cog icon to display the bound route"}))))},Ae=n(23940),Pe=n.n(Ae);function xe(s){switch(s){case"application":return"Application";case"plugin::content-manager":return"Content manager";case"plugin::content-type-builder":return"Content types builder";case"plugin::documentation":return"Documentation";case"plugin::email":return"Email";case"plugin::i18n":return"i18n";case"plugin::upload":return"Upload";case"plugin::users-permissions":return"Users-permissions";default:return Pe()(s.replace("api::","").replace("plugin::",""))}}var De=xe,Le=n(98978),ee=n.n(Le);const te=W.css`
5
+ background: ${s=>s.theme.colors.primary100};
6
+ svg {
7
+ opacity: 1;
8
+ }
9
+ `;var Me=(0,W.default)(t.Box)`
10
+ display: flex;
11
+ justify-content: space-between;
12
+ align-items: center;
13
+
14
+ svg {
15
+ opacity: 0;
16
+ path {
17
+ fill: ${s=>s.theme.colors.primary600};
18
+ }
19
+ }
20
+
21
+ /* Show active style both on hover and when the action is selected */
22
+ ${s=>s.isActive&&te}
23
+ &:hover {
24
+ ${te}
25
+ }
26
+ `;const Se=W.default.div`
27
+ flex: 1;
28
+ align-self: center;
29
+ border-top: 1px solid ${({theme:s})=>s.colors.neutral150};
30
+ `,ne=({subCategory:s})=>{const{formatMessage:o}=(0,R.useIntl)(),{onChange:a,onChangeSelectAll:c,onSelectedAction:p,selectedAction:u,modifiedData:E}=X(),y=(0,e.useMemo)(()=>H()(E,s.name,{}),[E,s]),C=(0,e.useMemo)(()=>Object.values(y).every(g=>g.enabled===!0),[y]),h=(0,e.useMemo)(()=>Object.values(y).some(g=>g.enabled===!0)&&!C,[y,C]),A=(0,e.useCallback)(({target:{name:g}})=>{c({target:{name:g,value:!C}})},[C,c]),L=(0,e.useCallback)(g=>u===g,[u]);return e.createElement(t.Box,null,e.createElement(t.Flex,{justifyContent:"space-between",alignItems:"center"},e.createElement(t.Box,{paddingRight:4},e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},s.label)),e.createElement(Se,null),e.createElement(t.Box,{paddingLeft:4},e.createElement(t.Checkbox,{name:s.name,value:C,onValueChange:g=>A({target:{name:s.name,value:g}}),indeterminate:h},o({id:"app.utils.select-all",defaultMessage:"Select all"})))),e.createElement(t.Flex,{paddingTop:6,paddingBottom:6},e.createElement(t.Grid,{gap:2,style:{flex:1}},s.actions.map(g=>{const k=`${g.name}.enabled`;return e.createElement(t.GridItem,{col:6,key:g.name},e.createElement(Me,{isActive:L(g.name),padding:2,hasRadius:!0},e.createElement(t.Checkbox,{value:H()(E,k,!1),name:k,onValueChange:U=>a({target:{name:k,value:U}})},g.label),e.createElement("button",{type:"button","data-testid":"action-cog",onClick:()=>p(g.name),style:{display:"inline-flex",alignItems:"center"}},e.createElement(m.Cog,null))))}))))};ne.propTypes={subCategory:v().object.isRequired};var ke=ne;const se=({name:s,permissions:o})=>{const a=(0,e.useMemo)(()=>ee()(Object.values(o.controllers).reduce((c,p,u)=>{const E=`${s}.controllers.${Object.keys(o.controllers)[u]}`,y=ee()(Object.keys(p).reduce((C,h)=>[...C,{...p[h],label:h,name:`${E}.${h}`}],[]),"label");return[...c,{actions:y,label:Object.keys(o.controllers)[u],name:E}]},[]),"label"),[s,o]);return e.createElement(t.Box,{padding:6},a.map(c=>e.createElement(ke,{key:c.name,subCategory:c})))};se.propTypes={name:v().string.isRequired,permissions:v().object.isRequired};var Oe=se,Be=(s,o)=>{const a=Object.keys(o).sort().map(c=>({name:c,isOpen:!1}));return{...s,collapses:a}},Q=n(97889);const Ie={collapses:[]},Ge=(s,o)=>(0,Q.default)(s,a=>{switch(o.type){case"TOGGLE_COLLAPSE":{a.collapses=s.collapses.map((c,p)=>p===o.index?{...c,isOpen:!c.isOpen}:{...c,isOpen:!1});break}default:return a}});var Fe=()=>{const{modifiedData:s}=X(),{formatMessage:o}=(0,R.useIntl)(),[{collapses:a},c]=(0,e.useReducer)(Ge,Ie,u=>Be(u,s)),p=u=>c({type:"TOGGLE_COLLAPSE",index:u});return e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:1},a.map((u,E)=>e.createElement(t.Accordion,{expanded:u.isOpen,onToggle:()=>p(E),key:u.name,variant:E%2===0?"secondary":void 0},e.createElement(t.AccordionToggle,{title:De(u.name),description:o({id:"users-permissions.Plugin.permissions.plugins.description",defaultMessage:"Define all allowed actions for the {name} plugin."},{name:u.name}),variant:E%2?"primary":"secondary"}),e.createElement(t.AccordionContent,null,e.createElement(t.Box,null,e.createElement(Oe,{permissions:s[u.name],name:u.name}))))))},Ue=n(3040),re=n.n(Ue),Ne=n(88708),we=n.n(Ne);const Ze={initialData:{},modifiedData:{},routes:{},selectedAction:"",policies:[]};var $e=(s,o)=>(0,Q.default)(s,a=>{switch(o.type){case"ON_CHANGE":{const c=o.keys.length,p=o.keys[c-1]==="enabled";if(o.value&&p){const u=we()(o.keys,c-1).join(".");a.selectedAction=u}re()(a,["modifiedData",...o.keys],o.value);break}case"ON_CHANGE_SELECT_ALL":{const c=["modifiedData",...o.keys],p=H()(s,c,{}),u=Object.keys(p).reduce((E,y)=>(E[y]={...p[y],enabled:o.value},E),{});re()(a,c,u);break}case"ON_RESET":{a.modifiedData=s.initialData;break}case"ON_SUBMIT_SUCCEEDED":{a.initialData=s.modifiedData;break}case"SELECT_ACTION":{const{actionToSelect:c}=o;a.selectedAction=c===s.selectedAction?"":c;break}default:return a}}),je=(s,o,a)=>({...s,initialData:o,modifiedData:o,routes:a});const ae=(0,e.forwardRef)(({permissions:s,routes:o},a)=>{const{formatMessage:c}=(0,R.useIntl)(),[p,u]=(0,e.useReducer)($e,Ze,A=>je(A,s,o));(0,e.useImperativeHandle)(a,()=>({getPermissions(){return{permissions:p.modifiedData}},resetForm(){u({type:"ON_RESET"})},setFormAfterSubmit(){u({type:"ON_SUBMIT_SUCCEEDED"})}}));const h={...p,onChange:({target:{name:A,value:L}})=>u({type:"ON_CHANGE",keys:A.split("."),value:L==="empty__string_value"?"":L}),onChangeSelectAll:({target:{name:A,value:L}})=>u({type:"ON_CHANGE_SELECT_ALL",keys:A.split("."),value:L}),onSelectedAction:A=>u({type:"SELECT_ACTION",actionToSelect:A})};return e.createElement(_,{value:h},e.createElement(t.Grid,{gap:0,shadow:"filterShadow",hasRadius:!0,background:"neutral0"},e.createElement(t.GridItem,{col:7,paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:6},e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:2},e.createElement(t.Typography,{variant:"delta",as:"h2"},c({id:(0,Z.Z)("Plugins.header.title"),defaultMessage:"Permissions"})),e.createElement(t.Typography,{as:"p",textColor:"neutral600"},c({id:(0,Z.Z)("Plugins.header.description"),defaultMessage:"Only actions bound by a route are listed below."}))),e.createElement(Fe,null))),e.createElement(Te,null)))});ae.propTypes={permissions:v().object.isRequired,routes:v().object.isRequired};var oe=(0,e.memo)(ae);const Ct={isLoading:!0,modifiedData:{}},Rt=(s,o)=>produce(s,a=>{switch(o.type){case"GET_DATA":{a.isLoading=!0,a.modifiedData={};break}case"GET_DATA_SUCCEEDED":{a.isLoading=!1,a.modifiedData=o.data;break}case"GET_DATA_ERROR":{a.isLoading=!0;break}case"ON_SUBMIT_SUCCEEDED":{a.modifiedData=o.data;break}default:return a}});var bt=null;const vt=(s,o)=>{const{isLoading:a,allowedActions:c}=useRBAC(o),[{isLoading:p,modifiedData:u},E]=useReducer(reducer,initialState),y=useNotification(),C=useRef(!0),h=new AbortController,{signal:A}=h;useEffect(()=>(a||(async()=>{try{E({type:"GET_DATA"});const k=await request(getRequestURL(s),{method:"GET",signal:A});E({type:"GET_DATA_SUCCEEDED",data:k})}catch(k){C.current&&(E({type:"GET_DATA_ERROR"}),console.error(k),y({type:"warning",message:{id:"notification.error"}}))}})(),()=>{h.abort(),C.current=!1}),[a,s]);const L=useCallback(g=>{E({type:"ON_SUBMIT_SUCCEEDED",data:g})},[]);return{allowedActions:c,dispatchSubmitSucceeded:L,isLoading:p,isLoadingForPermissions:a,modifiedData:u}};var Tt=null;const At={roles:[],isLoading:!0},Pt=(s,o)=>produce(s,a=>{switch(o.type){case"GET_DATA":{a.isLoading=!0,a.roles=[];break}case"GET_DATA_SUCCEEDED":{a.roles=o.data,a.isLoading=!1;break}case"GET_DATA_ERROR":{a.isLoading=!1;break}default:return a}});var xt=null;const Dt=(s=!0)=>{const[{roles:o,isLoading:a},c]=useReducer(reducer,initialState,()=>init(initialState,s)),p=useNotification(),u=useRef(!0),E=new AbortController,{signal:y}=E;useEffect(()=>(s&&C(),()=>{E.abort(),u.current=!1}),[s]);const C=async()=>{try{c({type:"GET_DATA"});const{roles:h}=await request(`/${pluginId}/roles`,{method:"GET",signal:y});c({type:"GET_DATA_SUCCEEDED",data:h})}catch(h){const A=get(h,["response","payload","message"],"An error occured");u.current&&(c({type:"GET_DATA_ERROR"}),A!=="Forbidden"&&p({type:"warning",message:A}))}};return{roles:o,isLoading:a,getData:C}};var Lt=null,He=(s,o)=>({...s,isLoading:o});const ie={permissions:{},routes:{},isLoading:!0};var Ve=(s,o)=>(0,Q.default)(s,a=>{switch(o.type){case"GET_DATA":{a.isLoading=!0,a.permissions={},a.routes={};break}case"GET_DATA_SUCCEEDED":{a.permissions=o.permissions,a.routes=o.routes,a.isLoading=!1;break}case"GET_DATA_ERROR":{a.isLoading=!1;break}default:return a}}),le=(s=!0)=>{const o=(0,r.useNotification)(),[{permissions:a,routes:c,isLoading:p},u]=(0,e.useReducer)(Ve,ie,()=>He(ie,s)),E=(0,r.useFetchClient)(),y=(0,e.useCallback)(async()=>{try{u({type:"GET_DATA"});const[{permissions:C},{routes:h}]=await Promise.all([`/${i.Z}/permissions`,`/${i.Z}/routes`].map(async A=>(await E.get(A)).data));u({type:"GET_DATA_SUCCEEDED",permissions:(0,T.YX)(C),routes:h})}catch(C){const h=H()(C,["response","payload","message"],"An error occured");u({type:"GET_DATA_ERROR"}),h!=="Forbidden"&&o({type:"warning",message:h})}},[o]);return(0,e.useEffect)(()=>{s&&y()},[y,s]),{permissions:a,routes:c,getData:y,isLoading:p}};const We={role:{},isLoading:!0};var Qe=(s,o)=>(0,Q.default)(s,a=>{switch(o.type){case"GET_DATA_SUCCEEDED":{a.role=o.role,a.isLoading=!1;break}case"GET_DATA_ERROR":{a.isLoading=!1;break}case"ON_SUBMIT_SUCCEEDED":{a.role.name=o.name,a.role.description=o.description;break}default:return a}}),Ye=s=>{const[o,a]=(0,e.useReducer)(Qe,We),c=(0,r.useNotification)(),p=(0,e.useRef)(null),{get:u}=(0,r.useFetchClient)();(0,e.useEffect)(()=>(p.current=!0,s?E(s):a({type:"GET_DATA_SUCCEEDED",role:{}}),()=>p.current=!1),[s]);const E=async C=>{try{const{data:{role:h}}=await u(`/${i.Z}/roles/${C}`);p.current&&a({type:"GET_DATA_SUCCEEDED",role:h})}catch(h){console.error(h),a({type:"GET_DATA_ERROR"}),c({type:"warning",message:{id:"notification.error"}})}},y=(0,e.useCallback)(C=>{a({type:"ON_SUBMIT_SUCCEEDED",...C})},[]);return{...o,onSubmitSucceeded:y}},$=n(5173),ze=$.Ry().shape({name:$.Z_().required(r.translatedErrors.required),description:$.Z_().required(r.translatedErrors.required)}),Xe=()=>{const{formatMessage:s}=(0,R.useIntl)(),[o,a]=(0,e.useState)(!1),c=(0,r.useNotification)(),{lockApp:p,unlockApp:u}=(0,r.useOverlayBlocker)(),{params:{id:E}}=(0,d.useRouteMatch)(`/settings/${i.Z}/roles/:id`),{isLoading:y,routes:C}=le(),{role:h,onSubmitSucceeded:A,isLoading:L}=Ye(E),g=(0,e.useRef)(),{put:k}=(0,r.useFetchClient)(),U=async S=>{p(),a(!0);try{const O=g.current.getPermissions();await k(`/${i.Z}/roles/${E}`,{...S,...O,users:[]}),A({name:S.name,description:S.description}),c({type:"success",message:{id:(0,Z.Z)("Settings.roles.edited"),defaultMessage:"Role edited"}})}catch(O){console.error(O),c({type:"warning",message:{id:"notification.error",defaultMessage:"An error occurred"}})}a(!1),u()};return L?e.createElement(r.LoadingIndicatorPage,null):e.createElement(t.Main,null,e.createElement(r.SettingsPageTitle,{name:"Roles"}),e.createElement(K.Formik,{enableReinitialize:!0,initialValues:{name:h.name,description:h.description},onSubmit:U,validationSchema:ze},({handleSubmit:S,values:O,handleChange:N,errors:j})=>e.createElement(r.Form,{noValidate:!0,onSubmit:S},e.createElement(t.HeaderLayout,{primaryAction:!y&&e.createElement(t.Button,{disabled:h.code==="strapi-super-admin",type:"submit",loading:o,startIcon:e.createElement(m.Check,null)},s({id:"global.save",defaultMessage:"Save"})),title:h.name,subtitle:h.description,navigationAction:e.createElement(r.Link,{startIcon:e.createElement(m.ArrowLeft,null),to:"/settings/users-permissions/roles"},s({id:"global.back",defaultMessage:"Back"}))}),e.createElement(t.ContentLayout,null,e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:7},e.createElement(t.Box,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:4},e.createElement(t.Typography,{variant:"delta",as:"h2"},s({id:(0,Z.Z)("EditPage.form.roles"),defaultMessage:"Role details"})),e.createElement(t.Grid,{gap:4},e.createElement(t.GridItem,{col:6},e.createElement(t.TextInput,{name:"name",value:O.name||"",onChange:N,label:s({id:"global.name",defaultMessage:"Name"}),error:j.name?s({id:j.name,defaultMessage:"Invalid value"}):null})),e.createElement(t.GridItem,{col:6},e.createElement(t.Textarea,{name:"description",value:O.description||"",onChange:N,label:s({id:"global.description",defaultMessage:"Description"}),error:j.description?s({id:j.description,defaultMessage:"Invalid value"}):null}))))),!y&&e.createElement(oe,{ref:g,permissions:h.permissions,routes:C}))))))},Je=()=>e.createElement(r.CheckPagePermissions,{permissions:l.Z.updateRole},e.createElement(Xe,null)),Ke=$.Ry().shape({name:$.Z_().required(r.translatedErrors.required),description:$.Z_().required(r.translatedErrors.required)}),qe=()=>{const{formatMessage:s}=(0,R.useIntl)(),[o,a]=(0,e.useState)(!1),c=(0,r.useNotification)(),{goBack:p}=(0,d.useHistory)(),{lockApp:u,unlockApp:E}=(0,r.useOverlayBlocker)(),{isLoading:y,permissions:C,routes:h}=le(),{trackUsage:A}=(0,r.useTracking)(),L=(0,e.useRef)(),{post:g}=(0,r.useFetchClient)(),k=async U=>{u(),a(!0);try{const S=L.current.getPermissions();await g(`/${i.Z}/roles`,{...U,...S,users:[]}),A("didCreateRole"),c({type:"success",message:{id:(0,Z.Z)("Settings.roles.created"),defaultMessage:"Role created"}}),p()}catch(S){console.error(S),c({type:"warning",message:{id:"notification.error",defaultMessage:"An error occurred"}})}a(!1),E()};return e.createElement(t.Main,null,e.createElement(r.SettingsPageTitle,{name:"Roles"}),e.createElement(K.Formik,{enableReinitialize:!0,initialValues:{name:"",description:""},onSubmit:k,validationSchema:Ke},({handleSubmit:U,values:S,handleChange:O,errors:N})=>e.createElement(r.Form,{noValidate:!0,onSubmit:U},e.createElement(t.HeaderLayout,{primaryAction:!y&&e.createElement(t.Button,{type:"submit",loading:o,startIcon:e.createElement(m.Check,null)},s({id:"global.save",defaultMessage:"Save"})),title:s({id:"Settings.roles.create.title",defaultMessage:"Create a role"}),subtitle:s({id:"Settings.roles.create.description",defaultMessage:"Define the rights given to the role"})}),e.createElement(t.ContentLayout,null,e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:7},e.createElement(t.Box,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:4},e.createElement(t.Typography,{variant:"delta",as:"h2"},s({id:(0,Z.Z)("EditPage.form.roles"),defaultMessage:"Role details"})),e.createElement(t.Grid,{gap:4},e.createElement(t.GridItem,{col:6},e.createElement(t.TextInput,{name:"name",value:S.name||"",onChange:O,label:s({id:"global.name",defaultMessage:"Name"}),error:N.name?s({id:N.name,defaultMessage:"Invalid value"}):null})),e.createElement(t.GridItem,{col:6},e.createElement(t.Textarea,{name:"description",value:S.description||"",onChange:O,label:s({id:"global.description",defaultMessage:"Description"}),error:N.description?s({id:N.description,defaultMessage:"Invalid value"}):null}))))),!y&&e.createElement(oe,{ref:L,permissions:C,routes:h}))))))},_e=()=>e.createElement(r.CheckPagePermissions,{permissions:l.Z.createRole},e.createElement(qe,null)),et=()=>e.createElement(r.CheckPagePermissions,{permissions:l.Z.accessRoles},e.createElement(d.Switch,null,e.createElement(d.Route,{path:`/settings/${i.Z}/roles/new`,component:_e,exact:!0}),e.createElement(d.Route,{path:`/settings/${i.Z}/roles/:id`,component:Je,exact:!0}),e.createElement(d.Route,{path:`/settings/${i.Z}/roles`,component:V,exact:!0}),e.createElement(d.Route,{path:"",component:r.NotFound})))},59677:function(f,b,n){"use strict";n.d(b,{YX:function(){return i},Gc:function(){return m},OB:function(){return R.Z}});var e=n(86834),d=n.n(e),i=P=>Object.keys(P).reduce((x,T)=>{const D=P[T].controllers,F=Object.keys(D).reduce((B,v)=>(d()(D[v])||(B[v]=D[v]),B),{});return d()(F)||(x[T]={controllers:F}),x},{}),l=n(90201),m=P=>`/${l.Z}/${P}`,R=n(82069)},88058:function(f,b,n){var e=n(87650);function d(r,i){var l=r==null?0:r.length;return!!l&&e(r,i,0)>-1}f.exports=d},37431:function(f){function b(n,e,d){for(var r=-1,i=n==null?0:n.length;++r<i;)if(d(e,n[r]))return!0;return!1}f.exports=b},91096:function(f,b,n){var e=n(61124),d=n(88058),r=n(37431),i=n(26460),l=n(76535),t=n(30555),m=200;function R(P,x,T,D){var F=-1,B=d,v=!0,M=P.length,I=[],z=x.length;if(!M)return I;T&&(x=i(x,l(T))),D?(B=r,v=!1):x.length>=m&&(B=t,v=!1,x=new e(x));e:for(;++F<M;){var G=P[F],w=T==null?G:T(G);if(G=D||G!==0?G:0,v&&w===w){for(var V=z;V--;)if(x[V]===w)continue e;I.push(G)}else B(x,w,D)||I.push(G)}return I}f.exports=R},56671:function(f,b,n){var e=n(35897),d=n(74741),r=d(e);f.exports=r},60528:function(f){function b(n,e,d,r){for(var i=n.length,l=d+(r?1:-1);r?l--:++l<i;)if(e(n[l],l,n))return l;return-1}f.exports=b},87650:function(f,b,n){var e=n(60528),d=n(25556),r=n(54256);function i(l,t,m){return t===t?r(l,t,m):e(l,d,m)}f.exports=i},25556:function(f){function b(n){return n!==n}f.exports=b},52920:function(f,b,n){var e=n(56671),d=n(81580);function r(i,l){var t=-1,m=d(i)?Array(i.length):[];return e(i,function(R,P,x){m[++t]=l(R,P,x)}),m}f.exports=r},50690:function(f,b,n){var e=n(26460),d=n(80166),r=n(88904),i=n(52920),l=n(36024),t=n(76535),m=n(1397),R=n(15362),P=n(77236);function x(T,D,F){D.length?D=e(D,function(M){return P(M)?function(I){return d(I,M.length===1?M[0]:M)}:M}):D=[R];var B=-1;D=e(D,t(r));var v=i(T,function(M,I,z){var G=e(D,function(w){return w(M)});return{criteria:G,index:++B,value:M}});return l(v,function(M,I){return m(M,I,F)})}f.exports=x},36024:function(f){function b(n,e){var d=n.length;for(n.sort(e);d--;)n[d]=n[d].value;return n}f.exports=b},40709:function(f,b,n){var e=n(22945);function d(r,i){if(r!==i){var l=r!==void 0,t=r===null,m=r===r,R=e(r),P=i!==void 0,x=i===null,T=i===i,D=e(i);if(!x&&!D&&!R&&r>i||R&&P&&T&&!x&&!D||t&&P&&T||!l&&T||!m)return 1;if(!t&&!R&&!D&&r<i||D&&l&&m&&!t&&!R||x&&l&&m||!P&&m||!T)return-1}return 0}f.exports=d},1397:function(f,b,n){var e=n(40709);function d(r,i,l){for(var t=-1,m=r.criteria,R=i.criteria,P=m.length,x=l.length;++t<P;){var T=e(m[t],R[t]);if(T){if(t>=x)return T;var D=l[t];return T*(D=="desc"?-1:1)}}return r.index-i.index}f.exports=d},74741:function(f,b,n){var e=n(81580);function d(r,i){return function(l,t){if(l==null)return l;if(!e(l))return r(l,t);for(var m=l.length,R=i?m:-1,P=Object(l);(i?R--:++R<m)&&t(P[R],R,P)!==!1;);return l}}f.exports=d},54256:function(f){function b(n,e,d){for(var r=d-1,i=n.length;++r<i;)if(n[r]===e)return r;return-1}f.exports=b},37213:function(f,b,n){var e=n(26460),d=n(88904),r=n(52920),i=n(77236);function l(t,m){var R=i(t)?e:r;return R(t,d(m,3))}f.exports=l},98978:function(f,b,n){var e=n(40314),d=n(50690),r=n(94569),i=n(63108),l=r(function(t,m){if(t==null)return[];var R=m.length;return R>1&&i(t,m[0],m[1])?m=[]:R>2&&i(m[0],m[1],m[2])&&(m=[m[0]]),d(t,e(m,1),[])});f.exports=l},15738:function(f,b,n){var e=n(4293);function d(r){var i=r==null?0:r.length;return i?e(r,1,i):[]}f.exports=d},88708:function(f,b,n){var e=n(4293),d=n(25225);function r(i,l,t){return i&&i.length?(l=t||l===void 0?1:d(l),e(i,0,l<0?0:l)):[]}f.exports=r},86205:function(f,b,n){var e=n(91096),d=n(94569),r=n(99747),i=d(function(l,t){return r(l)?e(l,t):[]});f.exports=i}}]);
@@ -1,4 +1,4 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5162],{47272:function(V,P,l){l.d(P,{Z:function(){return ie}});var e=l(32735),o=l(13478),t=l(39161),y=l(84968),x=l(5141),R=l(8888),j=l(60216),i=l.n(j),k=l(57269),I=l(83281),T=l(5636),$=l(83292),N=l(23940),z=l.n(N);const O=({disabledEvents:a,name:n,events:r,inputValue:s,handleChange:u,handleChangeAll:p})=>{const d=r.filter(g=>!a.includes(g)),c=s.length===d.length,h=s.length>0,f=({target:{name:g}})=>{p({target:{name:g,value:!c}})};return e.createElement("tr",null,e.createElement("td",null,e.createElement(t.Checkbox,{indeterminate:h&&!c,"aria-label":"Select all entries",name:n,onChange:f,value:c},z()(n))),r.map(g=>e.createElement("td",{key:g},e.createElement(t.BaseCheckbox,{disabled:a.includes(g),"aria-label":g,name:g,value:s.includes(g),onValueChange:E=>u({target:{name:g,value:E}})}))))};O.defaultProps={disabledEvents:[],events:[],inputValue:[],handleChange(){},handleChangeAll(){}},O.propTypes={disabledEvents:i().array,events:i().array,inputValue:i().array,handleChange:i().func,handleChangeAll:i().func,name:i().string.isRequired};var X=O,Q=a=>a.reduce((n,r)=>{const s=r.split(".")[0];return n[s]||(n[s]=[]),n[s].push(r),n},{});const q=$.default.table`
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5162],{47272:function(V,P,l){l.d(P,{Z:function(){return oe}});var e=l(32735),o=l(13478),t=l(39161),y=l(84968),x=l(5141),R=l(8888),j=l(60216),i=l.n(j),k=l(57269),I=l(83281),T=l(5636),$=l(83292),N=l(23940),z=l.n(N);const O=({disabledEvents:a,name:n,events:r,inputValue:s,handleChange:u,handleChangeAll:p})=>{const d=r.filter(g=>!a.includes(g)),c=s.length===d.length,h=s.length>0,f=({target:{name:g}})=>{p({target:{name:g,value:!c}})};return e.createElement("tr",null,e.createElement("td",null,e.createElement(t.Checkbox,{indeterminate:h&&!c,"aria-label":"Select all entries",name:n,onChange:f,value:c},z()(n))),r.map(g=>e.createElement("td",{key:g},e.createElement(t.BaseCheckbox,{disabled:a.includes(g),"aria-label":g,name:g,value:s.includes(g),onValueChange:E=>u({target:{name:g,value:E}})}))))};O.defaultProps={disabledEvents:[],events:[],inputValue:[],handleChange(){},handleChangeAll(){}},O.propTypes={disabledEvents:i().array,events:i().array,inputValue:i().array,handleChange:i().func,handleChangeAll:i().func,name:i().string.isRequired};var X=O,Q=a=>a.reduce((n,r)=>{const s=r.split(".")[0];return n[s]||(n[s]=[]),n[s].push(r),n},{});const q=$.default.table`
2
2
  td {
3
3
  height: ${52/16}rem;
4
4
  width: 10%;
@@ -13,11 +13,11 @@
13
13
  tbody tr td:first-child {
14
14
  padding-left: ${({theme:a})=>a.spaces[7]};
15
15
  }
16
- `,w={headers:{default:[{id:"Settings.webhooks.events.create",defaultMessage:"Create"},{id:"Settings.webhooks.events.update",defaultMessage:"Update"},{id:"app.utils.delete",defaultMessage:"Delete"}],draftAndPublish:[{id:"Settings.webhooks.events.create",defaultMessage:"Create"},{id:"Settings.webhooks.events.update",defaultMessage:"Update"},{id:"app.utils.delete",defaultMessage:"Delete"},{id:"app.utils.publish",defaultMessage:"Publish"},{id:"app.utils.unpublish",defaultMessage:"Unpublish"}]},events:{default:{entry:["entry.create","entry.update","entry.delete"],media:["media.create","media.update","media.delete"]},draftAndPublish:{entry:["entry.create","entry.update","entry.delete","entry.publish","entry.unpublish"],media:["media.create","media.update","media.delete"]}}},G=({isDraftAndPublish:a})=>{const n=a?w.headers.draftAndPublish:w.headers.default,r=a?w.events.draftAndPublish:w.events.default,{formatMessage:s}=(0,T.useIntl)(),{values:u,handleChange:p}=(0,I.useFormikContext)(),d="events",c=u.events,h=[],f=Q(c),g=({target:{name:m,value:A}})=>{let C=new Set(c);A?C.add(m):C.delete(m),p({target:{name:d,value:Array.from(C)}})},E=({target:{name:m,value:A}})=>{let C=new Set(c);A?r[m].forEach(S=>{h.includes(S)||C.add(S)}):r[m].forEach(S=>C.delete(S)),p({target:{name:d,value:Array.from(C)}})};return e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:1},e.createElement(t.FieldLabel,null,s({id:"Settings.webhooks.form.events",defaultMessage:"Events"})),e.createElement(q,null,e.createElement("thead",null,e.createElement("tr",null,e.createElement("td",null),n.map(m=>m==="app.utils.publish"||m==="app.utils.unpublish"?e.createElement("td",{key:m.id,title:s({id:"Settings.webhooks.event.publish-tooltip",defaultMessage:"This event only exists for content with draft & publish enabled"})},e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},s(m))):e.createElement("td",{key:m.id},e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},s(m)))))),e.createElement("tbody",null,Object.keys(r).map(m=>e.createElement(X,{disabledEvents:h,key:m,name:m,events:r[m],inputValue:f[m],handleChange:g,handleChangeAll:E})))))};G.propTypes={isDraftAndPublish:i().bool.isRequired};var J=G,H=["A-IM","Accept","Accept-Charset","Accept-Encoding","Accept-Language","Accept-Datetime","Access-Control-Request-Method","Access-Control-Request-Headers","Authorization","Cache-Control","Connection","Content-Length","Content-Type","Cookie","Date","Expect","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Max-Forwards","Origin","Pragma","Proxy-Authorization","Range","Referer","TE","User-Agent","Upgrade","Via","Warning"];const D=({name:a,onChange:n,value:r,...s})=>{const[u,p]=(0,e.useState)(r?[...H,r]:H),d=h=>{n({target:{name:a,value:h}})},c=h=>{p(f=>[...f,h]),n({target:{name:a,value:h}})};return e.createElement(t.CreatableCombobox,{...s,onChange:d,onCreateOption:c,placeholder:"",value:r},u.map(h=>e.createElement(t.ComboboxOption,{value:h,key:h},h)))};D.defaultProps={value:void 0},D.propTypes={name:i().string.isRequired,onChange:i().func.isRequired,value:i().string};var Y=D,_=()=>{const{formatMessage:a}=(0,T.useIntl)(),{values:n,errors:r}=(0,I.useFormikContext)();return e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:1},e.createElement(t.FieldLabel,null,a({id:"Settings.webhooks.form.headers",defaultMessage:"Headers"})),e.createElement(t.Box,{padding:8,background:"neutral100",hasRadius:!0},e.createElement(I.FieldArray,{validateOnChange:!1,name:"headers",render:({push:s,remove:u})=>e.createElement(t.Grid,{gap:4},n.headers?.map((p,d)=>e.createElement(e.Fragment,{key:d},e.createElement(t.GridItem,{col:6},e.createElement(I.Field,{as:Y,name:`headers.${d}.key`,"aria-label":`row ${d+1} key`,label:a({id:"Settings.webhooks.key",defaultMessage:"Key"}),error:r.headers?.[d]?.key&&a({id:r.headers[d]?.key,defaultMessage:r.headers[d]?.key})})),e.createElement(t.GridItem,{col:6},e.createElement(t.Flex,{alignItems:"flex-end"},e.createElement(t.Box,{style:{flex:1}},e.createElement(I.Field,{as:t.TextInput,"aria-label":`row ${d+1} value`,label:a({id:"Settings.webhooks.value",defaultMessage:"Value"}),name:`headers.${d}.value`,error:r.headers?.[d]?.value&&a({id:r.headers[d]?.value,defaultMessage:r.headers[d]?.value})})),e.createElement(t.Flex,{paddingLeft:2,style:{alignSelf:"center"},paddingTop:r.headers?.[d]?.value?0:5},e.createElement(o.RemoveRoundedButton,{onClick:()=>n.headers.length!==1&&u(d),label:a({id:"Settings.webhooks.headers.remove",defaultMessage:"Remove header row {number}"},{number:d+1})})))))),e.createElement(t.GridItem,{col:12},e.createElement(t.TextButton,{type:"button",onClick:()=>{s({key:"",value:""})},startIcon:e.createElement(k.Plus,null)},a({id:"Settings.webhooks.create.header",defaultMessage:"Create new header"}))))})))};const F=$.default.svg(({theme:a,color:n})=>`
16
+ `,w={headers:{default:[{id:"Settings.webhooks.events.create",defaultMessage:"Create"},{id:"Settings.webhooks.events.update",defaultMessage:"Update"},{id:"app.utils.delete",defaultMessage:"Delete"}],draftAndPublish:[{id:"Settings.webhooks.events.create",defaultMessage:"Create"},{id:"Settings.webhooks.events.update",defaultMessage:"Update"},{id:"app.utils.delete",defaultMessage:"Delete"},{id:"app.utils.publish",defaultMessage:"Publish"},{id:"app.utils.unpublish",defaultMessage:"Unpublish"}]},events:{default:{entry:["entry.create","entry.update","entry.delete"],media:["media.create","media.update","media.delete"]},draftAndPublish:{entry:["entry.create","entry.update","entry.delete","entry.publish","entry.unpublish"],media:["media.create","media.update","media.delete"]}}},G=({isDraftAndPublish:a})=>{const n=a?w.headers.draftAndPublish:w.headers.default,r=a?w.events.draftAndPublish:w.events.default,{formatMessage:s}=(0,T.useIntl)(),{values:u,handleChange:p}=(0,I.useFormikContext)(),d="events",c=u.events,h=[],f=Q(c),g=({target:{name:m,value:A}})=>{let C=new Set(c);A?C.add(m):C.delete(m),p({target:{name:d,value:Array.from(C)}})},E=({target:{name:m,value:A}})=>{let C=new Set(c);A?r[m].forEach(S=>{h.includes(S)||C.add(S)}):r[m].forEach(S=>C.delete(S)),p({target:{name:d,value:Array.from(C)}})};return e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:1},e.createElement(t.FieldLabel,null,s({id:"Settings.webhooks.form.events",defaultMessage:"Events"})),e.createElement(q,null,e.createElement("thead",null,e.createElement("tr",null,e.createElement("td",null),n.map(m=>m==="app.utils.publish"||m==="app.utils.unpublish"?e.createElement("td",{key:m.id,title:s({id:"Settings.webhooks.event.publish-tooltip",defaultMessage:"This event only exists for content with draft & publish enabled"})},e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},s(m))):e.createElement("td",{key:m.id},e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},s(m)))))),e.createElement("tbody",null,Object.keys(r).map(m=>e.createElement(X,{disabledEvents:h,key:m,name:m,events:r[m],inputValue:f[m],handleChange:g,handleChangeAll:E})))))};G.propTypes={isDraftAndPublish:i().bool.isRequired};var _=G,H=["A-IM","Accept","Accept-Charset","Accept-Encoding","Accept-Language","Accept-Datetime","Access-Control-Request-Method","Access-Control-Request-Headers","Authorization","Cache-Control","Connection","Content-Length","Content-Type","Cookie","Date","Expect","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Max-Forwards","Origin","Pragma","Proxy-Authorization","Range","Referer","TE","User-Agent","Upgrade","Via","Warning"];const D=({name:a,onChange:n,value:r,...s})=>{const[u,p]=(0,e.useState)(r?[...H,r]:H),d=h=>{n({target:{name:a,value:h}})},c=h=>{p(f=>[...f,h]),n({target:{name:a,value:h}})};return e.createElement(t.CreatableCombobox,{...s,onChange:d,onCreateOption:c,placeholder:"",value:r},u.map(h=>e.createElement(t.ComboboxOption,{value:h,key:h},h)))};D.defaultProps={value:void 0},D.propTypes={name:i().string.isRequired,onChange:i().func.isRequired,value:i().string};var J=D,Y=()=>{const{formatMessage:a}=(0,T.useIntl)(),{values:n,errors:r}=(0,I.useFormikContext)();return e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:1},e.createElement(t.FieldLabel,null,a({id:"Settings.webhooks.form.headers",defaultMessage:"Headers"})),e.createElement(t.Box,{padding:8,background:"neutral100",hasRadius:!0},e.createElement(I.FieldArray,{validateOnChange:!1,name:"headers",render:({push:s,remove:u})=>e.createElement(t.Grid,{gap:4},n.headers?.map((p,d)=>e.createElement(e.Fragment,{key:d},e.createElement(t.GridItem,{col:6},e.createElement(I.Field,{as:J,name:`headers.${d}.key`,"aria-label":`row ${d+1} key`,label:a({id:"Settings.webhooks.key",defaultMessage:"Key"}),error:r.headers?.[d]?.key&&a({id:r.headers[d]?.key,defaultMessage:r.headers[d]?.key})})),e.createElement(t.GridItem,{col:6},e.createElement(t.Flex,{alignItems:"flex-end"},e.createElement(t.Box,{style:{flex:1}},e.createElement(I.Field,{as:t.TextInput,"aria-label":`row ${d+1} value`,label:a({id:"Settings.webhooks.value",defaultMessage:"Value"}),name:`headers.${d}.value`,error:r.headers?.[d]?.value&&a({id:r.headers[d]?.value,defaultMessage:r.headers[d]?.value})})),e.createElement(t.Flex,{paddingLeft:2,style:{alignSelf:"center"},paddingTop:r.headers?.[d]?.value?0:5},e.createElement(o.RemoveRoundedButton,{onClick:()=>n.headers.length!==1&&u(d),label:a({id:"Settings.webhooks.headers.remove",defaultMessage:"Remove header row {number}"},{number:d+1})})))))),e.createElement(t.GridItem,{col:12},e.createElement(t.TextButton,{type:"button",onClick:()=>{s({key:"",value:""})},startIcon:e.createElement(k.Plus,null)},a({id:"Settings.webhooks.create.header",defaultMessage:"Create new header"}))))})))};const F=$.default.svg(({theme:a,color:n})=>`
17
17
  width: ${12/16}rem;
18
18
  height: ${12/16}rem;
19
19
 
20
20
  path {
21
21
  fill: ${a.colors[n]};
22
22
  }
23
- `),L=({isPending:a,statusCode:n})=>{const{formatMessage:r}=(0,T.useIntl)();return a?e.createElement(t.Flex,{gap:2,alignItems:"center"},e.createElement(F,{as:k.Loader}),e.createElement(t.Typography,null,r({id:"Settings.webhooks.trigger.pending",defaultMessage:"pending"}))):n>=200&&n<300?e.createElement(t.Flex,{gap:2,alignItems:"center"},e.createElement(F,{as:k.Check,color:"success700"}),e.createElement(t.Typography,null,r({id:"Settings.webhooks.trigger.success",defaultMessage:"success"}))):n>=300?e.createElement(t.Flex,{gap:2,alignItems:"center"},e.createElement(F,{as:k.Cross,color:"danger700"}),e.createElement(t.Typography,null,r({id:"Settings.error",defaultMessage:"error"})," ",n)):null};L.propTypes={isPending:i().bool.isRequired,statusCode:i().number},L.defaultProps={statusCode:void 0};const B=({statusCode:a,message:n})=>{const{formatMessage:r}=(0,T.useIntl)();return a>=200&&a<300?e.createElement(t.Flex,{justifyContent:"flex-end"},e.createElement(t.Typography,{textColor:"neutral600",ellipsis:!0},r({id:"Settings.webhooks.trigger.success.label",defaultMessage:"Trigger succeeded"}))):a>=300?e.createElement(t.Flex,{justifyContent:"flex-end"},e.createElement(t.Flex,{maxWidth:(0,o.pxToRem)(250),justifyContent:"flex-end",title:n},e.createElement(t.Typography,{ellipsis:!0,textColor:"neutral600"},n))):null};B.propTypes={statusCode:i().number,message:i().string},B.defaultProps={statusCode:void 0,message:void 0};const K=({onCancel:a})=>{const{formatMessage:n}=(0,T.useIntl)();return e.createElement(t.Flex,{justifyContent:"flex-end"},e.createElement("button",{onClick:a,type:"button"},e.createElement(t.Flex,{gap:2,alignItems:"center"},e.createElement(t.Typography,{textColor:"neutral400"},n({id:"Settings.webhooks.trigger.cancel",defaultMessage:"cancel"})),e.createElement(F,{as:k.Cross,color:"neutral400"}))))};K.propTypes={onCancel:i().func.isRequired};const W=({isPending:a,onCancel:n,response:r})=>{const{statusCode:s,message:u}=r,{formatMessage:p}=(0,T.useIntl)();return e.createElement(t.Box,{background:"neutral0",padding:5,shadow:"filterShadow",hasRadius:!0},e.createElement(t.Grid,{gap:4,style:{alignItems:"center"}},e.createElement(t.GridItem,{col:3},e.createElement(t.Typography,null,p({id:"Settings.webhooks.trigger.test",defaultMessage:"Test-trigger"}))),e.createElement(t.GridItem,{col:3},e.createElement(L,{isPending:a,statusCode:s})),e.createElement(t.GridItem,{col:6},a?e.createElement(K,{onCancel:n}):e.createElement(B,{statusCode:s,message:u}))))};W.defaultProps={isPending:!1,onCancel(){},response:{}},W.propTypes={isPending:i().bool,onCancel:i().func,response:i().object};var ee=W,v=l(5173);const te=/(^$)|(^[A-Za-z][_0-9A-Za-z ]*$)/,ae=/(^$)|((https?:\/\/.*)(d*)\/?(.*))/;var ne=v.Ry().shape({name:v.Z_(o.translatedErrors.string).required(o.translatedErrors.required).matches(te,o.translatedErrors.regex),url:v.Z_(o.translatedErrors.string).required(o.translatedErrors.required).matches(ae,o.translatedErrors.regex),headers:v.Vo(a=>{let n=v.IX();if(a.length===1){const{key:r,value:s}=a[0];if(!r&&!s)return n}return n.of(v.Ry().shape({key:v.Z_().required(o.translatedErrors.required),value:v.Z_().required(o.translatedErrors.required)}))}),events:v.IX()});const U=({handleSubmit:a,data:n,triggerWebhook:r,isCreating:s,isTriggering:u,triggerResponse:p,isDraftAndPublishEvents:d})=>{const{formatMessage:c}=(0,T.useIntl)(),[h,f]=(0,e.useState)(!1);return e.createElement(I.Formik,{onSubmit:a,initialValues:{name:n?.name||"",url:n?.url||"",headers:Object.keys(n?.headers||[]).length?Object.entries(n.headers).map(([g,E])=>({key:g,value:E})):[{key:"",value:""}],events:n?.events||[]},validationSchema:ne,validateOnChange:!1,validateOnBlur:!1},({handleSubmit:g,errors:E})=>e.createElement(o.Form,{noValidate:!0},e.createElement(t.HeaderLayout,{primaryAction:e.createElement(t.Flex,{gap:2},e.createElement(t.Button,{onClick:()=>{r(),f(!0)},variant:"tertiary",startIcon:e.createElement(k.Play,null),disabled:s||u,size:"L"},c({id:"Settings.webhooks.trigger",defaultMessage:"Trigger"})),e.createElement(t.Button,{startIcon:e.createElement(k.Check,null),onClick:g,type:"submit",size:"L"},c({id:"global.save",defaultMessage:"Save"}))),title:s?c({id:"Settings.webhooks.create",defaultMessage:"Create a webhook"}):n?.name,navigationAction:e.createElement(o.Link,{startIcon:e.createElement(k.ArrowLeft,null),to:"/settings/webhooks"},c({id:"global.back",defaultMessage:"Back"}))}),e.createElement(t.ContentLayout,null,e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:4},h&&e.createElement("div",{className:"trigger-wrapper"},e.createElement(ee,{isPending:u,response:p,onCancel:()=>f(!1)})),e.createElement(t.Box,{background:"neutral0",padding:8,shadow:"filterShadow",hasRadius:!0},e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:6},e.createElement(t.Grid,{gap:6},e.createElement(t.GridItem,{col:6},e.createElement(I.Field,{as:t.TextInput,name:"name",error:E.name&&c({id:E.name}),label:c({id:"global.name",defaultMessage:"Name"}),required:!0})),e.createElement(t.GridItem,{col:12},e.createElement(I.Field,{as:t.TextInput,name:"url",error:E.url&&c({id:E.url}),label:c({id:"Settings.roles.form.input.url",defaultMessage:"Url"}),required:!0}))),e.createElement(_,null),e.createElement(J,{isDraftAndPublish:d})))))))};U.propTypes={data:i().object,handleSubmit:i().func.isRequired,triggerWebhook:i().func.isRequired,isCreating:i().bool.isRequired,isDraftAndPublishEvents:i().bool.isRequired,isTriggering:i().bool.isRequired,triggerResponse:i().object},U.defaultProps={data:void 0,triggerResponse:void 0};var re=U,se=l(92891);const le=a=>{const n={...a};return(0,se.set)(n,"headers",oe(a.headers)),n},oe=a=>a.reduce((n,r)=>{const{key:s,value:u}=r;return s!==""?{...n,[s]:u}:n},{});var Z=le,ie=()=>{const{params:{id:a}}=(0,x.useRouteMatch)("/settings/webhooks/:id"),{replace:n}=(0,x.useHistory)(),{lockApp:r,unlockApp:s}=(0,o.useOverlayBlocker)(),u=(0,o.useNotification)(),p=(0,y.useQueryClient)(),{isLoading:d,collectionTypes:c}=(0,R.bP)(),{post:h}=(0,o.useFetchClient)(),f=a==="create",g=(0,e.useCallback)(async b=>{const[M,{data:pe}]=await(0,o.to)((0,o.request)(`/admin/webhooks/${b}`,{method:"GET"}));return M?(u({type:"warning",message:{id:"notification.error"}}),null):pe},[u]),{isLoading:E,data:m}=(0,y.useQuery)(["get-webhook",a],()=>g(a),{enabled:!f}),{isLoading:A,data:C,isIdle:S,mutate:de}=(0,y.useMutation)(()=>h(`/admin/webhooks/${a}/trigger`)),ue=()=>de(null,{onError(){u({type:"warning",message:{id:"notification.error"}})}}),ce=(0,y.useMutation)(b=>(0,o.request)("/admin/webhooks",{method:"POST",body:b})),me=(0,y.useMutation)(({id:b,body:M})=>(0,o.request)(`/admin/webhooks/${b}`,{method:"PUT",body:M})),ge=async b=>{f?(r(),ce.mutate(Z(b),{onSuccess(M){u({type:"success",message:{id:"Settings.webhooks.created"}}),n(`/settings/webhooks/${M.data.id}`),s()},onError(M){u({type:"warning",message:{id:"notification.error"}}),console.log(M),s()}})):(r(),me.mutate({id:a,body:Z(b)},{onSuccess(){p.invalidateQueries(["get-webhook",a]),u({type:"success",message:{id:"notification.form.success.fields"}}),s()},onError(M){u({type:"warning",message:{id:"notification.error"}}),console.log(M),s()}}))},he=(0,e.useMemo)(()=>c.some(b=>b.options.draftAndPublish===!0),[c]);return E||d?e.createElement(o.LoadingIndicatorPage,null):e.createElement(t.Main,null,e.createElement(o.SettingsPageTitle,{name:"Webhooks"}),e.createElement(re,{handleSubmit:ge,data:m,triggerWebhook:ue,isCreating:f,isTriggering:A,isTriggerIdle:S,triggerResponse:C?.data.data,isDraftAndPublishEvents:he}))}},33238:function(V,P,l){l.r(P);var e=l(32735),o=l(13478),t=l.n(o),y=l(72041),x=l(47272);const R=()=>e.createElement(o.CheckPagePermissions,{permissions:y.Z.settings.webhooks.create},e.createElement(x.Z,null));P.default=R},59021:function(V,P,l){l.r(P);var e=l(32735),o=l(13478),t=l.n(o),y=l(72041),x=l(47272);const R=()=>e.createElement(o.CheckPagePermissions,{permissions:y.Z.settings.webhooks.update},e.createElement(x.Z,null));P.default=R}}]);
23
+ `),L=({isPending:a,statusCode:n})=>{const{formatMessage:r}=(0,T.useIntl)();return a?e.createElement(t.Flex,{gap:2,alignItems:"center"},e.createElement(F,{as:k.Loader}),e.createElement(t.Typography,null,r({id:"Settings.webhooks.trigger.pending",defaultMessage:"pending"}))):n>=200&&n<300?e.createElement(t.Flex,{gap:2,alignItems:"center"},e.createElement(F,{as:k.Check,color:"success700"}),e.createElement(t.Typography,null,r({id:"Settings.webhooks.trigger.success",defaultMessage:"success"}))):n>=300?e.createElement(t.Flex,{gap:2,alignItems:"center"},e.createElement(F,{as:k.Cross,color:"danger700"}),e.createElement(t.Typography,null,r({id:"Settings.error",defaultMessage:"error"})," ",n)):null};L.propTypes={isPending:i().bool.isRequired,statusCode:i().number},L.defaultProps={statusCode:void 0};const B=({statusCode:a,message:n})=>{const{formatMessage:r}=(0,T.useIntl)();return a>=200&&a<300?e.createElement(t.Flex,{justifyContent:"flex-end"},e.createElement(t.Typography,{textColor:"neutral600",ellipsis:!0},r({id:"Settings.webhooks.trigger.success.label",defaultMessage:"Trigger succeeded"}))):a>=300?e.createElement(t.Flex,{justifyContent:"flex-end"},e.createElement(t.Flex,{maxWidth:(0,o.pxToRem)(250),justifyContent:"flex-end",title:n},e.createElement(t.Typography,{ellipsis:!0,textColor:"neutral600"},n))):null};B.propTypes={statusCode:i().number,message:i().string},B.defaultProps={statusCode:void 0,message:void 0};const K=({onCancel:a})=>{const{formatMessage:n}=(0,T.useIntl)();return e.createElement(t.Flex,{justifyContent:"flex-end"},e.createElement("button",{onClick:a,type:"button"},e.createElement(t.Flex,{gap:2,alignItems:"center"},e.createElement(t.Typography,{textColor:"neutral400"},n({id:"Settings.webhooks.trigger.cancel",defaultMessage:"cancel"})),e.createElement(F,{as:k.Cross,color:"neutral400"}))))};K.propTypes={onCancel:i().func.isRequired};const W=({isPending:a,onCancel:n,response:r})=>{const{statusCode:s,message:u}=r,{formatMessage:p}=(0,T.useIntl)();return e.createElement(t.Box,{background:"neutral0",padding:5,shadow:"filterShadow",hasRadius:!0},e.createElement(t.Grid,{gap:4,style:{alignItems:"center"}},e.createElement(t.GridItem,{col:3},e.createElement(t.Typography,null,p({id:"Settings.webhooks.trigger.test",defaultMessage:"Test-trigger"}))),e.createElement(t.GridItem,{col:3},e.createElement(L,{isPending:a,statusCode:s})),e.createElement(t.GridItem,{col:6},a?e.createElement(K,{onCancel:n}):e.createElement(B,{statusCode:s,message:u}))))};W.defaultProps={isPending:!1,onCancel(){},response:{}},W.propTypes={isPending:i().bool,onCancel:i().func,response:i().object};var ee=W,v=l(5173);const te=/(^$)|(^[A-Za-z][_0-9A-Za-z ]*$)/,ae=/(^$)|((https?:\/\/.*)(d*)\/?(.*))/;var ne=v.Ry().shape({name:v.Z_(o.translatedErrors.string).required(o.translatedErrors.required).matches(te,o.translatedErrors.regex),url:v.Z_(o.translatedErrors.string).required(o.translatedErrors.required).matches(ae,o.translatedErrors.regex),headers:v.Vo(a=>{let n=v.IX();if(a.length===1){const{key:r,value:s}=a[0];if(!r&&!s)return n}return n.of(v.Ry().shape({key:v.Z_().required(o.translatedErrors.required),value:v.Z_().required(o.translatedErrors.required)}))}),events:v.IX()});const U=({handleSubmit:a,data:n,triggerWebhook:r,isCreating:s,isTriggering:u,triggerResponse:p,isDraftAndPublishEvents:d})=>{const{formatMessage:c}=(0,T.useIntl)(),[h,f]=(0,e.useState)(!1);return e.createElement(I.Formik,{onSubmit:a,initialValues:{name:n?.name||"",url:n?.url||"",headers:Object.keys(n?.headers||[]).length?Object.entries(n.headers).map(([g,E])=>({key:g,value:E})):[{key:"",value:""}],events:n?.events||[]},validationSchema:ne,validateOnChange:!1,validateOnBlur:!1},({handleSubmit:g,errors:E})=>e.createElement(o.Form,{noValidate:!0},e.createElement(t.HeaderLayout,{primaryAction:e.createElement(t.Flex,{gap:2},e.createElement(t.Button,{onClick:()=>{r(),f(!0)},variant:"tertiary",startIcon:e.createElement(k.Play,null),disabled:s||u,size:"L"},c({id:"Settings.webhooks.trigger",defaultMessage:"Trigger"})),e.createElement(t.Button,{startIcon:e.createElement(k.Check,null),onClick:g,type:"submit",size:"L"},c({id:"global.save",defaultMessage:"Save"}))),title:s?c({id:"Settings.webhooks.create",defaultMessage:"Create a webhook"}):n?.name,navigationAction:e.createElement(o.Link,{startIcon:e.createElement(k.ArrowLeft,null),to:"/settings/webhooks"},c({id:"global.back",defaultMessage:"Back"}))}),e.createElement(t.ContentLayout,null,e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:4},h&&e.createElement("div",{className:"trigger-wrapper"},e.createElement(ee,{isPending:u,response:p,onCancel:()=>f(!1)})),e.createElement(t.Box,{background:"neutral0",padding:8,shadow:"filterShadow",hasRadius:!0},e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:6},e.createElement(t.Grid,{gap:6},e.createElement(t.GridItem,{col:6},e.createElement(I.Field,{as:t.TextInput,name:"name",error:E.name&&c({id:E.name}),label:c({id:"global.name",defaultMessage:"Name"}),required:!0})),e.createElement(t.GridItem,{col:12},e.createElement(I.Field,{as:t.TextInput,name:"url",error:E.url&&c({id:E.url}),label:c({id:"Settings.roles.form.input.url",defaultMessage:"Url"}),required:!0}))),e.createElement(Y,null),e.createElement(_,{isDraftAndPublish:d})))))))};U.propTypes={data:i().object,handleSubmit:i().func.isRequired,triggerWebhook:i().func.isRequired,isCreating:i().bool.isRequired,isDraftAndPublishEvents:i().bool.isRequired,isTriggering:i().bool.isRequired,triggerResponse:i().object},U.defaultProps={data:void 0,triggerResponse:void 0};var re=U;const se=a=>({...a,headers:le(a.headers)}),le=a=>a.reduce((n,r)=>{const{key:s,value:u}=r;return s!==""?{...n,[s]:u}:n},{});var Z=se,oe=()=>{const{params:{id:a}}=(0,x.useRouteMatch)("/settings/webhooks/:id"),{replace:n}=(0,x.useHistory)(),{lockApp:r,unlockApp:s}=(0,o.useOverlayBlocker)(),u=(0,o.useNotification)(),p=(0,y.useQueryClient)(),{isLoading:d,collectionTypes:c}=(0,R.bP)(),{post:h}=(0,o.useFetchClient)(),f=a==="create",g=(0,e.useCallback)(async b=>{const[M,{data:he}]=await(0,o.to)((0,o.request)(`/admin/webhooks/${b}`,{method:"GET"}));return M?(u({type:"warning",message:{id:"notification.error"}}),null):he},[u]),{isLoading:E,data:m}=(0,y.useQuery)(["get-webhook",a],()=>g(a),{enabled:!f}),{isLoading:A,data:C,isIdle:S,mutate:ie}=(0,y.useMutation)(()=>h(`/admin/webhooks/${a}/trigger`)),de=()=>ie(null,{onError(){u({type:"warning",message:{id:"notification.error"}})}}),ue=(0,y.useMutation)(b=>(0,o.request)("/admin/webhooks",{method:"POST",body:b})),ce=(0,y.useMutation)(({id:b,body:M})=>(0,o.request)(`/admin/webhooks/${b}`,{method:"PUT",body:M})),me=async b=>{f?(r(),ue.mutate(Z(b),{onSuccess(M){u({type:"success",message:{id:"Settings.webhooks.created"}}),n(`/settings/webhooks/${M.data.id}`),s()},onError(M){u({type:"warning",message:{id:"notification.error"}}),console.log(M),s()}})):(r(),ce.mutate({id:a,body:Z(b)},{onSuccess(){p.invalidateQueries(["get-webhook",a]),u({type:"success",message:{id:"notification.form.success.fields"}}),s()},onError(M){u({type:"warning",message:{id:"notification.error"}}),console.log(M),s()}}))},ge=(0,e.useMemo)(()=>c.some(b=>b.options.draftAndPublish===!0),[c]);return E||d?e.createElement(o.LoadingIndicatorPage,null):e.createElement(t.Main,null,e.createElement(o.SettingsPageTitle,{name:"Webhooks"}),e.createElement(re,{handleSubmit:me,data:m,triggerWebhook:de,isCreating:f,isTriggering:A,isTriggerIdle:S,triggerResponse:C?.data.data,isDraftAndPublishEvents:ge}))}},33238:function(V,P,l){l.r(P);var e=l(32735),o=l(13478),t=l.n(o),y=l(72041),x=l(47272);const R=()=>e.createElement(o.CheckPagePermissions,{permissions:y.Z.settings.webhooks.create},e.createElement(x.Z,null));P.default=R},59021:function(V,P,l){l.r(P);var e=l(32735),o=l(13478),t=l.n(o),y=l(72041),x=l(47272);const R=()=>e.createElement(o.CheckPagePermissions,{permissions:y.Z.settings.webhooks.update},e.createElement(x.Z,null));P.default=R}}]);
@@ -5,6 +5,7 @@ const { features } = require('@strapi/strapi/lib/utils/ee');
5
5
  const executeCEBootstrap = require('../../server/bootstrap');
6
6
  const { getService } = require('../../server/utils');
7
7
  const actions = require('./config/admin-actions');
8
+ const { persistTablesWithPrefix } = require('./utils/persisted-tables');
8
9
 
9
10
  module.exports = async () => {
10
11
  const { actionProvider } = getService('permission');
@@ -14,6 +15,8 @@ module.exports = async () => {
14
15
  }
15
16
 
16
17
  if (features.isEnabled('audit-logs')) {
18
+ await persistTablesWithPrefix('strapi_audit_logs');
19
+
17
20
  await actionProvider.registerMany(actions.auditLogs);
18
21
  }
19
22
 
@@ -0,0 +1,49 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Finds all tables in the database that start with a prefix
5
+ * @param {string} prefix
6
+ * @returns {Array}
7
+ */
8
+ const findTablesThatStartWithPrefix = async (prefix) => {
9
+ const tables = await strapi.db.dialect.schemaInspector.getTables();
10
+ return tables.filter((tableName) => tableName.startsWith(prefix));
11
+ };
12
+
13
+ /**
14
+ * Get all reserved table names from the core store
15
+ * @returns {Array}
16
+ */
17
+ const getPersistedTables = async () =>
18
+ (await strapi.store.get({
19
+ type: 'core',
20
+ key: 'persisted_tables',
21
+ })) ?? [];
22
+
23
+ /**
24
+ * Add all table names that start with a prefix to the reserved tables in
25
+ * core store
26
+ * @param {string} tableNamePrefix
27
+ */
28
+
29
+ const persistTablesWithPrefix = async (tableNamePrefix) => {
30
+ const persistedTables = await getPersistedTables();
31
+ const tableNames = await findTablesThatStartWithPrefix(tableNamePrefix);
32
+ const notReservedTableNames = tableNames.filter((name) => !persistedTables.includes(name));
33
+
34
+ if (!notReservedTableNames.length) {
35
+ return;
36
+ }
37
+
38
+ persistedTables.push(...notReservedTableNames);
39
+ await strapi.store.set({
40
+ type: 'core',
41
+ key: 'persisted_tables',
42
+ value: persistedTables,
43
+ });
44
+ };
45
+
46
+ module.exports = {
47
+ persistTablesWithPrefix,
48
+ findTablesThatStartWithPrefix,
49
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/admin",
3
- "version": "4.8.2",
3
+ "version": "4.9.0-beta.1",
4
4
  "description": "Strapi Admin",
5
5
  "repository": {
6
6
  "type": "git",
@@ -46,15 +46,15 @@
46
46
  "@casl/ability": "^5.4.3",
47
47
  "@fingerprintjs/fingerprintjs": "3.3.6",
48
48
  "@pmmmwh/react-refresh-webpack-plugin": "0.5.10",
49
- "@strapi/babel-plugin-switch-ee-ce": "4.8.2",
50
- "@strapi/data-transfer": "4.8.2",
51
- "@strapi/design-system": "1.6.5",
52
- "@strapi/helper-plugin": "4.8.2",
53
- "@strapi/icons": "1.6.5",
54
- "@strapi/permissions": "4.8.2",
55
- "@strapi/provider-audit-logs-local": "4.8.2",
56
- "@strapi/typescript-utils": "4.8.2",
57
- "@strapi/utils": "4.8.2",
49
+ "@strapi/babel-plugin-switch-ee-ce": "4.9.0-beta.1",
50
+ "@strapi/data-transfer": "4.9.0-beta.1",
51
+ "@strapi/design-system": "1.6.6",
52
+ "@strapi/helper-plugin": "4.9.0-beta.1",
53
+ "@strapi/icons": "1.6.6",
54
+ "@strapi/permissions": "4.9.0-beta.1",
55
+ "@strapi/provider-audit-logs-local": "4.9.0-beta.1",
56
+ "@strapi/typescript-utils": "4.9.0-beta.1",
57
+ "@strapi/utils": "4.9.0-beta.1",
58
58
  "axios": "1.3.4",
59
59
  "babel-loader": "^9.1.2",
60
60
  "babel-plugin-styled-components": "2.0.2",
@@ -166,5 +166,5 @@
166
166
  }
167
167
  }
168
168
  },
169
- "gitHead": "cc73bed97b19d44f7c7999ab44f1a4288590d7ab"
169
+ "gitHead": "ff37d666d0634fc84827e3d6419d916618275572"
170
170
  }
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
- const { createTransferHandler } = require('@strapi/data-transfer').strapi.remote.handlers;
3
+ const { createPushController, createPullController } =
4
+ require('@strapi/data-transfer').strapi.remote.handlers;
4
5
  const {
5
6
  errors: { UnauthorizedError },
6
7
  } = require('@strapi/utils');
@@ -22,5 +23,6 @@ const verify = async (ctx, scope) => {
22
23
  };
23
24
 
24
25
  module.exports = {
25
- connect: createTransferHandler({ verify }),
26
+ push: createPushController({ verify }),
27
+ pull: createPullController({ verify }),
26
28
  };
@@ -13,7 +13,10 @@ module.exports = () => async (ctx, next) => {
13
13
 
14
14
  if (!hasValidTokenSalt()) {
15
15
  return ctx.notImplemented(
16
- 'The server configuration for data transfer is invalid. Please contact your server administrator.'
16
+ 'The server configuration for data transfer is invalid. Please contact your server administrator.',
17
+ {
18
+ code: 'INVALID_TOKEN_SALT',
19
+ }
17
20
  );
18
21
  }
19
22
 
@@ -3,17 +3,26 @@
3
3
  const dataTransferAuthStrategy = require('../strategies/data-transfer');
4
4
 
5
5
  module.exports = [
6
- // Transfer route
6
+ // Transfer Push
7
7
  {
8
8
  method: 'GET',
9
- path: '/transfer/runner/connect',
10
- handler: 'transfer.runner-connect',
9
+ path: '/transfer/runner/push',
10
+ handler: 'transfer.runner-push',
11
11
  config: {
12
12
  middlewares: ['admin::data-transfer'],
13
- // TODO: Allow not passing any scope <> Add a way to prevent assigning one by default
14
13
  auth: { strategies: [dataTransferAuthStrategy], scope: ['push'] },
15
14
  },
16
15
  },
16
+ // Transfer Pull
17
+ {
18
+ method: 'GET',
19
+ path: '/transfer/runner/pull',
20
+ handler: 'transfer.runner-pull',
21
+ config: {
22
+ middlewares: ['admin::data-transfer'],
23
+ auth: { strategies: [dataTransferAuthStrategy], scope: ['pull'] },
24
+ },
25
+ },
17
26
  // Transfer Tokens
18
27
  {
19
28
  method: 'POST',