@strapi/plugin-users-permissions 0.0.0-next.f4ff842a3cb7b83db540bee67554b704e042b042 → 0.0.0-next.f5312617ca16b870c2bf1adcea2c69b676979e29

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 (246) hide show
  1. package/LICENSE +18 -3
  2. package/admin/src/components/BoundRoute/index.jsx +2 -2
  3. package/admin/src/components/FormModal/Input/index.jsx +32 -31
  4. package/admin/src/components/FormModal/index.jsx +57 -68
  5. package/admin/src/components/Permissions/PermissionRow/CheckboxWrapper.jsx +4 -3
  6. package/admin/src/components/Permissions/PermissionRow/SubCategory.jsx +13 -22
  7. package/admin/src/components/Permissions/index.jsx +27 -35
  8. package/admin/src/components/Permissions/reducer.js +1 -1
  9. package/admin/src/components/Policies/index.jsx +7 -5
  10. package/admin/src/components/UsersPermissions/index.jsx +15 -7
  11. package/admin/src/components/UsersPermissions/reducer.js +1 -1
  12. package/admin/src/index.js +15 -32
  13. package/admin/src/pages/AdvancedSettings/index.jsx +83 -128
  14. package/admin/src/pages/AdvancedSettings/utils/layout.js +20 -35
  15. package/admin/src/pages/AdvancedSettings/utils/schema.js +5 -2
  16. package/admin/src/pages/EmailTemplates/components/EmailForm.jsx +119 -139
  17. package/admin/src/pages/EmailTemplates/components/EmailTable.jsx +20 -17
  18. package/admin/src/pages/EmailTemplates/index.jsx +36 -62
  19. package/admin/src/pages/EmailTemplates/utils/schema.js +18 -6
  20. package/admin/src/pages/Providers/index.jsx +98 -113
  21. package/admin/src/pages/Providers/utils/forms.js +23 -11
  22. package/admin/src/pages/Roles/constants.js +3 -3
  23. package/admin/src/pages/Roles/hooks/usePlugins.js +4 -4
  24. package/admin/src/pages/Roles/index.jsx +9 -18
  25. package/admin/src/pages/Roles/pages/CreatePage.jsx +53 -58
  26. package/admin/src/pages/Roles/pages/EditPage.jsx +63 -68
  27. package/admin/src/pages/Roles/pages/ListPage/components/TableBody.jsx +27 -31
  28. package/admin/src/pages/Roles/pages/ListPage/index.jsx +79 -55
  29. package/admin/src/translations/en.json +1 -1
  30. package/admin/src/utils/prefixPluginTranslations.js +13 -0
  31. package/dist/_chunks/{ar-t5qTFaAD.js → ar-BguGUqwK.js} +1 -1
  32. package/dist/_chunks/ar-BguGUqwK.js.map +1 -0
  33. package/dist/_chunks/{ar-MvD8Ghac.mjs → ar-CK8BRRXB.mjs} +1 -1
  34. package/dist/_chunks/ar-CK8BRRXB.mjs.map +1 -0
  35. package/dist/_chunks/{cs-BMuXwxA1.mjs → cs-BVigMk0l.mjs} +1 -1
  36. package/dist/_chunks/cs-BVigMk0l.mjs.map +1 -0
  37. package/dist/_chunks/{cs-I8N4u-Sd.js → cs-BW8-K_GY.js} +1 -1
  38. package/dist/_chunks/cs-BW8-K_GY.js.map +1 -0
  39. package/dist/_chunks/{de-zs2qqc0W.mjs → de-BKUdRFI4.mjs} +1 -1
  40. package/dist/_chunks/de-BKUdRFI4.mjs.map +1 -0
  41. package/dist/_chunks/{de-YTjtq89K.js → de-owXpVluI.js} +1 -1
  42. package/dist/_chunks/de-owXpVluI.js.map +1 -0
  43. package/dist/_chunks/{dk-HctVBMsG.mjs → dk-BQiTK50l.mjs} +1 -1
  44. package/dist/_chunks/dk-BQiTK50l.mjs.map +1 -0
  45. package/dist/_chunks/{dk-TF-dWjzl.js → dk-LXAnbuBk.js} +1 -1
  46. package/dist/_chunks/dk-LXAnbuBk.js.map +1 -0
  47. package/dist/_chunks/{en-CE3wEy_c.mjs → en-DOHtPf-2.mjs} +2 -2
  48. package/dist/_chunks/en-DOHtPf-2.mjs.map +1 -0
  49. package/dist/_chunks/{en-m608rMZx.js → en-MHo5mcsU.js} +2 -2
  50. package/dist/_chunks/en-MHo5mcsU.js.map +1 -0
  51. package/dist/_chunks/{es-XBQsB8_9.js → es-BwLCLXAQ.js} +1 -1
  52. package/dist/_chunks/es-BwLCLXAQ.js.map +1 -0
  53. package/dist/_chunks/{es-9381tih_.mjs → es-DNgOVMjD.mjs} +1 -1
  54. package/dist/_chunks/es-DNgOVMjD.mjs.map +1 -0
  55. package/dist/_chunks/{fr-CMSc77If.mjs → fr-DkgRugiU.mjs} +1 -1
  56. package/dist/_chunks/fr-DkgRugiU.mjs.map +1 -0
  57. package/dist/_chunks/{fr-6cz3U-IF.js → fr-DkhpSjjm.js} +1 -1
  58. package/dist/_chunks/fr-DkhpSjjm.js.map +1 -0
  59. package/dist/_chunks/{id-RJ934rq-.js → id-BTemOeTZ.js} +1 -1
  60. package/dist/_chunks/id-BTemOeTZ.js.map +1 -0
  61. package/dist/_chunks/{id-SDuyIkZa.mjs → id-BdEsvnaF.mjs} +1 -1
  62. package/dist/_chunks/id-BdEsvnaF.mjs.map +1 -0
  63. package/dist/_chunks/{index-rL_BoFHz.js → index-BH6NqE8I.js} +47 -51
  64. package/dist/_chunks/index-BH6NqE8I.js.map +1 -0
  65. package/dist/_chunks/index-C3i__jX-.js +281 -0
  66. package/dist/_chunks/index-C3i__jX-.js.map +1 -0
  67. package/dist/_chunks/{index--ch5E4_K.js → index-CFzpNgIL.js} +108 -106
  68. package/dist/_chunks/index-CFzpNgIL.js.map +1 -0
  69. package/dist/_chunks/index-CJUWqtrZ.mjs +344 -0
  70. package/dist/_chunks/index-CJUWqtrZ.mjs.map +1 -0
  71. package/dist/_chunks/index-CcWTKtCY.js +366 -0
  72. package/dist/_chunks/index-CcWTKtCY.js.map +1 -0
  73. package/dist/_chunks/{index-MuQRbm-o.mjs → index-CnX2wiLY.mjs} +239 -256
  74. package/dist/_chunks/index-CnX2wiLY.mjs.map +1 -0
  75. package/dist/_chunks/index-DUWx-KG9-C1E7ADbJ.mjs +11984 -0
  76. package/dist/_chunks/index-DUWx-KG9-C1E7ADbJ.mjs.map +1 -0
  77. package/dist/_chunks/index-DUWx-KG9-fMZ4nmrb.js +12008 -0
  78. package/dist/_chunks/index-DUWx-KG9-fMZ4nmrb.js.map +1 -0
  79. package/dist/_chunks/{index-WCv8yGzw.js → index-DruWuFWL.js} +255 -274
  80. package/dist/_chunks/index-DruWuFWL.js.map +1 -0
  81. package/dist/_chunks/index-PJoz36kJ.mjs +262 -0
  82. package/dist/_chunks/index-PJoz36kJ.mjs.map +1 -0
  83. package/dist/_chunks/{index-iu-7wU8h.mjs → index-R4R0dEOv.mjs} +46 -50
  84. package/dist/_chunks/index-R4R0dEOv.mjs.map +1 -0
  85. package/dist/_chunks/{index-eE2qjbfg.mjs → index-XOcQhJMB.mjs} +105 -103
  86. package/dist/_chunks/index-XOcQhJMB.mjs.map +1 -0
  87. package/dist/_chunks/{it-bvH7DgQo.mjs → it-B-rv0E24.mjs} +1 -1
  88. package/dist/_chunks/it-B-rv0E24.mjs.map +1 -0
  89. package/dist/_chunks/{it-YhZOlM2X.js → it-D1rH6V6_.js} +1 -1
  90. package/dist/_chunks/it-D1rH6V6_.js.map +1 -0
  91. package/dist/_chunks/{ja-o_-JPvQv.mjs → ja-C8K-VBPD.mjs} +1 -1
  92. package/dist/_chunks/ja-C8K-VBPD.mjs.map +1 -0
  93. package/dist/_chunks/{ja-xssHUXFv.js → ja-DqShgTMf.js} +1 -1
  94. package/dist/_chunks/ja-DqShgTMf.js.map +1 -0
  95. package/dist/_chunks/{ko-C3mHUSJa.js → ko-B9DGEPWH.js} +1 -1
  96. package/dist/_chunks/ko-B9DGEPWH.js.map +1 -0
  97. package/dist/_chunks/{ko-XJbPSez_.mjs → ko-Busb0wIY.mjs} +1 -1
  98. package/dist/_chunks/ko-Busb0wIY.mjs.map +1 -0
  99. package/dist/_chunks/{ms-II5Ea73J.mjs → ms-ByvsQjRt.mjs} +1 -1
  100. package/dist/_chunks/ms-ByvsQjRt.mjs.map +1 -0
  101. package/dist/_chunks/{ms-d0hfg65Z.js → ms-CPBU3LWf.js} +1 -1
  102. package/dist/_chunks/ms-CPBU3LWf.js.map +1 -0
  103. package/dist/_chunks/{nl-vEy6TN0K.mjs → nl-5qO8Rpcy.mjs} +1 -1
  104. package/dist/_chunks/nl-5qO8Rpcy.mjs.map +1 -0
  105. package/dist/_chunks/{nl-TA7TfK_5.js → nl-CwNB6YoO.js} +1 -1
  106. package/dist/_chunks/nl-CwNB6YoO.js.map +1 -0
  107. package/dist/_chunks/{pl-2VowaFGt.mjs → pl-BdIzifBE.mjs} +1 -1
  108. package/dist/_chunks/pl-BdIzifBE.mjs.map +1 -0
  109. package/dist/_chunks/{pl-0pUL9hdA.js → pl-Do9UD69f.js} +1 -1
  110. package/dist/_chunks/pl-Do9UD69f.js.map +1 -0
  111. package/dist/_chunks/{pt-Rf9W51IO.mjs → pt-BIO24ioG.mjs} +1 -1
  112. package/dist/_chunks/pt-BIO24ioG.mjs.map +1 -0
  113. package/dist/_chunks/{pt-BR-WNOhafR4.js → pt-BR-D7dZhxuP.js} +1 -1
  114. package/dist/_chunks/pt-BR-D7dZhxuP.js.map +1 -0
  115. package/dist/_chunks/{pt-BR-sS1Xp3Jt.mjs → pt-BR-f0p23AQZ.mjs} +1 -1
  116. package/dist/_chunks/pt-BR-f0p23AQZ.mjs.map +1 -0
  117. package/dist/_chunks/{pt-guNR9Gax.js → pt-fdvyOnUp.js} +1 -1
  118. package/dist/_chunks/pt-fdvyOnUp.js.map +1 -0
  119. package/dist/_chunks/{ru-X3BMXDds.js → ru-C94rjPGA.js} +1 -1
  120. package/dist/_chunks/ru-C94rjPGA.js.map +1 -0
  121. package/dist/_chunks/{ru-qKHnd5or.mjs → ru-VWy-IB7K.mjs} +1 -1
  122. package/dist/_chunks/ru-VWy-IB7K.mjs.map +1 -0
  123. package/dist/_chunks/{sk-NWPw1oTN.js → sk-BABEhykl.js} +1 -1
  124. package/dist/_chunks/sk-BABEhykl.js.map +1 -0
  125. package/dist/_chunks/{sk-_Ryr-eTT.mjs → sk-B_LIcepm.mjs} +1 -1
  126. package/dist/_chunks/sk-B_LIcepm.mjs.map +1 -0
  127. package/dist/_chunks/{sv-BqzScFXS.mjs → sv-ABLKOokl.mjs} +1 -1
  128. package/dist/_chunks/sv-ABLKOokl.mjs.map +1 -0
  129. package/dist/_chunks/{sv-76NnbB__.js → sv-Be43LhA9.js} +1 -1
  130. package/dist/_chunks/sv-Be43LhA9.js.map +1 -0
  131. package/dist/_chunks/{th-WsknMEpq.mjs → th-DKyP7ueR.mjs} +1 -1
  132. package/dist/_chunks/th-DKyP7ueR.mjs.map +1 -0
  133. package/dist/_chunks/{th-cbppX21D.js → th-DgVhVLhL.js} +1 -1
  134. package/dist/_chunks/th-DgVhVLhL.js.map +1 -0
  135. package/dist/_chunks/{tr-6mm_Fmz7.js → tr-B_idhkEs.js} +1 -1
  136. package/dist/_chunks/tr-B_idhkEs.js.map +1 -0
  137. package/dist/_chunks/{tr-_DB1F1GW.mjs → tr-qa1Q5UjC.mjs} +1 -1
  138. package/dist/_chunks/tr-qa1Q5UjC.mjs.map +1 -0
  139. package/dist/_chunks/{uk-yxMSQAwI.mjs → uk-BmRqbeQc.mjs} +1 -1
  140. package/dist/_chunks/uk-BmRqbeQc.mjs.map +1 -0
  141. package/dist/_chunks/{uk-sI2I1ogF.js → uk-LHOivnhP.js} +1 -1
  142. package/dist/_chunks/uk-LHOivnhP.js.map +1 -0
  143. package/dist/_chunks/{vi-A3zJxaiI.js → vi-CdVRdKDw.js} +1 -1
  144. package/dist/_chunks/vi-CdVRdKDw.js.map +1 -0
  145. package/dist/_chunks/{vi-xY0zCW3d.mjs → vi-HW-EdMea.mjs} +1 -1
  146. package/dist/_chunks/vi-HW-EdMea.mjs.map +1 -0
  147. package/dist/_chunks/{zh-OFeldzbX.mjs → zh-5hKkVPA4.mjs} +1 -1
  148. package/dist/_chunks/zh-5hKkVPA4.mjs.map +1 -0
  149. package/dist/_chunks/{zh-72SpmFXa.js → zh-Cuq8gMnF.js} +1 -1
  150. package/dist/_chunks/zh-Cuq8gMnF.js.map +1 -0
  151. package/dist/_chunks/{zh-Hans-E84cu4kP.mjs → zh-Hans-BHilK-yc.mjs} +1 -1
  152. package/dist/_chunks/zh-Hans-BHilK-yc.mjs.map +1 -0
  153. package/dist/_chunks/{zh-Hans-ArWWtyP4.js → zh-Hans-GQDMKtY4.js} +1 -1
  154. package/dist/_chunks/zh-Hans-GQDMKtY4.js.map +1 -0
  155. package/dist/admin/index.js +1 -2
  156. package/dist/admin/index.js.map +1 -1
  157. package/dist/admin/index.mjs +1 -2
  158. package/dist/admin/index.mjs.map +1 -1
  159. package/package.json +27 -28
  160. package/server/bootstrap/index.js +18 -51
  161. package/server/bootstrap/users-permissions-actions.js +6 -0
  162. package/server/content-types/user/index.js +0 -1
  163. package/server/controllers/auth.js +40 -59
  164. package/server/controllers/content-manager-user.js +28 -30
  165. package/server/controllers/role.js +17 -4
  166. package/server/controllers/user.js +8 -9
  167. package/server/controllers/validation/auth.js +81 -25
  168. package/server/middlewares/rateLimit.js +1 -1
  169. package/server/register.js +1 -1
  170. package/server/services/jwt.js +3 -3
  171. package/server/services/permission.js +3 -7
  172. package/server/services/providers-registry.js +468 -275
  173. package/server/services/providers.js +10 -5
  174. package/server/services/role.js +15 -13
  175. package/server/services/user.js +56 -19
  176. package/server/services/users-permissions.js +15 -13
  177. package/server/utils/index.d.ts +2 -1
  178. package/server/utils/sanitize/sanitizers.js +7 -3
  179. package/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js +2 -2
  180. package/admin/src/pages/Roles/pages/ListPage/utils/api.js +0 -30
  181. package/dist/_chunks/ar-MvD8Ghac.mjs.map +0 -1
  182. package/dist/_chunks/ar-t5qTFaAD.js.map +0 -1
  183. package/dist/_chunks/cs-BMuXwxA1.mjs.map +0 -1
  184. package/dist/_chunks/cs-I8N4u-Sd.js.map +0 -1
  185. package/dist/_chunks/de-YTjtq89K.js.map +0 -1
  186. package/dist/_chunks/de-zs2qqc0W.mjs.map +0 -1
  187. package/dist/_chunks/dk-HctVBMsG.mjs.map +0 -1
  188. package/dist/_chunks/dk-TF-dWjzl.js.map +0 -1
  189. package/dist/_chunks/en-CE3wEy_c.mjs.map +0 -1
  190. package/dist/_chunks/en-m608rMZx.js.map +0 -1
  191. package/dist/_chunks/es-9381tih_.mjs.map +0 -1
  192. package/dist/_chunks/es-XBQsB8_9.js.map +0 -1
  193. package/dist/_chunks/fr-6cz3U-IF.js.map +0 -1
  194. package/dist/_chunks/fr-CMSc77If.mjs.map +0 -1
  195. package/dist/_chunks/id-RJ934rq-.js.map +0 -1
  196. package/dist/_chunks/id-SDuyIkZa.mjs.map +0 -1
  197. package/dist/_chunks/index--ch5E4_K.js.map +0 -1
  198. package/dist/_chunks/index-MuQRbm-o.mjs.map +0 -1
  199. package/dist/_chunks/index-UrkRT2rC.js +0 -320
  200. package/dist/_chunks/index-UrkRT2rC.js.map +0 -1
  201. package/dist/_chunks/index-WCv8yGzw.js.map +0 -1
  202. package/dist/_chunks/index-eE2qjbfg.mjs.map +0 -1
  203. package/dist/_chunks/index-iu-7wU8h.mjs.map +0 -1
  204. package/dist/_chunks/index-mCVPA90k.mjs +0 -385
  205. package/dist/_chunks/index-mCVPA90k.mjs.map +0 -1
  206. package/dist/_chunks/index-mNv7pSw-.js +0 -407
  207. package/dist/_chunks/index-mNv7pSw-.js.map +0 -1
  208. package/dist/_chunks/index-rL_BoFHz.js.map +0 -1
  209. package/dist/_chunks/index-xXp5S4OL.mjs +0 -301
  210. package/dist/_chunks/index-xXp5S4OL.mjs.map +0 -1
  211. package/dist/_chunks/it-YhZOlM2X.js.map +0 -1
  212. package/dist/_chunks/it-bvH7DgQo.mjs.map +0 -1
  213. package/dist/_chunks/ja-o_-JPvQv.mjs.map +0 -1
  214. package/dist/_chunks/ja-xssHUXFv.js.map +0 -1
  215. package/dist/_chunks/ko-C3mHUSJa.js.map +0 -1
  216. package/dist/_chunks/ko-XJbPSez_.mjs.map +0 -1
  217. package/dist/_chunks/ms-II5Ea73J.mjs.map +0 -1
  218. package/dist/_chunks/ms-d0hfg65Z.js.map +0 -1
  219. package/dist/_chunks/nl-TA7TfK_5.js.map +0 -1
  220. package/dist/_chunks/nl-vEy6TN0K.mjs.map +0 -1
  221. package/dist/_chunks/pl-0pUL9hdA.js.map +0 -1
  222. package/dist/_chunks/pl-2VowaFGt.mjs.map +0 -1
  223. package/dist/_chunks/pt-BR-WNOhafR4.js.map +0 -1
  224. package/dist/_chunks/pt-BR-sS1Xp3Jt.mjs.map +0 -1
  225. package/dist/_chunks/pt-Rf9W51IO.mjs.map +0 -1
  226. package/dist/_chunks/pt-guNR9Gax.js.map +0 -1
  227. package/dist/_chunks/ru-X3BMXDds.js.map +0 -1
  228. package/dist/_chunks/ru-qKHnd5or.mjs.map +0 -1
  229. package/dist/_chunks/sk-NWPw1oTN.js.map +0 -1
  230. package/dist/_chunks/sk-_Ryr-eTT.mjs.map +0 -1
  231. package/dist/_chunks/sv-76NnbB__.js.map +0 -1
  232. package/dist/_chunks/sv-BqzScFXS.mjs.map +0 -1
  233. package/dist/_chunks/th-WsknMEpq.mjs.map +0 -1
  234. package/dist/_chunks/th-cbppX21D.js.map +0 -1
  235. package/dist/_chunks/tr-6mm_Fmz7.js.map +0 -1
  236. package/dist/_chunks/tr-_DB1F1GW.mjs.map +0 -1
  237. package/dist/_chunks/uk-sI2I1ogF.js.map +0 -1
  238. package/dist/_chunks/uk-yxMSQAwI.mjs.map +0 -1
  239. package/dist/_chunks/vi-A3zJxaiI.js.map +0 -1
  240. package/dist/_chunks/vi-xY0zCW3d.mjs.map +0 -1
  241. package/dist/_chunks/zh-72SpmFXa.js.map +0 -1
  242. package/dist/_chunks/zh-Hans-ArWWtyP4.js.map +0 -1
  243. package/dist/_chunks/zh-Hans-E84cu4kP.mjs.map +0 -1
  244. package/dist/_chunks/zh-OFeldzbX.mjs.map +0 -1
  245. package/server/bootstrap/grant-config.js +0 -140
  246. package/strapi-server.js +0 -3
