@strapi/plugin-users-permissions 5.0.0-beta.1 → 5.0.0-beta.11

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 (238) hide show
  1. package/admin/src/components/BoundRoute/index.jsx +2 -2
  2. package/admin/src/components/FormModal/Input/index.jsx +32 -31
  3. package/admin/src/components/FormModal/index.jsx +50 -66
  4. package/admin/src/components/Permissions/PermissionRow/CheckboxWrapper.jsx +1 -1
  5. package/admin/src/components/Permissions/PermissionRow/SubCategory.jsx +11 -20
  6. package/admin/src/components/Permissions/index.jsx +27 -35
  7. package/admin/src/components/Policies/index.jsx +5 -5
  8. package/admin/src/components/UsersPermissions/index.jsx +7 -7
  9. package/admin/src/pages/AdvancedSettings/index.jsx +13 -23
  10. package/admin/src/pages/EmailTemplates/components/EmailForm.jsx +113 -111
  11. package/admin/src/pages/EmailTemplates/components/EmailTable.jsx +23 -24
  12. package/admin/src/pages/EmailTemplates/index.jsx +14 -15
  13. package/admin/src/pages/Providers/index.jsx +13 -16
  14. package/admin/src/pages/Roles/pages/CreatePage.jsx +38 -35
  15. package/admin/src/pages/Roles/pages/EditPage.jsx +42 -35
  16. package/admin/src/pages/Roles/pages/ListPage/components/TableBody.jsx +9 -9
  17. package/admin/src/pages/Roles/pages/ListPage/index.jsx +16 -21
  18. package/dist/_chunks/{ar-t5qTFaAD.js → ar-BguGUqwK.js} +1 -1
  19. package/dist/_chunks/ar-BguGUqwK.js.map +1 -0
  20. package/dist/_chunks/{ar-MvD8Ghac.mjs → ar-CK8BRRXB.mjs} +1 -1
  21. package/dist/_chunks/ar-CK8BRRXB.mjs.map +1 -0
  22. package/dist/_chunks/{cs-BMuXwxA1.mjs → cs-BVigMk0l.mjs} +1 -1
  23. package/dist/_chunks/cs-BVigMk0l.mjs.map +1 -0
  24. package/dist/_chunks/{cs-I8N4u-Sd.js → cs-BW8-K_GY.js} +1 -1
  25. package/dist/_chunks/cs-BW8-K_GY.js.map +1 -0
  26. package/dist/_chunks/{de-zs2qqc0W.mjs → de-BKUdRFI4.mjs} +1 -1
  27. package/dist/_chunks/de-BKUdRFI4.mjs.map +1 -0
  28. package/dist/_chunks/{de-YTjtq89K.js → de-owXpVluI.js} +1 -1
  29. package/dist/_chunks/de-owXpVluI.js.map +1 -0
  30. package/dist/_chunks/{dk-HctVBMsG.mjs → dk-BQiTK50l.mjs} +1 -1
  31. package/dist/_chunks/dk-BQiTK50l.mjs.map +1 -0
  32. package/dist/_chunks/{dk-TF-dWjzl.js → dk-LXAnbuBk.js} +1 -1
  33. package/dist/_chunks/dk-LXAnbuBk.js.map +1 -0
  34. package/dist/_chunks/{en-jvJ-d-Qq.mjs → en-DOHtPf-2.mjs} +1 -1
  35. package/dist/_chunks/en-DOHtPf-2.mjs.map +1 -0
  36. package/dist/_chunks/{en-TaNIVnDO.js → en-MHo5mcsU.js} +1 -1
  37. package/dist/_chunks/en-MHo5mcsU.js.map +1 -0
  38. package/dist/_chunks/{es-XBQsB8_9.js → es-BwLCLXAQ.js} +1 -1
  39. package/dist/_chunks/es-BwLCLXAQ.js.map +1 -0
  40. package/dist/_chunks/{es-9381tih_.mjs → es-DNgOVMjD.mjs} +1 -1
  41. package/dist/_chunks/es-DNgOVMjD.mjs.map +1 -0
  42. package/dist/_chunks/{fr-CMSc77If.mjs → fr-DkgRugiU.mjs} +1 -1
  43. package/dist/_chunks/fr-DkgRugiU.mjs.map +1 -0
  44. package/dist/_chunks/{fr-6cz3U-IF.js → fr-DkhpSjjm.js} +1 -1
  45. package/dist/_chunks/fr-DkhpSjjm.js.map +1 -0
  46. package/dist/_chunks/{id-RJ934rq-.js → id-BTemOeTZ.js} +1 -1
  47. package/dist/_chunks/id-BTemOeTZ.js.map +1 -0
  48. package/dist/_chunks/{id-SDuyIkZa.mjs → id-BdEsvnaF.mjs} +1 -1
  49. package/dist/_chunks/id-BdEsvnaF.mjs.map +1 -0
  50. package/dist/_chunks/{index-gw-9XoIT.js → index--GpG6tLA.js} +112 -119
  51. package/dist/_chunks/index--GpG6tLA.js.map +1 -0
  52. package/dist/_chunks/index-7Wlj8eA7-7OWx8SwS.js +11473 -0
  53. package/dist/_chunks/index-7Wlj8eA7-7OWx8SwS.js.map +1 -0
  54. package/dist/_chunks/index-7Wlj8eA7-DHTckV6T.mjs +11449 -0
  55. package/dist/_chunks/index-7Wlj8eA7-DHTckV6T.mjs.map +1 -0
  56. package/dist/_chunks/{index-Vg50EMBp.mjs → index-C5U4ePo7.mjs} +119 -151
  57. package/dist/_chunks/index-C5U4ePo7.mjs.map +1 -0
  58. package/dist/_chunks/{index-JO4fO3Yj.js → index-C5qelx5h.js} +21 -21
  59. package/dist/_chunks/{index-JO4fO3Yj.js.map → index-C5qelx5h.js.map} +1 -1
  60. package/dist/_chunks/{index-UxzhJuP2.js → index-C61Rq3Wy.js} +66 -78
  61. package/dist/_chunks/index-C61Rq3Wy.js.map +1 -0
  62. package/dist/_chunks/{index-PTS42_em.mjs → index-CeYJys9a.mjs} +21 -21
  63. package/dist/_chunks/{index-PTS42_em.mjs.map → index-CeYJys9a.mjs.map} +1 -1
  64. package/dist/_chunks/{index-46oU0LRy.js → index-CulAxKsW.js} +16 -22
  65. package/dist/_chunks/index-CulAxKsW.js.map +1 -0
  66. package/dist/_chunks/{index-DtWla9tx.mjs → index-DPPPDM5v.mjs} +16 -22
  67. package/dist/_chunks/index-DPPPDM5v.mjs.map +1 -0
  68. package/dist/_chunks/{index-_UNneVIg.js → index-UMWzcJhY.js} +129 -162
  69. package/dist/_chunks/index-UMWzcJhY.js.map +1 -0
  70. package/dist/_chunks/{index-oUZpvYqS.mjs → index-_80225_r.mjs} +113 -120
  71. package/dist/_chunks/index-_80225_r.mjs.map +1 -0
  72. package/dist/_chunks/{index-G9pZniMC.mjs → index-xP-F2lwk.mjs} +66 -78
  73. package/dist/_chunks/index-xP-F2lwk.mjs.map +1 -0
  74. package/dist/_chunks/{it-bvH7DgQo.mjs → it-B-rv0E24.mjs} +1 -1
  75. package/dist/_chunks/it-B-rv0E24.mjs.map +1 -0
  76. package/dist/_chunks/{it-YhZOlM2X.js → it-D1rH6V6_.js} +1 -1
  77. package/dist/_chunks/it-D1rH6V6_.js.map +1 -0
  78. package/dist/_chunks/{ja-o_-JPvQv.mjs → ja-C8K-VBPD.mjs} +1 -1
  79. package/dist/_chunks/ja-C8K-VBPD.mjs.map +1 -0
  80. package/dist/_chunks/{ja-xssHUXFv.js → ja-DqShgTMf.js} +1 -1
  81. package/dist/_chunks/ja-DqShgTMf.js.map +1 -0
  82. package/dist/_chunks/{ko-C3mHUSJa.js → ko-B9DGEPWH.js} +1 -1
  83. package/dist/_chunks/ko-B9DGEPWH.js.map +1 -0
  84. package/dist/_chunks/{ko-XJbPSez_.mjs → ko-Busb0wIY.mjs} +1 -1
  85. package/dist/_chunks/ko-Busb0wIY.mjs.map +1 -0
  86. package/dist/_chunks/{ms-II5Ea73J.mjs → ms-ByvsQjRt.mjs} +1 -1
  87. package/dist/_chunks/ms-ByvsQjRt.mjs.map +1 -0
  88. package/dist/_chunks/{ms-d0hfg65Z.js → ms-CPBU3LWf.js} +1 -1
  89. package/dist/_chunks/ms-CPBU3LWf.js.map +1 -0
  90. package/dist/_chunks/{nl-vEy6TN0K.mjs → nl-5qO8Rpcy.mjs} +1 -1
  91. package/dist/_chunks/nl-5qO8Rpcy.mjs.map +1 -0
  92. package/dist/_chunks/{nl-TA7TfK_5.js → nl-CwNB6YoO.js} +1 -1
  93. package/dist/_chunks/nl-CwNB6YoO.js.map +1 -0
  94. package/dist/_chunks/{pl-2VowaFGt.mjs → pl-BdIzifBE.mjs} +1 -1
  95. package/dist/_chunks/pl-BdIzifBE.mjs.map +1 -0
  96. package/dist/_chunks/{pl-0pUL9hdA.js → pl-Do9UD69f.js} +1 -1
  97. package/dist/_chunks/pl-Do9UD69f.js.map +1 -0
  98. package/dist/_chunks/{pt-Rf9W51IO.mjs → pt-BIO24ioG.mjs} +1 -1
  99. package/dist/_chunks/pt-BIO24ioG.mjs.map +1 -0
  100. package/dist/_chunks/{pt-BR-WNOhafR4.js → pt-BR-D7dZhxuP.js} +1 -1
  101. package/dist/_chunks/pt-BR-D7dZhxuP.js.map +1 -0
  102. package/dist/_chunks/{pt-BR-sS1Xp3Jt.mjs → pt-BR-f0p23AQZ.mjs} +1 -1
  103. package/dist/_chunks/pt-BR-f0p23AQZ.mjs.map +1 -0
  104. package/dist/_chunks/{pt-guNR9Gax.js → pt-fdvyOnUp.js} +1 -1
  105. package/dist/_chunks/pt-fdvyOnUp.js.map +1 -0
  106. package/dist/_chunks/{ru-X3BMXDds.js → ru-C94rjPGA.js} +1 -1
  107. package/dist/_chunks/ru-C94rjPGA.js.map +1 -0
  108. package/dist/_chunks/{ru-qKHnd5or.mjs → ru-VWy-IB7K.mjs} +1 -1
  109. package/dist/_chunks/ru-VWy-IB7K.mjs.map +1 -0
  110. package/dist/_chunks/{sk-NWPw1oTN.js → sk-BABEhykl.js} +1 -1
  111. package/dist/_chunks/sk-BABEhykl.js.map +1 -0
  112. package/dist/_chunks/{sk-_Ryr-eTT.mjs → sk-B_LIcepm.mjs} +1 -1
  113. package/dist/_chunks/sk-B_LIcepm.mjs.map +1 -0
  114. package/dist/_chunks/{sv-BqzScFXS.mjs → sv-ABLKOokl.mjs} +1 -1
  115. package/dist/_chunks/sv-ABLKOokl.mjs.map +1 -0
  116. package/dist/_chunks/{sv-76NnbB__.js → sv-Be43LhA9.js} +1 -1
  117. package/dist/_chunks/sv-Be43LhA9.js.map +1 -0
  118. package/dist/_chunks/{th-WsknMEpq.mjs → th-DKyP7ueR.mjs} +1 -1
  119. package/dist/_chunks/th-DKyP7ueR.mjs.map +1 -0
  120. package/dist/_chunks/{th-cbppX21D.js → th-DgVhVLhL.js} +1 -1
  121. package/dist/_chunks/th-DgVhVLhL.js.map +1 -0
  122. package/dist/_chunks/{tr-6mm_Fmz7.js → tr-B_idhkEs.js} +1 -1
  123. package/dist/_chunks/tr-B_idhkEs.js.map +1 -0
  124. package/dist/_chunks/{tr-_DB1F1GW.mjs → tr-qa1Q5UjC.mjs} +1 -1
  125. package/dist/_chunks/tr-qa1Q5UjC.mjs.map +1 -0
  126. package/dist/_chunks/{uk-yxMSQAwI.mjs → uk-BmRqbeQc.mjs} +1 -1
  127. package/dist/_chunks/uk-BmRqbeQc.mjs.map +1 -0
  128. package/dist/_chunks/{uk-sI2I1ogF.js → uk-LHOivnhP.js} +1 -1
  129. package/dist/_chunks/uk-LHOivnhP.js.map +1 -0
  130. package/dist/_chunks/{vi-A3zJxaiI.js → vi-CdVRdKDw.js} +1 -1
  131. package/dist/_chunks/vi-CdVRdKDw.js.map +1 -0
  132. package/dist/_chunks/{vi-xY0zCW3d.mjs → vi-HW-EdMea.mjs} +1 -1
  133. package/dist/_chunks/vi-HW-EdMea.mjs.map +1 -0
  134. package/dist/_chunks/{zh-OFeldzbX.mjs → zh-5hKkVPA4.mjs} +1 -1
  135. package/dist/_chunks/zh-5hKkVPA4.mjs.map +1 -0
  136. package/dist/_chunks/{zh-72SpmFXa.js → zh-Cuq8gMnF.js} +1 -1
  137. package/dist/_chunks/zh-Cuq8gMnF.js.map +1 -0
  138. package/dist/_chunks/{zh-Hans-E84cu4kP.mjs → zh-Hans-BHilK-yc.mjs} +1 -1
  139. package/dist/_chunks/zh-Hans-BHilK-yc.mjs.map +1 -0
  140. package/dist/_chunks/{zh-Hans-ArWWtyP4.js → zh-Hans-GQDMKtY4.js} +1 -1
  141. package/dist/_chunks/zh-Hans-GQDMKtY4.js.map +1 -0
  142. package/dist/admin/index.js +1 -1
  143. package/dist/admin/index.mjs +1 -1
  144. package/package.json +16 -16
  145. package/server/bootstrap/index.js +3 -3
  146. package/server/config.js +29 -0
  147. package/server/controllers/auth.js +22 -4
  148. package/server/controllers/content-manager-user.js +4 -2
  149. package/server/services/user.js +21 -4
  150. package/server/services/users-permissions.js +3 -3
  151. package/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js +2 -2
  152. package/dist/_chunks/EditViewPage-BJdNfzBZ-XIkFGBc4.mjs +0 -84380
  153. package/dist/_chunks/EditViewPage-BJdNfzBZ-XIkFGBc4.mjs.map +0 -1
  154. package/dist/_chunks/EditViewPage-BJdNfzBZ-eKwHxgPQ.js +0 -84408
  155. package/dist/_chunks/EditViewPage-BJdNfzBZ-eKwHxgPQ.js.map +0 -1
  156. package/dist/_chunks/Helmet-En-SEnNC.mjs +0 -1008
  157. package/dist/_chunks/Helmet-En-SEnNC.mjs.map +0 -1
  158. package/dist/_chunks/Helmet-d9JljxUo.js +0 -1010
  159. package/dist/_chunks/Helmet-d9JljxUo.js.map +0 -1
  160. package/dist/_chunks/ListViewPage-FE12IpwT-Wq63ge4-.js +0 -1595
  161. package/dist/_chunks/ListViewPage-FE12IpwT-Wq63ge4-.js.map +0 -1
  162. package/dist/_chunks/ListViewPage-FE12IpwT-qmEuoG2g.mjs +0 -1571
  163. package/dist/_chunks/ListViewPage-FE12IpwT-qmEuoG2g.mjs.map +0 -1
  164. package/dist/_chunks/ReviewWorkflowsColumn-NUu47oVz-8gQO_Y5x.mjs +0 -33
  165. package/dist/_chunks/ReviewWorkflowsColumn-NUu47oVz-8gQO_Y5x.mjs.map +0 -1
  166. package/dist/_chunks/ReviewWorkflowsColumn-NUu47oVz-ARD7iQQF.js +0 -33
  167. package/dist/_chunks/ReviewWorkflowsColumn-NUu47oVz-ARD7iQQF.js.map +0 -1
  168. package/dist/_chunks/ar-MvD8Ghac.mjs.map +0 -1
  169. package/dist/_chunks/ar-t5qTFaAD.js.map +0 -1
  170. package/dist/_chunks/constants-D6NLEhwu-4IL8biHd.js +0 -209
  171. package/dist/_chunks/constants-D6NLEhwu-4IL8biHd.js.map +0 -1
  172. package/dist/_chunks/constants-D6NLEhwu-gRKBHArd.mjs +0 -190
  173. package/dist/_chunks/constants-D6NLEhwu-gRKBHArd.mjs.map +0 -1
  174. package/dist/_chunks/cs-BMuXwxA1.mjs.map +0 -1
  175. package/dist/_chunks/cs-I8N4u-Sd.js.map +0 -1
  176. package/dist/_chunks/de-YTjtq89K.js.map +0 -1
  177. package/dist/_chunks/de-zs2qqc0W.mjs.map +0 -1
  178. package/dist/_chunks/dk-HctVBMsG.mjs.map +0 -1
  179. package/dist/_chunks/dk-TF-dWjzl.js.map +0 -1
  180. package/dist/_chunks/en-TaNIVnDO.js.map +0 -1
  181. package/dist/_chunks/en-jvJ-d-Qq.mjs.map +0 -1
  182. package/dist/_chunks/es-9381tih_.mjs.map +0 -1
  183. package/dist/_chunks/es-XBQsB8_9.js.map +0 -1
  184. package/dist/_chunks/fr-6cz3U-IF.js.map +0 -1
  185. package/dist/_chunks/fr-CMSc77If.mjs.map +0 -1
  186. package/dist/_chunks/id-RJ934rq-.js.map +0 -1
  187. package/dist/_chunks/id-SDuyIkZa.mjs.map +0 -1
  188. package/dist/_chunks/index-1NFAbkxM-Km1zKLTh.mjs +0 -16568
  189. package/dist/_chunks/index-1NFAbkxM-Km1zKLTh.mjs.map +0 -1
  190. package/dist/_chunks/index-1NFAbkxM-c8HdvwSA.js +0 -16593
  191. package/dist/_chunks/index-1NFAbkxM-c8HdvwSA.js.map +0 -1
  192. package/dist/_chunks/index-46oU0LRy.js.map +0 -1
  193. package/dist/_chunks/index-DtWla9tx.mjs.map +0 -1
  194. package/dist/_chunks/index-G9pZniMC.mjs.map +0 -1
  195. package/dist/_chunks/index-UxzhJuP2.js.map +0 -1
  196. package/dist/_chunks/index-Vg50EMBp.mjs.map +0 -1
  197. package/dist/_chunks/index-_UNneVIg.js.map +0 -1
  198. package/dist/_chunks/index-gw-9XoIT.js.map +0 -1
  199. package/dist/_chunks/index-oUZpvYqS.mjs.map +0 -1
  200. package/dist/_chunks/it-YhZOlM2X.js.map +0 -1
  201. package/dist/_chunks/it-bvH7DgQo.mjs.map +0 -1
  202. package/dist/_chunks/ja-o_-JPvQv.mjs.map +0 -1
  203. package/dist/_chunks/ja-xssHUXFv.js.map +0 -1
  204. package/dist/_chunks/ko-C3mHUSJa.js.map +0 -1
  205. package/dist/_chunks/ko-XJbPSez_.mjs.map +0 -1
  206. package/dist/_chunks/ms-II5Ea73J.mjs.map +0 -1
  207. package/dist/_chunks/ms-d0hfg65Z.js.map +0 -1
  208. package/dist/_chunks/nl-TA7TfK_5.js.map +0 -1
  209. package/dist/_chunks/nl-vEy6TN0K.mjs.map +0 -1
  210. package/dist/_chunks/pl-0pUL9hdA.js.map +0 -1
  211. package/dist/_chunks/pl-2VowaFGt.mjs.map +0 -1
  212. package/dist/_chunks/pt-BR-WNOhafR4.js.map +0 -1
  213. package/dist/_chunks/pt-BR-sS1Xp3Jt.mjs.map +0 -1
  214. package/dist/_chunks/pt-Rf9W51IO.mjs.map +0 -1
  215. package/dist/_chunks/pt-guNR9Gax.js.map +0 -1
  216. package/dist/_chunks/ru-X3BMXDds.js.map +0 -1
  217. package/dist/_chunks/ru-qKHnd5or.mjs.map +0 -1
  218. package/dist/_chunks/sk-NWPw1oTN.js.map +0 -1
  219. package/dist/_chunks/sk-_Ryr-eTT.mjs.map +0 -1
  220. package/dist/_chunks/sv-76NnbB__.js.map +0 -1
  221. package/dist/_chunks/sv-BqzScFXS.mjs.map +0 -1
  222. package/dist/_chunks/th-WsknMEpq.mjs.map +0 -1
  223. package/dist/_chunks/th-cbppX21D.js.map +0 -1
  224. package/dist/_chunks/tr-6mm_Fmz7.js.map +0 -1
  225. package/dist/_chunks/tr-_DB1F1GW.mjs.map +0 -1
  226. package/dist/_chunks/uk-sI2I1ogF.js.map +0 -1
  227. package/dist/_chunks/uk-yxMSQAwI.mjs.map +0 -1
  228. package/dist/_chunks/useSyncRbac-LNOzRXJ5-5S0qhFuZ.js +0 -63
  229. package/dist/_chunks/useSyncRbac-LNOzRXJ5-5S0qhFuZ.js.map +0 -1
  230. package/dist/_chunks/useSyncRbac-LNOzRXJ5-PZzFwA1X.mjs +0 -45
  231. package/dist/_chunks/useSyncRbac-LNOzRXJ5-PZzFwA1X.mjs.map +0 -1
  232. package/dist/_chunks/vi-A3zJxaiI.js.map +0 -1
  233. package/dist/_chunks/vi-xY0zCW3d.mjs.map +0 -1
  234. package/dist/_chunks/zh-72SpmFXa.js.map +0 -1
  235. package/dist/_chunks/zh-Hans-ArWWtyP4.js.map +0 -1
  236. package/dist/_chunks/zh-Hans-E84cu4kP.mjs.map +0 -1
  237. package/dist/_chunks/zh-OFeldzbX.mjs.map +0 -1
  238. package/dist/style.css +0 -84
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uk-LHOivnhP.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -47,4 +47,4 @@ const vi = {
47
47
  "plugin.name": "Vai trò và Quyền"
48
48
  };