@@ -1,4 +1,3 @@
1
- import { prefixPluginTranslations } from "@strapi/helper-plugin";
2
1
  const __variableDynamicImportRuntimeHelper = (glob, path) => {
3
2
  const v = glob[path];
4
3
  if (v) {
@@ -9,7 +8,7 @@ const __variableDynamicImportRuntimeHelper = (glob, path) => {
9
8
  });
10
9
  };
11
10
  const name$1 = "@strapi/plugin-users-permissions";
12
- const version = "4.24.5";
11
+ const version = "5.1.1";
13
12
  const description = "Protect your API with a full-authentication process based on JWT";
14
13
  const repository = {
15
14
  type: "git",
@@ -36,9 +35,9 @@ const exports = {
36
35
  "default": "./dist/admin/index.js"
37
36
  },
38
37
  "./strapi-server": {
39
- source: "./strapi-server.js",
40
- require: "./strapi-server.js",
41
- "default": "./strapi-server.js"
38
+ source: "./server/index.js",
39
+ require: "./server/index.js",
40
+ "default": "./server/index.js"
42
41
  },
43
42
  "./package.json": "./package.json"
44
43
  };
@@ -55,48 +54,47 @@ const scripts = {
55
54
  watch: "pack-up watch"
56
55
  };
57
56
  const dependencies = {
58
- "@strapi/design-system": "1.19.0",
59
- "@strapi/helper-plugin": "4.24.5",
60
- "@strapi/icons": "1.19.0",
61
- "@strapi/utils": "4.24.5",
57
+ "@strapi/design-system": "2.0.0-rc.11",
58
+ "@strapi/icons": "2.0.0-rc.11",
59
+ "@strapi/utils": "workspace:*",
62
60
  bcryptjs: "2.4.3",
63
- formik: "2.4.0",
61
+ formik: "2.4.5",
64
62
  "grant-koa": "5.4.8",
65
- immer: "9.0.19",
63
+ immer: "9.0.21",
66
64
  jsonwebtoken: "9.0.0",
67
65
  "jwk-to-pem": "2.0.5",
68
- koa: "2.13.4",
69
- "koa2-ratelimit": "^1.1.2",
66
+ koa: "2.15.2",
67
+ "koa2-ratelimit": "^1.1.3",
70
68
  lodash: "4.17.21",
71
69
  "prop-types": "^15.8.1",
72
70
  purest: "4.0.2",
73
- "react-intl": "6.4.1",
71
+ "react-intl": "6.6.2",
74
72
  "react-query": "3.39.3",
75
- "react-redux": "8.1.1",
73
+ "react-redux": "8.1.3",
76
74
  "url-join": "4.0.1",
77
75
  yup: "0.32.9"
78
76
  };