49
49
  exports.default = vi;
50
- //# sourceMappingURL=vi-A3zJxaiI.js.map
50
+ //# sourceMappingURL=vi-CdVRdKDw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vi-CdVRdKDw.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -47,4 +47,4 @@ const vi = {
47
47
  export {
48
48
  vi as default
49
49
  };
50
- //# sourceMappingURL=vi-xY0zCW3d.mjs.map
50
+ //# sourceMappingURL=vi-HW-EdMea.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vi-HW-EdMea.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -83,4 +83,4 @@ const zh = {
83
83
  export {
84
84
  zh as default
85
85
  };
86
- //# sourceMappingURL=zh-OFeldzbX.mjs.map
86
+ //# sourceMappingURL=zh-5hKkVPA4.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zh-5hKkVPA4.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -83,4 +83,4 @@ const zh = {
83
83
  "popUpWarning.warning.cancel": "您確定要取消變更嗎?"
84
84
  };
85
85
  exports.default = zh;
86
- //# sourceMappingURL=zh-72SpmFXa.js.map
86
+ //# sourceMappingURL=zh-Cuq8gMnF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zh-Cuq8gMnF.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -83,4 +83,4 @@ const zhHans = {
83
83
  export {
84
84
  zhHans as default
85
85
  };
86
- //# sourceMappingURL=zh-Hans-E84cu4kP.mjs.map
86
+ //# sourceMappingURL=zh-Hans-BHilK-yc.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zh-Hans-BHilK-yc.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -83,4 +83,4 @@ const zhHans = {
83
83
  "popUpWarning.warning.cancel": "你确定你要取消你的修改?"
84
84
  };
85
85
  exports.default = zhHans;
86
- //# sourceMappingURL=zh-Hans-ArWWtyP4.js.map
86
+ //# sourceMappingURL=zh-Hans-GQDMKtY4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zh-Hans-GQDMKtY4.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const index = require("../_chunks/index-JO4fO3Yj.js");
2
+ const index = require("../_chunks/index-C5qelx5h.js");
3
3
  module.exports = index.index;
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { i } from "../_chunks/index-PTS42_em.mjs";
1
+ import { i } from "../_chunks/index-CeYJys9a.mjs";
2
2
  export {
3
3
  i as default
4
4
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/plugin-users-permissions",
3
- "version": "5.0.0-beta.1",
3
+ "version": "5.0.0-beta.11",
4
4
  "description": "Protect your API with a full-authentication process based on JWT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -46,17 +46,17 @@
46
46
  "watch": "pack-up watch"
47
47
  },
48
48
  "dependencies": {
49
- "@strapi/design-system": "1.16.0",
50
- "@strapi/icons": "1.16.0",
51
- "@strapi/utils": "5.0.0-beta.1",
49
+ "@strapi/design-system": "2.0.0-beta.6",
50
+ "@strapi/icons": "2.0.0-beta.6",
51
+ "@strapi/utils": "5.0.0-beta.11",
52
52
  "bcryptjs": "2.4.3",
53
53
  "formik": "2.4.5",
54
54
  "grant-koa": "5.4.8",
55
55
  "immer": "9.0.21",
56
56
  "jsonwebtoken": "9.0.0",
57
57
  "jwk-to-pem": "2.0.5",
58
- "koa": "2.13.4",
59
- "koa2-ratelimit": "^1.1.2",
58
+ "koa": "2.15.2",
59
+ "koa2-ratelimit": "^1.1.3",
60
60
  "lodash": "4.17.21",
61
61
  "prop-types": "^15.8.1",
62
62
  "purest": "4.0.2",
@@ -67,23 +67,23 @@
67
67
  "yup": "0.32.9"
68
68
  },