79
77
  const devDependencies = {
80
- "@strapi/pack-up": "4.23.0",
81
- "@strapi/strapi": "4.24.5",
82
- "@testing-library/dom": "9.2.0",
83
- "@testing-library/react": "14.0.0",
84
- "@testing-library/user-event": "14.4.3",
78
+ "@strapi/pack-up": "5.0.0",
79
+ "@strapi/strapi": "workspace:*",
80
+ "@testing-library/dom": "10.1.0",
81
+ "@testing-library/react": "15.0.7",
82
+ "@testing-library/user-event": "14.5.2",
85
83
  msw: "1.3.0",
86
- react: "^18.2.0",
87
- "react-dom": "^18.2.0",
88
- "react-router-dom": "5.3.4",
89
- "styled-components": "5.3.3"
84
+ react: "18.3.1",
85
+ "react-dom": "18.3.1",
86
+ "react-router-dom": "6.22.3",
87
+ "styled-components": "6.1.8"
90
88
  };
91
89
  const peerDependencies = {
92
- "@strapi/strapi": "^4.0.0",
90
+ "@strapi/strapi": "^5.0.0 || ^5.0.0-beta || ^5.0.0-alpha || ^5.0.0-rc",
93
91
  react: "^17.0.0 || ^18.0.0",
94
92
  "react-dom": "^17.0.0 || ^18.0.0",
95
- "react-router-dom": "^5.2.0",
96
- "styled-components": "^5.2.1"
93
+ "react-router-dom": "^6.0.0",
94
+ "styled-components": "^6.0.0"
97
95
  };