69
69
  "devDependencies": {
70
- "@strapi/pack-up": "5.0.0-beta.1",
71
- "@strapi/strapi": "5.0.0-beta.1",
72
- "@testing-library/dom": "9.2.0",
73
- "@testing-library/react": "14.0.0",
74
- "@testing-library/user-event": "14.4.3",
70
+ "@strapi/pack-up": "5.0.0",
71
+ "@strapi/strapi": "5.0.0-beta.11",
72
+ "@testing-library/dom": "10.1.0",
73
+ "@testing-library/react": "15.0.7",
74
+ "@testing-library/user-event": "14.5.2",
75
75
  "msw": "1.3.0",
76
- "react": "^18.2.0",
77
- "react-dom": "^18.2.0",
76
+ "react": "18.3.1",
77
+ "react-dom": "18.3.1",
78
78
  "react-router-dom": "6.22.3",
79
- "styled-components": "5.3.11"
79
+ "styled-components": "6.1.8"
80
80
  },
81
81
  "peerDependencies": {
82
82
  "@strapi/strapi": "^5.0.0 || ^5.0.0-beta || ^5.0.0-alpha || ^5.0.0-rc",
83
83
  "react": "^17.0.0 || ^18.0.0",
84
84
  "react-dom": "^17.0.0 || ^18.0.0",
85
85
  "react-router-dom": "^6.0.0",
86
- "styled-components": "^5.2.1"
86
+ "styled-components": "^6.0.0"
87
87
  },
88
88
  "engines": {
89
89
  "node": ">=18.0.0 <=20.x.x",
@@ -96,5 +96,5 @@
96
96
  "required": true,
97
97
  "kind": "plugin"
98
98
  },
99
- "gitHead": "ae773621dfcbc67c49dc6fa52ac41ea5de676ecb"
99
+ "gitHead": "0991f0ac0f739e43e6a5f9ac79acb8c774c359bf"
100
100
  }
@@ -103,9 +103,9 @@ module.exports = async ({ strapi }) => {
103
103
  await initEmails(pluginStore);
104
104
  await initAdvancedOptions(pluginStore);
105
105
 
106
- await strapi.admin.services.permission.actionProvider.registerMany(
107
- usersPermissionsActions.actions
108
- );
106
+ await strapi
107
+ .service('admin::permission')
108
+ .actionProvider.registerMany(usersPermissionsActions.actions);
109
109
 
110
110
  await getService('users-permissions').initialize();
111
111
 
package/server/config.js CHANGED
@@ -18,6 +18,35 @@ module.exports = {
18
18
  },
19
19
  },
20
20
  },
21
+ callback: {
22
+ validate(callback, provider) {
23
+ let uCallback;
24
+ let uProviderCallback;
25
+
26
+ try {
27
+ uCallback = new URL(callback);
28
+ uProviderCallback = new URL(provider.callback);
29
+ } catch {
30
+ throw new Error('The callback is not a valid URL');
31
+ }
32
+
33
+ // Make sure the different origin matches
34
+ if (uCallback.origin !== uProviderCallback.origin) {
35
+ throw new Error(
36
+ `Forbidden callback provided: origins don't match. Please verify your config.`
37
+ );
38
+ }
39
+
40
+ // Make sure the different pathname matches
41
+ if (uCallback.pathname !== uProviderCallback.pathname) {
42
+ throw new Error(
43
+ `Forbidden callback provided: pathname don't match. Please verify your config.`
44
+ );
45
+ }
46
+
47
+ // NOTE: We're not checking the search parameters on purpose to allow passing different states
48
+ },
49
+ },
21
50
  }),