98
96
  const engines = {
99
- node: ">=18.0.0 <=20.x.x",
97
+ node: ">=18.0.0 <=22.x.x",
100
98
  npm: ">=6.0.0"
101
99
  };
102
100
  const strapi = {
@@ -150,6 +148,12 @@ const PERMISSIONS = {
150
148
  };
151
149
  const pluginId = pluginPkg.name.replace(/^@strapi\/plugin-/i, "");
152
150
  const getTrad = (id) => `${pluginId}.${id}`;
151
+ const prefixPluginTranslations = (trad, pluginId2) => {
152
+ return Object.keys(trad).reduce((acc, current) => {
153
+ acc[`${pluginId2}.${current}`] = trad[current];
154
+ return acc;
155
+ }, {});
156
+ };
153
157
  const name = pluginPkg.strapi.name;
154
158
  const index = {
155
159
  register(app) {
@@ -168,11 +172,8 @@ const index = {
168
172
  defaultMessage: "Roles"
169
173
  },
170
174
  id: "roles",
171
- to: `/settings/users-permissions/roles`,
172
- async Component() {
173
- const component = await import("./index-MuQRbm-o.mjs");
174
- return component;
175
- },
175
+ to: `users-permissions/roles`,
176
+ Component: () => import("./index-CnX2wiLY.mjs"),
176
177
  permissions: PERMISSIONS.accessRoles
177
178
  },
178
179
  {
@@ -181,11 +182,8 @@ const index = {
181
182
  defaultMessage: "Providers"
182
183
  },
183
184
  id: "providers",
184
- to: `/settings/users-permissions/providers`,
185
- async Component() {
186
- const component = await import("./index-eE2qjbfg.mjs");
187
- return component;
188
- },
185
+ to: `users-permissions/providers`,
186
+ Component: () => import("./index-XOcQhJMB.mjs"),
189
187
  permissions: PERMISSIONS.readProviders
190
188
  },
191
189
  {
@@ -194,11 +192,10 @@ const index = {
194
192
  defaultMessage: "Email templates"
195
193
  },
196
194
  id: "email-templates",
197
- to: `/settings/users-permissions/email-templates`,
198
- async Component() {
199
- const component = await import("./index-mCVPA90k.mjs");
200
- return component;
201
- },
195
+ to: `users-permissions/email-templates`,
196
+ Component: () => import("./index-CJUWqtrZ.mjs").then((mod) => ({
197
+ default: mod.ProtectedEmailTemplatesPage
198
+ })),
202
199
  permissions: PERMISSIONS.readEmailTemplates
203
200
  },
204
201
  {
@@ -207,11 +204,10 @@ const index = {
207
204
  defaultMessage: "Advanced Settings"
208
205
  },
209
206
  id: "advanced-settings",
210
- to: `/settings/users-permissions/advanced-settings`,
211
- async Component() {
212
- const component = await import("./index-xXp5S4OL.mjs");
213
- return component;
214
- },
207
+ to: `users-permissions/advanced-settings`,
208
+ Component: () => import("./index-PJoz36kJ.mjs").then((mod) => ({
209
+ default: mod.ProtectedAdvancedSettingsPage
210
+ })),
215
211
  permissions: PERMISSIONS.readAdvancedSettings
216
212
  }
217
213
  ]
@@ -226,7 +222,7 @@ const index = {
226
222
  async registerTrads({ locales }) {
227
223
  const importedTrads = await Promise.all(
228
224
  locales.map((locale) => {
229
- return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => import("./ar-MvD8Ghac.mjs"), "./translations/cs.json": () => import("./cs-BMuXwxA1.mjs"), "./translations/de.json": () => import("./de-zs2qqc0W.mjs"), "./translations/dk.json": () => import("./dk-HctVBMsG.mjs"), "./translations/en.json": () => import("./en-CE3wEy_c.mjs"), "./translations/es.json": () => import("./es-9381tih_.mjs"), "./translations/fr.json": () => import("./fr-CMSc77If.mjs"), "./translations/id.json": () => import("./id-SDuyIkZa.mjs"), "./translations/it.json": () => import("./it-bvH7DgQo.mjs"), "./translations/ja.json": () => import("./ja-o_-JPvQv.mjs"), "./translations/ko.json": () => import("./ko-XJbPSez_.mjs"), "./translations/ms.json": () => import("./ms-II5Ea73J.mjs"), "./translations/nl.json": () => import("./nl-vEy6TN0K.mjs"), "./translations/pl.json": () => import("./pl-2VowaFGt.mjs"), "./translations/pt-BR.json": () => import("./pt-BR-sS1Xp3Jt.mjs"), "./translations/pt.json": () => import("./pt-Rf9W51IO.mjs"), "./translations/ru.json": () => import("./ru-qKHnd5or.mjs"), "./translations/sk.json": () => import("./sk-_Ryr-eTT.mjs"), "./translations/sv.json": () => import("./sv-BqzScFXS.mjs"), "./translations/th.json": () => import("./th-WsknMEpq.mjs"), "./translations/tr.json": () => import("./tr-_DB1F1GW.mjs"), "./translations/uk.json": () => import("./uk-yxMSQAwI.mjs"), "./translations/vi.json": () => import("./vi-xY0zCW3d.mjs"), "./translations/zh-Hans.json": () => import("./zh-Hans-E84cu4kP.mjs"), "./translations/zh.json": () => import("./zh-OFeldzbX.mjs") }), `./translations/${locale}.json`).then(({ default: data }) => {
225
+ return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => import("./ar-CK8BRRXB.mjs"), "./translations/cs.json": () => import("./cs-BVigMk0l.mjs"), "./translations/de.json": () => import("./de-BKUdRFI4.mjs"), "./translations/dk.json": () => import("./dk-BQiTK50l.mjs"), "./translations/en.json": () => import("./en-DOHtPf-2.mjs"), "./translations/es.json": () => import("./es-DNgOVMjD.mjs"), "./translations/fr.json": () => import("./fr-DkgRugiU.mjs"), "./translations/id.json": () => import("./id-BdEsvnaF.mjs"), "./translations/it.json": () => import("./it-B-rv0E24.mjs"), "./translations/ja.json": () => import("./ja-C8K-VBPD.mjs"), "./translations/ko.json": () => import("./ko-Busb0wIY.mjs"), "./translations/ms.json": () => import("./ms-ByvsQjRt.mjs"), "./translations/nl.json": () => import("./nl-5qO8Rpcy.mjs"), "./translations/pl.json": () => import("./pl-BdIzifBE.mjs"), "./translations/pt-BR.json": () => import("./pt-BR-f0p23AQZ.mjs"), "./translations/pt.json": () => import("./pt-BIO24ioG.mjs"), "./translations/ru.json": () => import("./ru-VWy-IB7K.mjs"), "./translations/sk.json": () => import("./sk-B_LIcepm.mjs"), "./translations/sv.json": () => import("./sv-ABLKOokl.mjs"), "./translations/th.json": () => import("./th-DKyP7ueR.mjs"), "./translations/tr.json": () => import("./tr-qa1Q5UjC.mjs"), "./translations/uk.json": () => import("./uk-BmRqbeQc.mjs"), "./translations/vi.json": () => import("./vi-HW-EdMea.mjs"), "./translations/zh-Hans.json": () => import("./zh-Hans-BHilK-yc.mjs"), "./translations/zh.json": () => import("./zh-5hKkVPA4.mjs") }), `./translations/${locale}.json`).then(({ default: data }) => {
230
226
  return {
231
227
  data: prefixPluginTranslations(data, "users-permissions"),
232
228
  locale
@@ -247,4 +243,4 @@ export {
247
243
  getTrad as g,
248
244
  index as i
249
245
  };
250
- //# sourceMappingURL=index-iu-7wU8h.mjs.map
246
+ //# sourceMappingURL=index-R4R0dEOv.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-R4R0dEOv.mjs","sources":["../../admin/src/constants.js","../../admin/src/pluginId.js","../../admin/src/utils/getTrad.js","../../admin/src/utils/prefixPluginTranslations.js","../../admin/src/index.js"],"sourcesContent":["export const PERMISSIONS = {\n // Roles\n accessRoles: [\n { action: 'plugin::users-permissions.roles.create', subject: null },\n { action: 'plugin::users-permissions.roles.read', subject: null },\n ],\n createRole: [{ action: 'plugin::users-permissions.roles.create', subject: null }],\n deleteRole: [{ action: 'plugin::users-permissions.roles.delete', subject: null }],\n readRoles: [{ action: 'plugin::users-permissions.roles.read', subject: null }],\n updateRole: [{ action: 'plugin::users-permissions.roles.update', subject: null }],\n\n // AdvancedSettings\n readAdvancedSettings: [\n { action: 'plugin::users-permissions.advanced-settings.read', subject: null },\n ],\n updateAdvancedSettings: [\n { action: 'plugin::users-permissions.advanced-settings.update', subject: null },\n ],\n\n // Emails\n readEmailTemplates: [{ action: 'plugin::users-permissions.email-templates.read', subject: null }],\n updateEmailTemplates: [\n { action: 'plugin::users-permissions.email-templates.update', subject: null },\n ],\n\n // Providers\n readProviders: [{ action: 'plugin::users-permissions.providers.read', subject: null }],\n updateProviders: [{ action: 'plugin::users-permissions.providers.update', subject: null }],\n};\n","import pluginPkg from '../../package.json';\n\nconst pluginId = pluginPkg.name.replace(/^@strapi\\/plugin-/i, '');\n\nexport default pluginId;\n","import pluginId from '../pluginId';\n\nconst getTrad = (id) => `${pluginId}.${id}`;\n\nexport default getTrad;\n","const prefixPluginTranslations = (trad, pluginId) => {\n if (!pluginId) {\n throw new TypeError(\"pluginId can't be empty\");\n }\n\n return Object.keys(trad).reduce((acc, current) => {\n acc[`${pluginId}.${current}`] = trad[current];\n\n return acc;\n }, {});\n};\n\nexport { prefixPluginTranslations };\n","import pluginPkg from '../../package.json';\n\nimport { PERMISSIONS } from './constants';\nimport getTrad from './utils/getTrad';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\nconst name = pluginPkg.strapi.name;\n\nexport default {\n register(app) {\n // Create the plugin's settings section\n app.createSettingSection(\n {\n id: 'users-permissions',\n intlLabel: {\n id: getTrad('Settings.section-label'),\n defaultMessage: 'Users & Permissions plugin',\n },\n },\n [\n {\n intlLabel: {\n id: 'global.roles',\n defaultMessage: 'Roles',\n },\n id: 'roles',\n to: `users-permissions/roles`,\n Component: () => import('./pages/Roles'),\n permissions: PERMISSIONS.accessRoles,\n },\n {\n intlLabel: {\n id: getTrad('HeaderNav.link.providers'),\n defaultMessage: 'Providers',\n },\n id: 'providers',\n to: `users-permissions/providers`,\n Component: () => import('./pages/Providers'),\n permissions: PERMISSIONS.readProviders,\n },\n {\n intlLabel: {\n id: getTrad('HeaderNav.link.emailTemplates'),\n defaultMessage: 'Email templates',\n },\n id: 'email-templates',\n to: `users-permissions/email-templates`,\n Component: () =>\n import('./pages/EmailTemplates').then((mod) => ({\n default: mod.ProtectedEmailTemplatesPage,\n })),\n permissions: PERMISSIONS.readEmailTemplates,\n },\n {\n intlLabel: {\n id: getTrad('HeaderNav.link.advancedSettings'),\n defaultMessage: 'Advanced Settings',\n },\n id: 'advanced-settings',\n to: `users-permissions/advanced-settings`,\n Component: () =>\n import('./pages/AdvancedSettings').then((mod) => ({\n default: mod.ProtectedAdvancedSettingsPage,\n })),\n permissions: PERMISSIONS.readAdvancedSettings,\n },\n ]\n );\n\n app.registerPlugin({\n id: 'users-permissions',\n name,\n });\n },\n bootstrap() {},\n async registerTrads({ locales }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, 'users-permissions'),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n"],"names":["pluginId"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAY,MAAC,cAAc;AAAA;AAAA,EAEzB,aAAa;AAAA,IACX,EAAE,QAAQ,0CAA0C,SAAS,KAAM;AAAA,IACnE,EAAE,QAAQ,wCAAwC,SAAS,KAAM;AAAA,EAClE;AAAA,EACD,YAAY,CAAC,EAAE,QAAQ,0CAA0C,SAAS,KAAI,CAAE;AAAA,EAChF,YAAY,CAAC,EAAE,QAAQ,0CAA0C,SAAS,KAAI,CAAE;AAAA,EAChF,WAAW,CAAC,EAAE,QAAQ,wCAAwC,SAAS,KAAI,CAAE;AAAA,EAC7E,YAAY,CAAC,EAAE,QAAQ,0CAA0C,SAAS,KAAI,CAAE;AAAA;AAAA,EAGhF,sBAAsB;AAAA,IACpB,EAAE,QAAQ,oDAAoD,SAAS,KAAM;AAAA,EAC9E;AAAA,EACD,wBAAwB;AAAA,IACtB,EAAE,QAAQ,sDAAsD,SAAS,KAAM;AAAA,EAChF;AAAA;AAAA,EAGD,oBAAoB,CAAC,EAAE,QAAQ,kDAAkD,SAAS,KAAI,CAAE;AAAA,EAChG,sBAAsB;AAAA,IACpB,EAAE,QAAQ,oDAAoD,SAAS,KAAM;AAAA,EAC9E;AAAA;AAAA,EAGD,eAAe,CAAC,EAAE,QAAQ,4CAA4C,SAAS,KAAI,CAAE;AAAA,EACrF,iBAAiB,CAAC,EAAE,QAAQ,8CAA8C,SAAS,KAAI,CAAE;AAC3F;AC1BA,MAAM,WAAW,UAAU,KAAK,QAAQ,sBAAsB,EAAE;ACA3D,MAAC,UAAU,CAAC,OAAO,GAAG,QAAQ,IAAI,EAAE;ACFzC,MAAM,2BAA2B,CAAC,MAAMA,cAAa;AAKnD,SAAO,OAAO,KAAK,IAAI,EAAE,OAAO,CAAC,KAAK,YAAY;AAChD,QAAI,GAAGA,SAAQ,IAAI,OAAO,EAAE,IAAI,KAAK,OAAO;AAE5C,WAAO;AAAA,EACR,GAAE,CAAE,CAAA;AACP;ACJA,MAAM,OAAO,UAAU,OAAO;AAE9B,MAAe,QAAA;AAAA,EACb,SAAS,KAAK;AAEZ,QAAI;AAAA,MACF;AAAA,QACE,IAAI;AAAA,QACJ,WAAW;AAAA,UACT,IAAI,QAAQ,wBAAwB;AAAA,UACpC,gBAAgB;AAAA,QACjB;AAAA,MACF;AAAA,MACD;AAAA,QACE;AAAA,UACE,WAAW;AAAA,YACT,IAAI;AAAA,YACJ,gBAAgB;AAAA,UACjB;AAAA,UACD,IAAI;AAAA,UACJ,IAAI;AAAA,UACJ,WAAW,MAAM,OAAO,sBAAe;AAAA,UACvC,aAAa,YAAY;AAAA,QAC1B;AAAA,QACD;AAAA,UACE,WAAW;AAAA,YACT,IAAI,QAAQ,0BAA0B;AAAA,YACtC,gBAAgB;AAAA,UACjB;AAAA,UACD,IAAI;AAAA,UACJ,IAAI;AAAA,UACJ,WAAW,MAAM,OAAO,sBAAmB;AAAA,UAC3C,aAAa,YAAY;AAAA,QAC1B;AAAA,QACD;AAAA,UACE,WAAW;AAAA,YACT,IAAI,QAAQ,+BAA+B;AAAA,YAC3C,gBAAgB;AAAA,UACjB;AAAA,UACD,IAAI;AAAA,UACJ,IAAI;AAAA,UACJ,WAAW,MACT,OAAO,sBAAwB,EAAE,KAAK,CAAC,SAAS;AAAA,YAC9C,SAAS,IAAI;AAAA,UAC3B,EAAc;AAAA,UACJ,aAAa,YAAY;AAAA,QAC1B;AAAA,QACD;AAAA,UACE,WAAW;AAAA,YACT,IAAI,QAAQ,iCAAiC;AAAA,YAC7C,gBAAgB;AAAA,UACjB;AAAA,UACD,IAAI;AAAA,UACJ,IAAI;AAAA,UACJ,WAAW,MACT,OAAO,sBAA0B,EAAE,KAAK,CAAC,SAAS;AAAA,YAChD,SAAS,IAAI;AAAA,UAC3B,EAAc;AAAA,UACJ,aAAa,YAAY;AAAA,QAC1B;AAAA,MACF;AAAA,IACP;AAEI,QAAI,eAAe;AAAA,MACjB,IAAI;AAAA,MACJ;AAAA,IACN,CAAK;AAAA,EACF;AAAA,EACD,YAAY;AAAA,EAAE;AAAA,EACd,MAAM,cAAc,EAAE,WAAW;AAC/B,UAAM,gBAAgB,MAAM,QAAQ;AAAA,MAClC,QAAQ,IAAI,CAAC,WAAW;AACtB,eAAO,qCAAuC,uBAAA,OAAA,EAAA,0BAAA,MAAA,OAAA,mBAAA,GAAA,0BAAA,MAAA,OAAA,mBAAA,GAAA,0BAAA,MAAA,OAAA,mBAAA,GAAA,0BAAA,MAAA,OAAA,mBAAA,GAAA,0BAAA,MAAA,OAAA,mBAAA,GAAA,0BAAA,MAAA,OAAA,mBAAA,GAAA,0BAAA,MAAA,OAAA,mBAAA,GAAA,0BAAA,MAAA,OAAA,mBAAA,GAAA,0BAAA,MAAA,OAAA,mBAAA,GAAA,0BAAA,MAAA,OAAA,mBAAA,GAAA,0BAAA,MAAA,OAAA,mBAAA,GAAA,0BAAA,MAAA,OAAA,mBAAA,GAAA,0BAAA,MAAA,OAAA,mBAAA,GAAA,0BAAA,MAAA,OAAA,mBAAA,GAAA,6BAAA,MAAA,OAAA,sBAAA,GAAA,0BAAA,MAAA,OAAA,mBAAA,GAAA,0BAAA,MAAA,OAAA,mBAAA,GAAA,0BAAA,MAAA,OAAA,mBAAA,GAAA,0BAAA,MAAA,OAAA,mBAAA,GAAA,0BAAA,MAAA,OAAA,mBAAA,GAAA,0BAAA,MAAA,OAAA,mBAAA,GAAA,0BAAA,MAAA,OAAA,mBAAA,GAAA,0BAAA,MAAA,OAAA,mBAAA,GAAA,+BAAA,MAAA,OAAA,wBAAA,GAAA,0BAAA,MAAA,OAAA,mBAAA,EAAA,CAAA,GAAA,kBAAA,MAAA,OAAA,EAC3C,KAAK,CAAC,EAAE,SAAS,WAAW;AAC3B,iBAAO;AAAA,YACL,MAAM,yBAAyB,MAAM,mBAAmB;AAAA,YACxD;AAAA,UACd;AAAA,QACA,CAAW,EACA,MAAM,MAAM;AACX,iBAAO;AAAA,YACL,MAAM,CAAE;AAAA,YACR;AAAA,UACd;AAAA,QACA,CAAW;AAAA,MACX,CAAO;AAAA,IACP;AAEI,WAAO,QAAQ,QAAQ,aAAa;AAAA,EACrC;AACH;"}
@@ -1,15 +1,15 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
- import { ToggleInput, TextInput, ModalLayout, ModalHeader, ModalBody, Flex, Grid, GridItem, ModalFooter, Button, Layout, Main, HeaderLayout, ContentLayout, Table, Thead, Tr, Th, Typography, VisuallyHidden, Tbody, Td, IconButton } from "@strapi/design-system";
4
- import { Form, translatedErrors, useTracking, useNotification, useOverlayBlocker, useFetchClient, useAPIErrorHandler, useCollator, useFocusWhenNavigate, useRBAC, SettingsPageTitle, LoadingIndicatorPage, onRowClick, stopPropagation, CheckPagePermissions } from "@strapi/helper-plugin";
3
+ import { u as useTracking, L as Layouts } from "./index-DUWx-KG9-C1E7ADbJ.mjs";
4
+ import { Field, Toggle, TextInput, Modal, Breadcrumbs, Crumb, Flex, Grid, Button, useCollator, Table, Thead, Tr, Th, Typography, VisuallyHidden, Tbody, Td, IconButton } from "@strapi/design-system";
5
5
  import { Pencil } from "@strapi/icons";
6
+ import { translatedErrors, useNotification, useFetchClient, useAPIErrorHandler, useRBAC, Page } from "@strapi/strapi/admin";
6
7
  import upperFirst from "lodash/upperFirst";
7
8
  import { useIntl } from "react-intl";
8
9
  import { useQueryClient, useQuery, useMutation } from "react-query";
9
- import { Breadcrumbs, Crumb } from "@strapi/design-system/v2";
10
- import { Formik } from "formik";
10
+ import { Formik, Form } from "formik";
11
11
  import PropTypes from "prop-types";
12
- import { g as getTrad, P as PERMISSIONS } from "./index-iu-7wU8h.mjs";
12
+ import { g as getTrad, P as PERMISSIONS } from "./index-R4R0dEOv.mjs";
13
13
  import "lodash/isEmpty";
14
14
  import * as yup from "yup";
15
15
  const Input = ({
@@ -35,48 +35,49 @@ const Input = ({
35
35
  { provider: providerToEditName, ...description.values }
36
36
  ) : "";
37
37
  if (type === "bool") {
38
- return /* @__PURE__ */ jsx(
39
- ToggleInput,
40
- {
41
- "aria-label": name,
42
- checked: value,
43
- disabled,
44
- hint,
45
- label,
46
- name,
47
- offLabel: formatMessage({
48
- id: "app.components.ToggleCheckbox.off-label",
49
- defaultMessage: "Off"
50
- }),
51
- onLabel: formatMessage({
52
- id: "app.components.ToggleCheckbox.on-label",
53
- defaultMessage: "On"
54
- }),
55
- onChange: (e) => {
56
- onChange({ target: { name, value: e.target.checked } });
38
+ return /* @__PURE__ */ jsxs(Field.Root, { hint, name, children: [
39
+ /* @__PURE__ */ jsx(Field.Label, { children: label }),
40
+ /* @__PURE__ */ jsx(
41
+ Toggle,
42
+ {
43
+ "aria-label": name,
44
+ checked: value,
45
+ disabled,
46
+ offLabel: formatMessage({
47
+ id: "app.components.ToggleCheckbox.off-label",
48
+ defaultMessage: "Off"
49
+ }),
50
+ onLabel: formatMessage({
51
+ id: "app.components.ToggleCheckbox.on-label",
52
+ defaultMessage: "On"
53
+ }),
54
+ onChange: (e) => {
55
+ onChange({ target: { name, value: e.target.checked } });
56
+ }
57
57
  }
58
- }
59
- );
58
+ ),
59
+ /* @__PURE__ */ jsx(Field.Hint, {})
60
+ ] });
60
61
  }
61
62
  const formattedPlaceholder = placeholder ? formatMessage(
62
63
  { id: placeholder.id, defaultMessage: placeholder.defaultMessage },
63
64
  { ...placeholder.values }
64
65
  ) : "";
65
66
  const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : "";
66
- return /* @__PURE__ */ jsx(
67
- TextInput,
68
- {
69
- "aria-label": name,
70
- disabled,
71
- error: errorMessage,
72
- label,
73
- name,
74
- onChange,
75
- placeholder: formattedPlaceholder,
76
- type,
77
- value: inputValue
78
- }
79
- );
67
+ return /* @__PURE__ */ jsxs(Field.Root, { error: errorMessage, name, children: [
68
+ /* @__PURE__ */ jsx(Field.Label, { children: label }),
69
+ /* @__PURE__ */ jsx(
70
+ TextInput,
71
+ {
72
+ disabled,
73
+ onChange,
74
+ placeholder: formattedPlaceholder,
75
+ type,
76
+ value: inputValue
77
+ }
78
+ ),
79
+ /* @__PURE__ */ jsx(Field.Error, {})
80
+ ] });
80
81
  };
81
82
  Input.defaultProps = {
82
83
  description: null,
@@ -120,11 +121,8 @@ const FormModal = ({
120
121
  providerToEditName
121
122
  }) => {
122
123
  const { formatMessage } = useIntl();
123
- if (!isOpen) {
124
- return null;
125
- }
126
- return /* @__PURE__ */ jsxs(ModalLayout, { onClose: onToggle, labelledBy: "title", children: [
127
- /* @__PURE__ */ jsx(ModalHeader, { children: /* @__PURE__ */ jsx(Breadcrumbs, { label: headerBreadcrumbs.join(", "), children: headerBreadcrumbs.map((crumb, index, arr) => /* @__PURE__ */ jsx(Crumb, { isCurrent: index === arr.length - 1, children: crumb }, crumb)) }) }),
124
+ return /* @__PURE__ */ jsx(Modal.Root, { open: isOpen, onOpenChange: onToggle, children: /* @__PURE__ */ jsxs(Modal.Content, { children: [
125
+ /* @__PURE__ */ jsx(Modal.Header, { children: /* @__PURE__ */ jsx(Breadcrumbs, { label: headerBreadcrumbs.join(", "), children: headerBreadcrumbs.map((crumb, index, arr) => /* @__PURE__ */ jsx(Crumb, { isCurrent: index === arr.length - 1, children: crumb }, crumb)) }) }),
128
126
  /* @__PURE__ */ jsx(
129
127
  Formik,
130
128
  {
@@ -134,35 +132,42 @@ const FormModal = ({
134
132
  validateOnChange: false,
135
133
  children: ({ errors, handleChange, values }) => {
136
134
  return /* @__PURE__ */ jsxs(Form, { children: [
137
- /* @__PURE__ */ jsx(ModalBody, { children: /* @__PURE__ */ jsx(Flex, { direction: "column", alignItems: "stretch", gap: 1, children: /* @__PURE__ */ jsx(Grid, { gap: 5, children: layout.form.map((row) => {
135
+ /* @__PURE__ */ jsx(Modal.Body, { children: /* @__PURE__ */ jsx(Flex, { direction: "column", alignItems: "stretch", gap: 1, children: /* @__PURE__ */ jsx(Grid.Root, { gap: 5, children: layout.form.map((row) => {
138
136
  return row.map((input) => {
139
- return /* @__PURE__ */ jsx(GridItem, { col: input.size, xs: 12, children: /* @__PURE__ */ jsx(
140
- Input,
137
+ return /* @__PURE__ */ jsx(
138
+ Grid.Item,
141
139
  {
142
- ...input,
143
- error: errors[input.name],
144
- onChange: handleChange,
145
- value: values[input.name],
146
- providerToEditName
147
- }
148
- ) }, input.name);
140
+ col: input.size,
141
+ xs: 12,
142
+ direction: "column",
143
+ alignItems: "stretch",
144
+ children: /* @__PURE__ */ jsx(
145
+ Input,
146
+ {
147
+ ...input,
148
+ error: errors[input.name],
149
+ onChange: handleChange,
150
+ value: values[input.name],
151
+ providerToEditName
152
+ }
153
+ )
154
+ },
155
+ input.name
156
+ );
149
157
  });
150
158
  }) }) }) }),
151
- /* @__PURE__ */ jsx(
152
- ModalFooter,
153
- {
154
- startActions: /* @__PURE__ */ jsx(Button, { variant: "tertiary", onClick: onToggle, type: "button", children: formatMessage({
155
- id: "app.components.Button.cancel",
156
- defaultMessage: "Cancel"
157
- }) }),
158
- endActions: /* @__PURE__ */ jsx(Button, { type: "submit", loading: isSubmiting, children: formatMessage({ id: "global.save", defaultMessage: "Save" }) })
159
- }
160
- )
159
+ /* @__PURE__ */ jsxs(Modal.Footer, { children: [
160
+ /* @__PURE__ */ jsx(Button, { variant: "tertiary", onClick: onToggle, type: "button", children: formatMessage({
161
+ id: "app.components.Button.cancel",
162
+ defaultMessage: "Cancel"
163
+ }) }),
164
+ /* @__PURE__ */ jsx(Button, { type: "submit", loading: isSubmiting, children: formatMessage({ id: "global.save", defaultMessage: "Save" }) })
165
+ ] })
161
166
  ] });
162
167
  }
163
168
  }
164
169
  )
165
- ] });
170
+ ] }) });
166
171
  };
167
172
  FormModal.defaultProps = {
168
173
  initialData: null,
@@ -210,6 +215,8 @@ const secretLabel = {
210
215
  id: getTrad("PopUpForm.Providers.secret.label"),
211
216
  defaultMessage: "Client Secret"
212
217
  };
218
+ const CALLBACK_REGEX = /^$|^[a-z][a-z0-9+.-]*:\/\/[^\s/$.?#](?:[^\s]*[^\s/$.?#])?$/i;
219
+ const SUBDOMAIN_REGEX = /^(([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+)(:\d+)?(\/\S*)?$/i;
213
220
  const forms = {
214
221
  email: {
215
222
  form: [
@@ -228,7 +235,7 @@ const forms = {
228
235
  ]
229
236
  ],
230
237
  schema: yup.object().shape({
231
- enabled: yup.bool().required(translatedErrors.required)
238
+ enabled: yup.bool().required(translatedErrors.required.id)
232
239
  })
233
240
  },
234
241
  providers: {
@@ -293,20 +300,20 @@ const forms = {
293
300
  ]
294
301
  ],
295
302
  schema: yup.object().shape({
296
- enabled: yup.bool().required(translatedErrors.required),
303
+ enabled: yup.bool().required(translatedErrors.required.id),
297
304
  key: yup.string().when("enabled", {
298
305
  is: true,
299
- then: yup.string().required(translatedErrors.required),
306
+ then: yup.string().required(translatedErrors.required.id),
300
307
  otherwise: yup.string()
301
308
  }),
302
309
  secret: yup.string().when("enabled", {
303
310
  is: true,
304
- then: yup.string().required(translatedErrors.required),
311
+ then: yup.string().required(translatedErrors.required.id),
305
312
  otherwise: yup.string()
306
313
  }),
307
314
  callback: yup.string().when("enabled", {
308
315
  is: true,
309
- then: yup.string().required(translatedErrors.required),
316
+ then: yup.string().matches(CALLBACK_REGEX, translatedErrors.regex.id).required(translatedErrors.required.id),
310
317
  otherwise: yup.string()
311
318
  })
312
319
  })
@@ -406,25 +413,25 @@ const forms = {
406
413
  ]
407
414
  ],
408
415
  schema: yup.object().shape({
409
- enabled: yup.bool().required(translatedErrors.required),
416
+ enabled: yup.bool().required(translatedErrors.required.id),
410
417
  key: yup.string().when("enabled", {
411
418
  is: true,
412
- then: yup.string().required(translatedErrors.required),
419
+ then: yup.string().required(translatedErrors.required.id),
413
420
  otherwise: yup.string()
414
421
  }),
415
422
  secret: yup.string().when("enabled", {
416
423
  is: true,
417
- then: yup.string().required(translatedErrors.required),
424
+ then: yup.string().required(translatedErrors.required.id),
418
425
  otherwise: yup.string()
419
426
  }),
420
427
  subdomain: yup.string().when("enabled", {
421
428
  is: true,
422
- then: yup.string().required(translatedErrors.required),
429
+ then: yup.string().matches(SUBDOMAIN_REGEX, translatedErrors.regex.id).required(translatedErrors.required.id),
423
430
  otherwise: yup.string()
424
431
  }),
425
432
  callback: yup.string().when("enabled", {
426
433
  is: true,
427
- then: yup.string().required(translatedErrors.required),
434
+ then: yup.string().matches(CALLBACK_REGEX, translatedErrors.regex.id).required(translatedErrors.required.id),
428
435
  otherwise: yup.string()
429
436
  })
430
437
  })
@@ -436,14 +443,12 @@ const ProvidersPage = () => {
436
443
  const { trackUsage } = useTracking();
437
444
  const [isOpen, setIsOpen] = React.useState(false);
438
445
  const [providerToEditName, setProviderToEditName] = React.useState(null);
439
- const toggleNotification = useNotification();
440
- const { lockApp, unlockApp } = useOverlayBlocker();
446
+ const { toggleNotification } = useNotification();
441
447
  const { get, put } = useFetchClient();
442
448
  const { formatAPIError } = useAPIErrorHandler();
443
449
  const formatter = useCollator(locale, {
444
450
  sensitivity: "base"
445
451
  });
446
- useFocusWhenNavigate();
447
452
  const {
448
453
  isLoading: isLoadingPermissions,
449
454
  allowedActions: { canUpdate }
@@ -460,21 +465,19 @@ const ProvidersPage = () => {
460
465
  );
461
466
  const submitMutation = useMutation((body) => put("/users-permissions/providers", body), {
462
467
  async onSuccess() {
463
- await queryClient.invalidateQueries(["users-permissions", "providers"]);
468
+ await queryClient.invalidateQueries(["users-permissions", "get-providers"]);
464
469
  toggleNotification({
465
470
  type: "success",
466
- message: { id: getTrad("notification.success.submit") }
471
+ message: formatMessage({ id: getTrad("notification.success.submit") })
467
472
  });
468
473
  trackUsage("didEditAuthenticationProvider");
469
474
  handleToggleModal();
470
- unlockApp();
471
475
  },
472
476
  onError(error) {
473
477
  toggleNotification({
474
- type: "warning",
478
+ type: "danger",
475
479
  message: formatAPIError(error)
476
480
  });
477
- unlockApp();
478
481
  },
479
482
  refetchActive: false
480
483
  });
@@ -515,23 +518,25 @@ const ProvidersPage = () => {
515
518
  }
516
519
  };
517
520
  const handleSubmit = async (values) => {
518
- lockApp();
519
521
  trackUsage("willEditAuthenticationProvider");
520
522
  submitMutation.mutate({ providers: { ...data, [providerToEditName]: values } });
521
523
  };
522
- return /* @__PURE__ */ jsxs(Layout, { children: [
523
- /* @__PURE__ */ jsx(
524
- SettingsPageTitle,
524
+ if (isLoading) {
525
+ return /* @__PURE__ */ jsx(Page.Loading, {});
526
+ }
527
+ return /* @__PURE__ */ jsxs(Layouts.Root, { children: [
528
+ /* @__PURE__ */ jsx(Page.Title, { children: formatMessage(
529
+ { id: "Settings.PageTitle", defaultMessage: "Settings - {name}" },
525
530
  {
526
531
  name: formatMessage({
527
532
  id: getTrad("HeaderNav.link.providers"),
528
533
  defaultMessage: "Providers"
529
534
  })
530
535
  }
531
- ),
532
- /* @__PURE__ */ jsxs(Main, { children: [
536
+ ) }),
537
+ /* @__PURE__ */ jsxs(Page.Main, { children: [
533
538
  /* @__PURE__ */ jsx(
534
- HeaderLayout,
539
+ Layouts.Header,
535
540
  {
536
541
  title: formatMessage({
537
542
  id: getTrad("HeaderNav.link.providers"),
@@ -539,7 +544,7 @@ const ProvidersPage = () => {
539
544
  })
540
545
  }
541
546
  ),
542
- isLoading ? /* @__PURE__ */ jsx(LoadingIndicatorPage, {}) : /* @__PURE__ */ jsx(ContentLayout, { children: /* @__PURE__ */ jsxs(Table, { colCount: 3, rowCount: providers.length + 1, children: [
547
+ /* @__PURE__ */ jsx(Layouts.Content, { children: /* @__PURE__ */ jsxs(Table, { colCount: 3, rowCount: providers.length + 1, children: [
543
548
  /* @__PURE__ */ jsx(Thead, { children: /* @__PURE__ */ jsxs(Tr, { children: [
544
549
  /* @__PURE__ */ jsx(Th, { children: /* @__PURE__ */ jsx(Typography, { variant: "sigma", textColor: "neutral600", children: formatMessage({ id: "global.name", defaultMessage: "Name" }) }) }),
545
550
  /* @__PURE__ */ jsx(Th, { children: /* @__PURE__ */ jsx(Typography, { variant: "sigma", textColor: "neutral600", children: formatMessage({ id: getTrad("Providers.status"), defaultMessage: "Status" }) }) }),
@@ -551,10 +556,7 @@ const ProvidersPage = () => {
551
556
  /* @__PURE__ */ jsx(Tbody, { children: providers.map((provider) => /* @__PURE__ */ jsxs(
552
557
  Tr,
553
558
  {
554
- ...onRowClick({
555
- fn: () => handleClickEdit(provider),
556
- condition: canUpdate
557
- }),
559
+ onClick: () => canUpdate ? handleClickEdit(provider) : void 0,
558
560
  children: [
559
561
  /* @__PURE__ */ jsx(Td, { width: "45%", children: /* @__PURE__ */ jsx(Typography, { fontWeight: "semiBold", textColor: "neutral800", children: provider.name }) }),
560
562
  /* @__PURE__ */ jsx(Td, { width: "65%", children: /* @__PURE__ */ jsx(
@@ -571,13 +573,13 @@ const ProvidersPage = () => {
571
573
  })
572
574
  }
573
575
  ) }),
574
- /* @__PURE__ */ jsx(Td, { ...stopPropagation, children: canUpdate && /* @__PURE__ */ jsx(
576
+ /* @__PURE__ */ jsx(Td, { onClick: (e) => e.stopPropagation(), children: canUpdate && /* @__PURE__ */ jsx(
575
577
  IconButton,
576
578
  {
577
579
  onClick: () => handleClickEdit(provider),
578
- noBorder: true,
579
- icon: /* @__PURE__ */ jsx(Pencil, {}),
580
- label: "Edit"
580
+ variant: "ghost",
581
+ label: "Edit",
582
+ children: /* @__PURE__ */ jsx(Pencil, {})
581
583
  }
582
584
  ) })
583
585
  ]
@@ -607,9 +609,9 @@ const ProvidersPage = () => {
607
609
  )
608
610
  ] });
609
611
  };
610
- const ProtectedProvidersPage = () => /* @__PURE__ */ jsx(CheckPagePermissions, { permissions: PERMISSIONS.readProviders, children: /* @__PURE__ */ jsx(ProvidersPage, {}) });
612
+ const ProtectedProvidersPage = () => /* @__PURE__ */ jsx(Page.Protect, { permissions: PERMISSIONS.readProviders, children: /* @__PURE__ */ jsx(ProvidersPage, {}) });
611
613
  export {
612
614
  ProvidersPage,
613
615
  ProtectedProvidersPage as default
614
616
  };
615
- //# sourceMappingURL=index-eE2qjbfg.mjs.map
617
+ //# sourceMappingURL=index-XOcQhJMB.mjs.map