22
51
  validator() {},
23
52
  };
@@ -196,10 +196,28 @@ module.exports = {
196
196
  }
197
197
 
198
198
  // Ability to pass OAuth callback dynamically
199
- grantConfig[provider].callback =
200
- _.get(ctx, 'query.callback') ||
201
- _.get(ctx, 'session.grant.dynamic.callback') ||
202
- grantConfig[provider].callback;
199
+ const queryCustomCallback = _.get(ctx, 'query.callback');
200
+ const dynamicSessionCallback = _.get(ctx, 'session.grant.dynamic.callback');
201
+
202
+ const customCallback = queryCustomCallback ?? dynamicSessionCallback;
203
+
204
+ // The custom callback is validated to make sure it's not redirecting to an unwanted actor.
205
+ if (customCallback !== undefined) {
206
+ try {
207
+ // We're extracting the callback validator from the plugin config since it can be user-customized
208
+ const { validate: validateCallback } = strapi
209
+ .plugin('users-permissions')
210
+ .config('callback');
211
+
212
+ await validateCallback(customCallback, grantConfig[provider]);
213
+
214
+ grantConfig[provider].callback = customCallback;
215
+ } catch (e) {
216
+ throw new ValidationError('Invalid callback URL provided', { callback: customCallback });
217
+ }
218
+ }
219
+
220
+ // Build a valid redirect URI for the current provider
203
221
  grantConfig[provider].redirect_uri = getService('providers').buildRedirectUri(provider);
204
222
 
205
223
  return grant(grantConfig)(ctx, next);
@@ -25,7 +25,9 @@ const findEntityAndCheckPermissions = async (ability, action, model, id) => {
25
25
  throw new NotFoundError();
26
26
  }
27
27
 
28
- const pm = strapi.admin.services.permission.createPermissionsManager({ ability, action, model });
28
+ const pm = strapi
29
+ .service('admin::permission')
30
+ .createPermissionsManager({ ability, action, model });
29
31
 
30
32
  if (pm.ability.cannot(pm.action, pm.toSubject(doc))) {
31
33
  throw new ForbiddenError();
@@ -47,7 +49,7 @@ module.exports = {
47
49
 
48
50
  const { email, username } = body;
49
51
 
50
- const pm = strapi.admin.services.permission.createPermissionsManager({
52
+ const pm = strapi.service('admin::permission').createPermissionsManager({
51
53
  ability: userAbility,
52
54
  action: ACTIONS.create,
53
55
  model: userModel,
@@ -11,6 +11,7 @@ const bcrypt = require('bcryptjs');
11
11
  const urlJoin = require('url-join');
12
12
 
13
13
  const { sanitize } = require('@strapi/utils');
14
+ const { toNumber, getOr } = require('lodash/fp');
14
15
  const { getService } = require('../utils');
15
16
 
16
17
  const USER_MODEL_UID = 'plugin::users-permissions.user';
@@ -27,10 +28,26 @@ module.exports = ({ strapi }) => ({
27
28
  },
28
29
 
29
30
  /**
30
- * Promise to search count users
31
+ * Hashes password fields in the provided values object if they are present.
32
+ * It checks each key in the values object against the model's attributes and
33
+ * hashes it if the attribute type is 'password',
31
34
  *
32
- * @return {Promise}
35
+ * @param {object} values - The object containing the fields to be hashed.
36
+ * @return {object} The values object with hashed password fields if they were present.
33
37
  */
38
+ async ensureHashedPasswords(values) {
39
+ const attributes = strapi.getModel(USER_MODEL_UID).attributes;
40
+
41
+ for (const key in values) {
42
+ if (attributes[key] && attributes[key].type === 'password') {
43
+ // Check if a custom encryption.rounds has been set on the password attribute
44
+ const rounds = toNumber(getOr(10, 'encryption.rounds', attributes[key]));
45
+ values[key] = await bcrypt.hash(values[key], rounds);
46
+ }
47
+ }
48
+
49
+ return values;
50
+ },
34
51
 
35
52
  /**
36
53
  * Promise to add a/an user.
@@ -38,7 +55,7 @@ module.exports = ({ strapi }) => ({
38
55
  */
39
56
  async add(values) {
40
57
  return strapi.db.query(USER_MODEL_UID).create({
41
- data: values,
58
+ data: await this.ensureHashedPasswords(values),
42
59
  populate: ['role'],
43
60
  });
44
61
  },
@@ -52,7 +69,7 @@ module.exports = ({ strapi }) => ({
52
69
  async edit(userId, params = {}) {
53
70
  return strapi.db.query(USER_MODEL_UID).update({
54
71
  where: { id: userId },
55
- data: params,
72
+ data: await this.ensureHashedPasswords(params),
56
73
  populate: ['role'],
57
74
  });
58
75
  },
@@ -45,7 +45,7 @@ module.exports = ({ strapi }) => ({
45
45
  return action[Symbol.for('__type__')].includes('content-api');
46
46
  };
47
47
 
48
- _.forEach(strapi.api, (api, apiName) => {
48
+ _.forEach(strapi.apis, (api, apiName) => {
49
49
  const controllers = _.reduce(
50
50
  api.controllers,
51
51
  (acc, controller, controllerName) => {
@@ -105,7 +105,7 @@ module.exports = ({ strapi }) => ({
105
105
  async getRoutes() {
106
106
  const routesMap = {};
107
107
 
108
- _.forEach(strapi.api, (api, apiName) => {
108
+ _.forEach(strapi.apis, (api, apiName) => {
109
109
  const routes = _.flatMap(api.routes, (route) => {
110
110
  if (_.has(route, 'routes')) {
111
111
  return route.routes;
@@ -156,7 +156,7 @@ module.exports = ({ strapi }) => ({
156
156
 
157
157
  const permissionsFoundInDB = _.uniq(_.map(dbPermissions, 'action'));
158
158
 
159
- const appActions = _.flatMap(strapi.api, (api, apiName) => {
159
+ const appActions = _.flatMap(strapi.apis, (api, apiName) => {
160
160
  return _.flatMap(api.controllers, (controller, controllerName) => {
161
161
  return _.keys(controller).map((actionName) => {
162
162
  return `api::${apiName}.${controllerName}.${actionName}`;
@@ -2,8 +2,8 @@
2
2
 
3
3
  module.exports = ({ schema, key, attribute }, { remove }) => {
4
4
  if (
5
- attribute.type === 'relation' &&
6
- attribute.target === 'plugin::users-permissions.user' &&
5
+ attribute?.type === 'relation' &&
6
+ attribute?.target === 'plugin::users-permissions.user' &&
7
7
  schema.uid === 'plugin::users-permissions.role'
8
8
  ) {
9
9
  remove(key);