@strapi/plugin-users-permissions 0.0.0-next.fd9757603c653ca239c45d6e28ab536d2dae0b39 → 0.0.0-next.fdac61dd05ca665168f51f655f1d165b55ec4231

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 (307) hide show
  1. package/.eslintignore +2 -1
  2. package/admin/src/components/BoundRoute/index.jsx +3 -3
  3. package/admin/src/components/FormModal/Input/index.jsx +33 -32
  4. package/admin/src/components/FormModal/index.jsx +58 -69
  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 +8 -6
  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 +17 -34
  13. package/admin/src/pages/AdvancedSettings/index.jsx +84 -129
  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 +120 -140
  17. package/admin/src/pages/EmailTemplates/components/EmailTable.jsx +21 -18
  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 +97 -112
  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 +10 -19
  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 +28 -32
  28. package/admin/src/pages/Roles/pages/ListPage/index.jsx +79 -55
  29. package/admin/src/pluginId.js +2 -2
  30. package/admin/src/translations/en.json +1 -1
  31. package/admin/src/utils/prefixPluginTranslations.js +13 -0
  32. package/dist/admin/chunks/ar-BJwjobLp.js +45 -0
  33. package/dist/admin/chunks/ar-BJwjobLp.js.map +1 -0
  34. package/dist/admin/chunks/ar-G6bUGuUb.mjs +43 -0
  35. package/dist/admin/chunks/ar-G6bUGuUb.mjs.map +1 -0
  36. package/dist/admin/chunks/cs-Bu59JqhG.mjs +49 -0
  37. package/dist/admin/chunks/cs-Bu59JqhG.mjs.map +1 -0
  38. package/dist/admin/chunks/cs-uS_SIEo8.js +51 -0
  39. package/dist/admin/chunks/cs-uS_SIEo8.js.map +1 -0
  40. package/dist/admin/chunks/de-7MVMrqqI.js +63 -0
  41. package/dist/admin/chunks/de-7MVMrqqI.js.map +1 -0
  42. package/dist/admin/chunks/de-B81A69_5.mjs +61 -0
  43. package/dist/admin/chunks/de-B81A69_5.mjs.map +1 -0
  44. package/dist/admin/chunks/dk-BaelzvBE.mjs +85 -0
  45. package/dist/admin/chunks/dk-BaelzvBE.mjs.map +1 -0
  46. package/dist/admin/chunks/dk-DwCLGmy9.js +87 -0
  47. package/dist/admin/chunks/dk-DwCLGmy9.js.map +1 -0
  48. package/dist/admin/chunks/en-BhgCBe7M.mjs +85 -0
  49. package/dist/admin/chunks/en-BhgCBe7M.mjs.map +1 -0
  50. package/dist/admin/chunks/en-DwQjkHi_.js +87 -0
  51. package/dist/admin/chunks/en-DwQjkHi_.js.map +1 -0
  52. package/dist/admin/chunks/es-B0wXmvRj.mjs +85 -0
  53. package/dist/admin/chunks/es-B0wXmvRj.mjs.map +1 -0
  54. package/dist/admin/chunks/es-BOJOedG5.js +87 -0
  55. package/dist/admin/chunks/es-BOJOedG5.js.map +1 -0
  56. package/dist/admin/chunks/fr-BDNWCNs0.js +51 -0
  57. package/dist/admin/chunks/fr-BDNWCNs0.js.map +1 -0
  58. package/dist/admin/chunks/fr-CGYvGUXg.mjs +49 -0
  59. package/dist/admin/chunks/fr-CGYvGUXg.mjs.map +1 -0
  60. package/dist/admin/chunks/id-CNzbwFjA.mjs +61 -0
  61. package/dist/admin/chunks/id-CNzbwFjA.mjs.map +1 -0
  62. package/dist/admin/chunks/id-UqUPykHZ.js +63 -0
  63. package/dist/admin/chunks/id-UqUPykHZ.js.map +1 -0
  64. package/dist/admin/chunks/index-B-Z_z_qb.mjs +213 -0
  65. package/dist/admin/chunks/index-B-Z_z_qb.mjs.map +1 -0
  66. package/dist/admin/chunks/index-B2MJiSOD.mjs +279 -0
  67. package/dist/admin/chunks/index-B2MJiSOD.mjs.map +1 -0
  68. package/dist/admin/chunks/index-BPiDUOGt.js +471 -0
  69. package/dist/admin/chunks/index-BPiDUOGt.js.map +1 -0
  70. package/dist/admin/chunks/index-BtYUb_br.js +741 -0
  71. package/dist/admin/chunks/index-BtYUb_br.js.map +1 -0
  72. package/dist/admin/chunks/index-COXjHxFm.mjs +718 -0
  73. package/dist/admin/chunks/index-COXjHxFm.mjs.map +1 -0
  74. package/dist/admin/chunks/index-CkYplz_3.js +301 -0
  75. package/dist/admin/chunks/index-CkYplz_3.js.map +1 -0
  76. package/dist/admin/chunks/index-Cu2GvTiT.mjs +1516 -0
  77. package/dist/admin/chunks/index-Cu2GvTiT.mjs.map +1 -0
  78. package/dist/admin/chunks/index-D01zzG9y.js +1537 -0
  79. package/dist/admin/chunks/index-D01zzG9y.js.map +1 -0
  80. package/dist/admin/chunks/index-DAclA-0k.js +217 -0
  81. package/dist/admin/chunks/index-DAclA-0k.js.map +1 -0
  82. package/dist/admin/chunks/index-DVNIct2-.mjs +448 -0
  83. package/dist/admin/chunks/index-DVNIct2-.mjs.map +1 -0
  84. package/dist/admin/chunks/it-B2H2foTf.mjs +61 -0
  85. package/dist/admin/chunks/it-B2H2foTf.mjs.map +1 -0
  86. package/dist/admin/chunks/it-D5VuyoLU.js +63 -0
  87. package/dist/admin/chunks/it-D5VuyoLU.js.map +1 -0
  88. package/dist/admin/chunks/ja-C0z9d7L9.mjs +47 -0
  89. package/dist/admin/chunks/ja-C0z9d7L9.mjs.map +1 -0
  90. package/dist/admin/chunks/ja-MpqVsCgs.js +49 -0
  91. package/dist/admin/chunks/ja-MpqVsCgs.js.map +1 -0
  92. package/dist/admin/chunks/ko-Bm-grPSc.js +87 -0
  93. package/dist/admin/chunks/ko-Bm-grPSc.js.map +1 -0
  94. package/dist/admin/chunks/ko-CzUgzpeS.mjs +85 -0
  95. package/dist/admin/chunks/ko-CzUgzpeS.mjs.map +1 -0
  96. package/dist/admin/chunks/ms-CCacxjim.mjs +48 -0
  97. package/dist/admin/chunks/ms-CCacxjim.mjs.map +1 -0
  98. package/dist/admin/chunks/ms-D7eyBD5H.js +50 -0
  99. package/dist/admin/chunks/ms-D7eyBD5H.js.map +1 -0
  100. package/dist/admin/chunks/nl-BIOwAQtI.js +49 -0
  101. package/dist/admin/chunks/nl-BIOwAQtI.js.map +1 -0
  102. package/dist/admin/chunks/nl-DDC3nZW-.mjs +47 -0
  103. package/dist/admin/chunks/nl-DDC3nZW-.mjs.map +1 -0
  104. package/dist/admin/chunks/pl-D5BeNrg_.js +87 -0
  105. package/dist/admin/chunks/pl-D5BeNrg_.js.map +1 -0
  106. package/dist/admin/chunks/pl-XkS463rN.mjs +85 -0
  107. package/dist/admin/chunks/pl-XkS463rN.mjs.map +1 -0
  108. package/dist/admin/chunks/pt-BR-8cC7z8Km.mjs +43 -0
  109. package/dist/admin/chunks/pt-BR-8cC7z8Km.mjs.map +1 -0
  110. package/dist/admin/chunks/pt-BR-DxPBzQGx.js +45 -0
  111. package/dist/admin/chunks/pt-BR-DxPBzQGx.js.map +1 -0
  112. package/dist/admin/chunks/pt-DQpEvio8.mjs +47 -0
  113. package/dist/admin/chunks/pt-DQpEvio8.mjs.map +1 -0
  114. package/dist/admin/chunks/pt-kkCwzNvH.js +49 -0
  115. package/dist/admin/chunks/pt-kkCwzNvH.js.map +1 -0
  116. package/dist/admin/chunks/ru-BQ0gHmp3.js +87 -0
  117. package/dist/admin/chunks/ru-BQ0gHmp3.js.map +1 -0
  118. package/dist/admin/chunks/ru-nzL_7Mhg.mjs +85 -0
  119. package/dist/admin/chunks/ru-nzL_7Mhg.mjs.map +1 -0
  120. package/dist/admin/chunks/sk-Ddxc_tZA.mjs +49 -0
  121. package/dist/admin/chunks/sk-Ddxc_tZA.mjs.map +1 -0
  122. package/dist/admin/chunks/sk-nVwAPdYC.js +51 -0
  123. package/dist/admin/chunks/sk-nVwAPdYC.js.map +1 -0
  124. package/dist/admin/chunks/sv-BDfk2A-F.js +87 -0
  125. package/dist/admin/chunks/sv-BDfk2A-F.js.map +1 -0
  126. package/dist/admin/chunks/sv-By3RYpMG.mjs +85 -0
  127. package/dist/admin/chunks/sv-By3RYpMG.mjs.map +1 -0
  128. package/dist/admin/chunks/th-BtTtpHe2.js +61 -0
  129. package/dist/admin/chunks/th-BtTtpHe2.js.map +1 -0
  130. package/dist/admin/chunks/th-COl50vqb.mjs +59 -0
  131. package/dist/admin/chunks/th-COl50vqb.mjs.map +1 -0
  132. package/dist/admin/chunks/tr-80SJU6jg.mjs +84 -0
  133. package/dist/admin/chunks/tr-80SJU6jg.mjs.map +1 -0
  134. package/dist/admin/chunks/tr-Di-Nf7cT.js +86 -0
  135. package/dist/admin/chunks/tr-Di-Nf7cT.js.map +1 -0
  136. package/dist/admin/chunks/uk-CggQOx1l.js +50 -0
  137. package/dist/admin/chunks/uk-CggQOx1l.js.map +1 -0
  138. package/dist/admin/chunks/uk-D8JHuzch.mjs +48 -0
  139. package/dist/admin/chunks/uk-D8JHuzch.mjs.map +1 -0
  140. package/dist/admin/chunks/vi-69AF03Iv.mjs +49 -0
  141. package/dist/admin/chunks/vi-69AF03Iv.mjs.map +1 -0
  142. package/dist/admin/chunks/vi-D9cCsHsU.js +51 -0
  143. package/dist/admin/chunks/vi-D9cCsHsU.js.map +1 -0
  144. package/dist/admin/chunks/zh-BzSkqxo-.mjs +85 -0
  145. package/dist/admin/chunks/zh-BzSkqxo-.mjs.map +1 -0
  146. package/dist/admin/chunks/zh-BzWgJEzz.js +87 -0
  147. package/dist/admin/chunks/zh-BzWgJEzz.js.map +1 -0
  148. package/dist/admin/chunks/zh-Hans-CKqQbpsM.js +87 -0
  149. package/dist/admin/chunks/zh-Hans-CKqQbpsM.js.map +1 -0
  150. package/dist/admin/chunks/zh-Hans-DmDcSsp7.mjs +85 -0
  151. package/dist/admin/chunks/zh-Hans-DmDcSsp7.mjs.map +1 -0
  152. package/dist/admin/index.js +6 -3
  153. package/dist/admin/index.js.map +1 -1
  154. package/dist/admin/index.mjs +1 -5
  155. package/dist/admin/index.mjs.map +1 -1
  156. package/dist/server/index.js +4766 -0
  157. package/dist/server/index.js.map +1 -0
  158. package/dist/server/index.mjs +4764 -0
  159. package/dist/server/index.mjs.map +1 -0
  160. package/package.json +31 -32
  161. package/rollup.config.mjs +52 -0
  162. package/server/bootstrap/index.js +18 -51
  163. package/server/content-types/user/index.js +0 -1
  164. package/server/controllers/auth.js +41 -60
  165. package/server/controllers/content-manager-user.js +28 -30
  166. package/server/controllers/role.js +17 -4
  167. package/server/controllers/user.js +8 -9
  168. package/server/controllers/validation/auth.js +104 -25
  169. package/server/graphql/types/index.js +1 -0
  170. package/server/graphql/types/me.js +1 -0
  171. package/server/graphql/types/user-input.js +20 -0
  172. package/server/middlewares/rateLimit.js +1 -1
  173. package/server/register.js +2 -2
  174. package/server/services/jwt.js +3 -3
  175. package/server/services/permission.js +3 -7
  176. package/server/services/providers-registry.js +468 -279
  177. package/server/services/providers.js +10 -5
  178. package/server/services/role.js +15 -13
  179. package/server/services/user.js +56 -19
  180. package/server/services/users-permissions.js +15 -13
  181. package/server/utils/index.d.ts +2 -1
  182. package/server/utils/sanitize/sanitizers.js +7 -3
  183. package/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js +2 -2
  184. package/admin/src/pages/Roles/pages/ListPage/utils/api.js +0 -30
  185. package/dist/_chunks/ar-MvD8Ghac.mjs +0 -44
  186. package/dist/_chunks/ar-MvD8Ghac.mjs.map +0 -1
  187. package/dist/_chunks/ar-t5qTFaAD.js +0 -44
  188. package/dist/_chunks/ar-t5qTFaAD.js.map +0 -1
  189. package/dist/_chunks/cs-BMuXwxA1.mjs +0 -50
  190. package/dist/_chunks/cs-BMuXwxA1.mjs.map +0 -1
  191. package/dist/_chunks/cs-I8N4u-Sd.js +0 -50
  192. package/dist/_chunks/cs-I8N4u-Sd.js.map +0 -1
  193. package/dist/_chunks/de-YTjtq89K.js +0 -62
  194. package/dist/_chunks/de-YTjtq89K.js.map +0 -1
  195. package/dist/_chunks/de-zs2qqc0W.mjs +0 -62
  196. package/dist/_chunks/de-zs2qqc0W.mjs.map +0 -1
  197. package/dist/_chunks/dk-HctVBMsG.mjs +0 -86
  198. package/dist/_chunks/dk-HctVBMsG.mjs.map +0 -1
  199. package/dist/_chunks/dk-TF-dWjzl.js +0 -86
  200. package/dist/_chunks/dk-TF-dWjzl.js.map +0 -1
  201. package/dist/_chunks/en-CE3wEy_c.mjs +0 -86
  202. package/dist/_chunks/en-CE3wEy_c.mjs.map +0 -1
  203. package/dist/_chunks/en-m608rMZx.js +0 -86
  204. package/dist/_chunks/en-m608rMZx.js.map +0 -1
  205. package/dist/_chunks/es-9381tih_.mjs +0 -86
  206. package/dist/_chunks/es-9381tih_.mjs.map +0 -1
  207. package/dist/_chunks/es-XBQsB8_9.js +0 -86
  208. package/dist/_chunks/es-XBQsB8_9.js.map +0 -1
  209. package/dist/_chunks/fr-6cz3U-IF.js +0 -50
  210. package/dist/_chunks/fr-6cz3U-IF.js.map +0 -1
  211. package/dist/_chunks/fr-CMSc77If.mjs +0 -50
  212. package/dist/_chunks/fr-CMSc77If.mjs.map +0 -1
  213. package/dist/_chunks/id-RJ934rq-.js +0 -62
  214. package/dist/_chunks/id-RJ934rq-.js.map +0 -1
  215. package/dist/_chunks/id-SDuyIkZa.mjs +0 -62
  216. package/dist/_chunks/id-SDuyIkZa.mjs.map +0 -1
  217. package/dist/_chunks/index-7cDy9OFu.mjs +0 -301
  218. package/dist/_chunks/index-7cDy9OFu.mjs.map +0 -1
  219. package/dist/_chunks/index-F7bt_caK.mjs +0 -1159
  220. package/dist/_chunks/index-F7bt_caK.mjs.map +0 -1
  221. package/dist/_chunks/index-H1mhyWXP.mjs +0 -385
  222. package/dist/_chunks/index-H1mhyWXP.mjs.map +0 -1
  223. package/dist/_chunks/index-Uclk5uc0.mjs +0 -250
  224. package/dist/_chunks/index-Uclk5uc0.mjs.map +0 -1
  225. package/dist/_chunks/index-cNS7FpQt.js +0 -320
  226. package/dist/_chunks/index-cNS7FpQt.js.map +0 -1
  227. package/dist/_chunks/index-e4dnRonE.js +0 -407
  228. package/dist/_chunks/index-e4dnRonE.js.map +0 -1
  229. package/dist/_chunks/index-oFjO2L1S.mjs +0 -615
  230. package/dist/_chunks/index-oFjO2L1S.mjs.map +0 -1
  231. package/dist/_chunks/index-rU_BkerL.js +0 -1191
  232. package/dist/_chunks/index-rU_BkerL.js.map +0 -1
  233. package/dist/_chunks/index-sm9u2cPw.js +0 -638
  234. package/dist/_chunks/index-sm9u2cPw.js.map +0 -1
  235. package/dist/_chunks/index-vLWD-DRR.js +0 -249
  236. package/dist/_chunks/index-vLWD-DRR.js.map +0 -1
  237. package/dist/_chunks/it-YhZOlM2X.js +0 -62
  238. package/dist/_chunks/it-YhZOlM2X.js.map +0 -1
  239. package/dist/_chunks/it-bvH7DgQo.mjs +0 -62
  240. package/dist/_chunks/it-bvH7DgQo.mjs.map +0 -1
  241. package/dist/_chunks/ja-o_-JPvQv.mjs +0 -48
  242. package/dist/_chunks/ja-o_-JPvQv.mjs.map +0 -1
  243. package/dist/_chunks/ja-xssHUXFv.js +0 -48
  244. package/dist/_chunks/ja-xssHUXFv.js.map +0 -1
  245. package/dist/_chunks/ko-C3mHUSJa.js +0 -86
  246. package/dist/_chunks/ko-C3mHUSJa.js.map +0 -1
  247. package/dist/_chunks/ko-XJbPSez_.mjs +0 -86
  248. package/dist/_chunks/ko-XJbPSez_.mjs.map +0 -1
  249. package/dist/_chunks/ms-II5Ea73J.mjs +0 -49
  250. package/dist/_chunks/ms-II5Ea73J.mjs.map +0 -1
  251. package/dist/_chunks/ms-d0hfg65Z.js +0 -49
  252. package/dist/_chunks/ms-d0hfg65Z.js.map +0 -1
  253. package/dist/_chunks/nl-TA7TfK_5.js +0 -48
  254. package/dist/_chunks/nl-TA7TfK_5.js.map +0 -1
  255. package/dist/_chunks/nl-vEy6TN0K.mjs +0 -48
  256. package/dist/_chunks/nl-vEy6TN0K.mjs.map +0 -1
  257. package/dist/_chunks/pl-0pUL9hdA.js +0 -86
  258. package/dist/_chunks/pl-0pUL9hdA.js.map +0 -1
  259. package/dist/_chunks/pl-2VowaFGt.mjs +0 -86
  260. package/dist/_chunks/pl-2VowaFGt.mjs.map +0 -1
  261. package/dist/_chunks/pt-BR-WNOhafR4.js +0 -44
  262. package/dist/_chunks/pt-BR-WNOhafR4.js.map +0 -1
  263. package/dist/_chunks/pt-BR-sS1Xp3Jt.mjs +0 -44
  264. package/dist/_chunks/pt-BR-sS1Xp3Jt.mjs.map +0 -1
  265. package/dist/_chunks/pt-Rf9W51IO.mjs +0 -48
  266. package/dist/_chunks/pt-Rf9W51IO.mjs.map +0 -1
  267. package/dist/_chunks/pt-guNR9Gax.js +0 -48
  268. package/dist/_chunks/pt-guNR9Gax.js.map +0 -1
  269. package/dist/_chunks/ru-X3BMXDds.js +0 -86
  270. package/dist/_chunks/ru-X3BMXDds.js.map +0 -1
  271. package/dist/_chunks/ru-qKHnd5or.mjs +0 -86
  272. package/dist/_chunks/ru-qKHnd5or.mjs.map +0 -1
  273. package/dist/_chunks/sk-NWPw1oTN.js +0 -50
  274. package/dist/_chunks/sk-NWPw1oTN.js.map +0 -1
  275. package/dist/_chunks/sk-_Ryr-eTT.mjs +0 -50
  276. package/dist/_chunks/sk-_Ryr-eTT.mjs.map +0 -1
  277. package/dist/_chunks/sv-76NnbB__.js +0 -86
  278. package/dist/_chunks/sv-76NnbB__.js.map +0 -1
  279. package/dist/_chunks/sv-BqzScFXS.mjs +0 -86
  280. package/dist/_chunks/sv-BqzScFXS.mjs.map +0 -1
  281. package/dist/_chunks/th-WsknMEpq.mjs +0 -60
  282. package/dist/_chunks/th-WsknMEpq.mjs.map +0 -1
  283. package/dist/_chunks/th-cbppX21D.js +0 -60
  284. package/dist/_chunks/th-cbppX21D.js.map +0 -1
  285. package/dist/_chunks/tr-6mm_Fmz7.js +0 -85
  286. package/dist/_chunks/tr-6mm_Fmz7.js.map +0 -1
  287. package/dist/_chunks/tr-_DB1F1GW.mjs +0 -85
  288. package/dist/_chunks/tr-_DB1F1GW.mjs.map +0 -1
  289. package/dist/_chunks/uk-sI2I1ogF.js +0 -49
  290. package/dist/_chunks/uk-sI2I1ogF.js.map +0 -1
  291. package/dist/_chunks/uk-yxMSQAwI.mjs +0 -49
  292. package/dist/_chunks/uk-yxMSQAwI.mjs.map +0 -1
  293. package/dist/_chunks/vi-A3zJxaiI.js +0 -50
  294. package/dist/_chunks/vi-A3zJxaiI.js.map +0 -1
  295. package/dist/_chunks/vi-xY0zCW3d.mjs +0 -50
  296. package/dist/_chunks/vi-xY0zCW3d.mjs.map +0 -1
  297. package/dist/_chunks/zh-72SpmFXa.js +0 -86
  298. package/dist/_chunks/zh-72SpmFXa.js.map +0 -1
  299. package/dist/_chunks/zh-Hans-ArWWtyP4.js +0 -86
  300. package/dist/_chunks/zh-Hans-ArWWtyP4.js.map +0 -1
  301. package/dist/_chunks/zh-Hans-E84cu4kP.mjs +0 -86
  302. package/dist/_chunks/zh-Hans-E84cu4kP.mjs.map +0 -1
  303. package/dist/_chunks/zh-OFeldzbX.mjs +0 -86
  304. package/dist/_chunks/zh-OFeldzbX.mjs.map +0 -1
  305. package/packup.config.ts +0 -22
  306. package/server/bootstrap/grant-config.js +0 -140
  307. package/strapi-server.js +0 -3
package/.eslintignore CHANGED
@@ -1 +1,2 @@
1
- dist
1
+ dist
2
+ rollup.config.mjs
@@ -1,11 +1,11 @@
1
- import React from 'react';
1
+ import * as React from 'react';
2
2
 
3
3
  import { Box, Flex, Typography } from '@strapi/design-system';
4
4
  import map from 'lodash/map';
5
5
  import tail from 'lodash/tail';
6
6
  import PropTypes from 'prop-types';
7
7
  import { useIntl } from 'react-intl';
8
- import styled from 'styled-components';
8
+ import { styled } from 'styled-components';
9
9
 
10
10
  import getMethodColor from './getMethodColor';
11
11
 
@@ -24,7 +24,7 @@ function BoundRoute({ route }) {
24
24
 
25
25
  return (
26
26
  <Flex direction="column" alignItems="stretch" gap={2}>
27
- <Typography variant="delta" as="h3">
27
+ <Typography variant="delta" tag="h3">
28
28
  {formatMessage({
29
29
  id: 'users-permissions.BoundRoute.title',
30
30
  defaultMessage: 'Bound route to',
@@ -4,9 +4,9 @@
4
4
  *
5
5
  */
6
6
 
7
- import React from 'react';
7
+ import * as React from 'react';
8
8
 
9
- import { TextInput, ToggleInput } from '@strapi/design-system';
9
+ import { TextInput, Toggle, Field } from '@strapi/design-system';
10
10
  import PropTypes from 'prop-types';
11
11
  import { useIntl } from 'react-intl';
12
12
 
@@ -41,25 +41,26 @@ const Input = ({
41
41
 
42
42
  if (type === 'bool') {
43
43
  return (
44
- <ToggleInput
45
- aria-label={name}
46
- checked={value}
47
- disabled={disabled}
48
- hint={hint}
49
- label={label}
50
- name={name}
51
- offLabel={formatMessage({
52
- id: 'app.components.ToggleCheckbox.off-label',
53
- defaultMessage: 'Off',
54
- })}
55
- onLabel={formatMessage({
56
- id: 'app.components.ToggleCheckbox.on-label',
57
- defaultMessage: 'On',
58
- })}
59
- onChange={(e) => {
60
- onChange({ target: { name, value: e.target.checked } });
61
- }}
62
- />
44
+ <Field.Root hint={hint} name={name}>
45
+ <Field.Label>{label}</Field.Label>
46
+ <Toggle
47
+ aria-label={name}
48
+ checked={value}
49
+ disabled={disabled}
50
+ offLabel={formatMessage({
51
+ id: 'app.components.ToggleCheckbox.off-label',
52
+ defaultMessage: 'Off',
53
+ })}
54
+ onLabel={formatMessage({
55
+ id: 'app.components.ToggleCheckbox.on-label',
56
+ defaultMessage: 'On',
57
+ })}
58
+ onChange={(e) => {
59
+ onChange({ target: { name, value: e.target.checked } });
60
+ }}
61
+ />
62
+ <Field.Hint />
63
+ </Field.Root>
63
64
  );
64
65
  }
65
66
 
@@ -73,17 +74,17 @@ const Input = ({
73
74
  const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';
74
75
 
75
76
  return (
76
- <TextInput
77
- aria-label={name}
78
- disabled={disabled}
79
- error={errorMessage}
80
- label={label}
81
- name={name}
82
- onChange={onChange}
83
- placeholder={formattedPlaceholder}
84
- type={type}
85
- value={inputValue}
86
- />
77
+ <Field.Root error={errorMessage} name={name}>
78
+ <Field.Label>{label}</Field.Label>
79
+ <TextInput
80
+ disabled={disabled}
81
+ onChange={onChange}
82
+ placeholder={formattedPlaceholder}
83
+ type={type}
84
+ value={inputValue}
85
+ />
86
+ <Field.Error />
87
+ </Field.Root>
87
88
  );
88
89
  };
89
90
 
@@ -4,21 +4,10 @@
4
4
  *
5
5
  */
6
6
 
7
- import React from 'react';
7
+ import * as React from 'react';
8
8
 
9
- import {
10
- Button,
11
- Flex,
12
- Grid,
13
- GridItem,
14
- ModalBody,
15
- ModalFooter,
16
- ModalHeader,
17
- ModalLayout,
18
- } from '@strapi/design-system';
19
- import { Breadcrumbs, Crumb } from '@strapi/design-system/v2';
20
- import { Form } from '@strapi/helper-plugin';
21
- import { Formik } from 'formik';
9
+ import { Button, Flex, Grid, Modal, Breadcrumbs, Crumb } from '@strapi/design-system';
10
+ import { Form, Formik } from 'formik';
22
11
  import PropTypes from 'prop-types';
23
12
  import { useIntl } from 'react-intl';
24
13
 
@@ -36,71 +25,71 @@ const FormModal = ({
36
25
  }) => {
37
26
  const { formatMessage } = useIntl();
38
27
 
39
- if (!isOpen) {
40
- return null;
41
- }
42
-
43
28
  return (
44
- <ModalLayout onClose={onToggle} labelledBy="title">
45
- <ModalHeader>
46
- <Breadcrumbs label={headerBreadcrumbs.join(', ')}>
47
- {headerBreadcrumbs.map((crumb, index, arr) => (
48
- <Crumb isCurrent={index === arr.length - 1} key={crumb}>
49
- {crumb}
50
- </Crumb>
51
- ))}
52
- </Breadcrumbs>
53
- </ModalHeader>
54
- <Formik
55
- onSubmit={(values) => onSubmit(values)}
56
- initialValues={initialData}
57
- validationSchema={layout.schema}
58
- validateOnChange={false}
59
- >
60
- {({ errors, handleChange, values }) => {
61
- return (
62
- <Form>
63
- <ModalBody>
64
- <Flex direction="column" alignItems="stretch" gap={1}>
65
- <Grid gap={5}>
66
- {layout.form.map((row) => {
67
- return row.map((input) => {
68
- return (
69
- <GridItem key={input.name} col={input.size} xs={12}>
70
- <Input
71
- {...input}
72
- error={errors[input.name]}
73
- onChange={handleChange}
74
- value={values[input.name]}
75
- providerToEditName={providerToEditName}
76
- />
77
- </GridItem>
78
- );
79
- });
80
- })}
81
- </Grid>
82
- </Flex>
83
- </ModalBody>
84
- <ModalFooter
85
- startActions={
29
+ <Modal.Root open={isOpen} onOpenChange={onToggle}>
30
+ <Modal.Content>
31
+ <Modal.Header>
32
+ <Breadcrumbs label={headerBreadcrumbs.join(', ')}>
33
+ {headerBreadcrumbs.map((crumb, index, arr) => (
34
+ <Crumb isCurrent={index === arr.length - 1} key={crumb}>
35
+ {crumb}
36
+ </Crumb>
37
+ ))}
38
+ </Breadcrumbs>
39
+ </Modal.Header>
40
+ <Formik
41
+ onSubmit={(values) => onSubmit(values)}
42
+ initialValues={initialData}
43
+ validationSchema={layout.schema}
44
+ validateOnChange={false}
45
+ >
46
+ {({ errors, handleChange, values }) => {
47
+ return (
48
+ <Form>
49
+ <Modal.Body>
50
+ <Flex direction="column" alignItems="stretch" gap={1}>
51
+ <Grid.Root gap={5}>
52
+ {layout.form.map((row) => {
53
+ return row.map((input) => {
54
+ return (
55
+ <Grid.Item
56
+ key={input.name}
57
+ col={input.size}
58
+ xs={12}
59
+ direction="column"
60
+ alignItems="stretch"
61
+ >
62
+ <Input
63
+ {...input}
64
+ error={errors[input.name]}
65
+ onChange={handleChange}
66
+ value={values[input.name]}
67
+ providerToEditName={providerToEditName}
68
+ />
69
+ </Grid.Item>
70
+ );
71
+ });
72
+ })}
73
+ </Grid.Root>
74
+ </Flex>
75
+ </Modal.Body>
76
+ <Modal.Footer>
86
77
  <Button variant="tertiary" onClick={onToggle} type="button">
87
78
  {formatMessage({
88
79
  id: 'app.components.Button.cancel',
89
80
  defaultMessage: 'Cancel',
90
81
  })}
91
82
  </Button>
92
- }
93
- endActions={
94
83
  <Button type="submit" loading={isSubmiting}>
95
84
  {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}
96
85
  </Button>
97
- }
98
- />
99
- </Form>
100
- );
101
- }}
102
- </Formik>
103
- </ModalLayout>
86
+ </Modal.Footer>
87
+ </Form>
88
+ );
89
+ }}
90
+ </Formik>
91
+ </Modal.Content>
92
+ </Modal.Root>
104
93
  );
105
94
  };
106
95
 
@@ -1,9 +1,10 @@
1
1
  import { Box } from '@strapi/design-system';
2
- import styled, { css } from 'styled-components';
2
+ import { styled, css } from 'styled-components';
3
3
 
4
4
  const activeCheckboxWrapperStyles = css`
5
5
  background: ${(props) => props.theme.colors.primary100};
6
- svg {
6
+
7
+ #cog {
7
8
  opacity: 1;
8
9
  }
9
10
  `;
@@ -13,7 +14,7 @@ const CheckboxWrapper = styled(Box)`
13
14
  justify-content: space-between;
14
15
  align-items: center;
15
16
 
16
- svg {
17
+ #cog {
17
18
  opacity: 0;
18
19
  path {
19
20
  fill: ${(props) => props.theme.colors.primary600};
@@ -1,19 +1,11 @@
1
1
  import React, { useCallback, useMemo } from 'react';
2
2
 
3
- import {
4
- Box,
5
- Checkbox,
6
- Flex,
7
- Typography,
8
- Grid,
9
- GridItem,
10
- VisuallyHidden,
11
- } from '@strapi/design-system';
12
- import { Cog as CogIcon } from '@strapi/icons';
3
+ import { Box, Checkbox, Flex, Typography, Grid, VisuallyHidden } from '@strapi/design-system';
4
+ import { Cog } from '@strapi/icons';
13
5
  import get from 'lodash/get';
14
6
  import PropTypes from 'prop-types';
15
7
  import { useIntl } from 'react-intl';
16
- import styled from 'styled-components';
8
+ import { styled } from 'styled-components';
17
9
 
18
10
  import { useUsersPermissions } from '../../../contexts/UsersPermissionsContext';
19
11
 
@@ -71,28 +63,27 @@ const SubCategory = ({ subCategory }) => {
71
63
  <Box paddingLeft={4}>
72
64
  <Checkbox
73
65
  name={subCategory.name}
74
- value={hasAllActionsSelected}
75
- onValueChange={(value) =>
66
+ checked={hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected}
67
+ onCheckedChange={(value) =>
76
68
  handleChangeSelectAll({ target: { name: subCategory.name, value } })
77
69
  }
78
- indeterminate={hasSomeActionsSelected}
79
70
  >
80
71
  {formatMessage({ id: 'app.utils.select-all', defaultMessage: 'Select all' })}
81
72
  </Checkbox>
82
73
  </Box>
83
74
  </Flex>
84
75
  <Flex paddingTop={6} paddingBottom={6}>
85
- <Grid gap={2} style={{ flex: 1 }}>
76
+ <Grid.Root gap={2} style={{ flex: 1 }}>
86
77
  {subCategory.actions.map((action) => {
87
78
  const name = `${action.name}.enabled`;
88
79
 
89
80
  return (
90
- <GridItem col={6} key={action.name}>
81
+ <Grid.Item col={6} key={action.name} direction="column" alignItems="stretch">
91
82
  <CheckboxWrapper isActive={isActionSelected(action.name)} padding={2} hasRadius>
92
83
  <Checkbox
93
- value={get(modifiedData, name, false)}
84
+ checked={get(modifiedData, name, false)}
94
85
  name={name}
95
- onValueChange={(value) => onChange({ target: { name, value } })}
86
+ onCheckedChange={(value) => onChange({ target: { name, value } })}
96
87
  >
97
88
  {action.label}
98
89
  </Checkbox>
@@ -101,7 +92,7 @@ const SubCategory = ({ subCategory }) => {
101
92
  onClick={() => onSelectedAction(action.name)}
102
93
  style={{ display: 'inline-flex', alignItems: 'center' }}
103
94
  >
104
- <VisuallyHidden as="span">
95
+ <VisuallyHidden tag="span">
105
96
  {formatMessage(
106
97
  {
107
98
  id: 'app.utils.show-bound-route',
@@ -112,13 +103,13 @@ const SubCategory = ({ subCategory }) => {
112
103
  }
113
104
  )}
114
105
  </VisuallyHidden>
115
- <CogIcon />
106
+ <Cog id="cog" cursor="pointer" />
116
107
  </button>
117
108
  </CheckboxWrapper>
118
- </GridItem>
109
+ </Grid.Item>
119
110
  );
120
111
  })}
121
- </Grid>
112
+ </Grid.Root>
122
113
  </Flex>
123
114
  </Box>
124
115
  );
@@ -1,6 +1,6 @@
1
1
  import React, { useReducer } from 'react';
2
2
 
3
- import { Accordion, AccordionContent, AccordionToggle, Flex } from '@strapi/design-system';
3
+ import { Accordion, Flex } from '@strapi/design-system';
4
4
  import { useIntl } from 'react-intl';
5
5
 
6
6
  import { useUsersPermissions } from '../../contexts/UsersPermissionsContext';
@@ -13,42 +13,34 @@ import { initialState, reducer } from './reducer';
13
13
  const Permissions = () => {
14
14
  const { modifiedData } = useUsersPermissions();
15
15
  const { formatMessage } = useIntl();
16
- const [{ collapses }, dispatch] = useReducer(reducer, initialState, (state) =>
17
- init(state, modifiedData)
18
- );
19
-
20
- const handleToggle = (index) =>
21
- dispatch({
22
- type: 'TOGGLE_COLLAPSE',
23
- index,
24
- });
16
+ const [{ collapses }] = useReducer(reducer, initialState, (state) => init(state, modifiedData));
25
17
 
26
18
  return (
27
- <Flex direction="column" alignItems="stretch" gap={1}>
28
- {collapses.map((collapse, index) => (
29
- <Accordion
30
- expanded={collapse.isOpen}
31
- onToggle={() => handleToggle(index)}
32
- key={collapse.name}
33
- variant={index % 2 === 0 ? 'secondary' : undefined}
34
- >
35
- <AccordionToggle
36
- title={formatPluginName(collapse.name)}
37
- description={formatMessage(
38
- {
39
- id: 'users-permissions.Plugin.permissions.plugins.description',
40
- defaultMessage: 'Define all allowed actions for the {name} plugin.',
41
- },
42
- { name: collapse.name }
43
- )}
44
- variant={index % 2 ? 'primary' : 'secondary'}
45
- />
46
- <AccordionContent>
47
- <PermissionRow permissions={modifiedData[collapse.name]} name={collapse.name} />
48
- </AccordionContent>
49
- </Accordion>
50
- ))}
51
- </Flex>
19
+ <Accordion.Root size="M">
20
+ <Flex direction="column" alignItems="stretch" gap={1}>
21
+ {collapses.map((collapse, index) => (
22
+ <Accordion.Item key={collapse.name} value={collapse.name}>
23
+ <Accordion.Header variant={index % 2 === 0 ? 'secondary' : undefined}>
24
+ <Accordion.Trigger
25
+ caretPosition="right"
26
+ description={formatMessage(
27
+ {
28
+ id: 'users-permissions.Plugin.permissions.plugins.description',
29
+ defaultMessage: 'Define all allowed actions for the {name} plugin.',
30
+ },
31
+ { name: collapse.name }
32
+ )}
33
+ >
34
+ {formatPluginName(collapse.name)}
35
+ </Accordion.Trigger>
36
+ </Accordion.Header>
37
+ <Accordion.Content>
38
+ <PermissionRow permissions={modifiedData[collapse.name]} name={collapse.name} />
39
+ </Accordion.Content>
40
+ </Accordion.Item>
41
+ ))}
42
+ </Flex>
43
+ </Accordion.Root>
52
44
  );
53
45
  };
54
46
 
@@ -1,4 +1,4 @@
1
- import produce from 'immer';
1
+ import { produce } from 'immer';
2
2
 
3
3
  const initialState = {
4
4
  collapses: [],
@@ -1,6 +1,6 @@
1
- import React from 'react';
1
+ import * as React from 'react';
2
2
 
3
- import { Flex, GridItem, Typography } from '@strapi/design-system';
3
+ import { Flex, Grid, Typography } from '@strapi/design-system';
4
4
  import get from 'lodash/get';
5
5
  import isEmpty from 'lodash/isEmpty';
6
6
  import without from 'lodash/without';
@@ -22,7 +22,7 @@ const Policies = () => {
22
22
  : controllerRoutes.filter((o) => o.handler.endsWith(pathResolved));
23
23
 
24
24
  return (
25
- <GridItem
25
+ <Grid.Item
26
26
  col={5}
27
27
  background="neutral150"
28
28
  paddingTop={6}
@@ -30,6 +30,8 @@ const Policies = () => {
30
30
  paddingLeft={7}
31
31
  paddingRight={7}
32
32
  style={{ minHeight: '100%' }}
33
+ direction="column"
34
+ alignItems="stretch"
33
35
  >
34
36
  {selectedAction ? (
35
37
  <Flex direction="column" alignItems="stretch" gap={2}>
@@ -40,13 +42,13 @@ const Policies = () => {
40
42
  </Flex>
41
43
  ) : (
42
44
  <Flex direction="column" alignItems="stretch" gap={2}>
43
- <Typography variant="delta" as="h3">
45
+ <Typography variant="delta" tag="h3">
44
46
  {formatMessage({
45
47
  id: 'users-permissions.Policies.header.title',
46
48
  defaultMessage: 'Advanced settings',
47
49
  })}
48
50
  </Typography>
49
- <Typography as="p" textColor="neutral600">
51
+ <Typography tag="p" textColor="neutral600">
50
52
  {formatMessage({
51
53
  id: 'users-permissions.Policies.header.hint',
52
54
  defaultMessage:
@@ -55,7 +57,7 @@ const Policies = () => {
55
57
  </Typography>
56
58
  </Flex>
57
59
  )}
58
- </GridItem>
60
+ </Grid.Item>
59
61
  );
60
62
  };
61
63
 
@@ -1,6 +1,6 @@
1
1
  import React, { forwardRef, memo, useImperativeHandle, useReducer } from 'react';
2
2
 
3
- import { Flex, Grid, GridItem, Typography } from '@strapi/design-system';
3
+ import { Flex, Grid, Typography } from '@strapi/design-system';
4
4
  import PropTypes from 'prop-types';
5
5
  import { useIntl } from 'react-intl';
6
6
 
@@ -61,17 +61,25 @@ const UsersPermissions = forwardRef(({ permissions, routes }, ref) => {
61
61
 
62
62
  return (
63
63
  <UsersPermissionsProvider value={providerValue}>
64
- <Grid gap={0} shadow="filterShadow" hasRadius background="neutral0">
65
- <GridItem col={7} paddingTop={6} paddingBottom={6} paddingLeft={7} paddingRight={7}>
64
+ <Grid.Root gap={0} shadow="filterShadow" hasRadius background="neutral0">
65
+ <Grid.Item
66
+ col={7}
67
+ paddingTop={6}
68
+ paddingBottom={6}
69
+ paddingLeft={7}
70
+ paddingRight={7}
71
+ direction="column"
72
+ alignItems="stretch"
73
+ >
66
74
  <Flex direction="column" alignItems="stretch" gap={6}>
67
75
  <Flex direction="column" alignItems="stretch" gap={2}>
68
- <Typography variant="delta" as="h2">
76
+ <Typography variant="delta" tag="h2">
69
77
  {formatMessage({
70
78
  id: getTrad('Plugins.header.title'),
71
79
  defaultMessage: 'Permissions',
72
80
  })}
73
81
  </Typography>
74
- <Typography as="p" textColor="neutral600">
82
+ <Typography tag="p" textColor="neutral600">
75
83
  {formatMessage({
76
84
  id: getTrad('Plugins.header.description'),
77
85
  defaultMessage: 'Only actions bound by a route are listed below.',
@@ -80,9 +88,9 @@ const UsersPermissions = forwardRef(({ permissions, routes }, ref) => {
80
88
  </Flex>
81
89
  <Permissions />
82
90
  </Flex>
83
- </GridItem>
91
+ </Grid.Item>
84
92
  <Policies />
85
- </Grid>
93
+ </Grid.Root>
86
94
  </UsersPermissionsProvider>
87
95
  );
88
96
  });
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable consistent-return */
2
- import produce from 'immer';
2
+ import { produce } from 'immer';
3
3
  import get from 'lodash/get';
4
4
  import set from 'lodash/set';
5
5
  import take from 'lodash/take';
@@ -1,17 +1,10 @@
1
- // NOTE TO PLUGINS DEVELOPERS:
2
- // If you modify this file by adding new options to the plugin entry point
3
- // Here's the file: strapi/docs/3.0.0-beta.x/plugin-development/frontend-field-api.md
4
- // Here's the file: strapi/docs/3.0.0-beta.x/guides/registering-a-field-in-admin.md
5
- // Also the strapi-generate-plugins/files/admin/src/index.js needs to be updated
6
- // IF THE DOC IS NOT UPDATED THE PULL REQUEST WILL NOT BE MERGED
7
- import { prefixPluginTranslations } from '@strapi/helper-plugin';
8
-
9
- import pluginPkg from '../../package.json';
1
+ import { strapi as pkgStrapi } from '../../package.json';
10
2
 
11
3
  import { PERMISSIONS } from './constants';
12
4
  import getTrad from './utils/getTrad';
5
+ import { prefixPluginTranslations } from './utils/prefixPluginTranslations';
13
6
 
14
- const name = pluginPkg.strapi.name;
7
+ const name = pkgStrapi.name;
15
8
 
16
9
  export default {
17
10
  register(app) {
@@ -31,12 +24,8 @@ export default {
31
24
  defaultMessage: 'Roles',
32
25
  },
33
26
  id: 'roles',
34
- to: `/settings/users-permissions/roles`,
35
- async Component() {
36
- const component = await import('./pages/Roles');
37
-
38
- return component;
39
- },
27
+ to: `users-permissions/roles`,
28
+ Component: () => import('./pages/Roles'),
40
29
  permissions: PERMISSIONS.accessRoles,
41
30
  },
42
31
  {
@@ -45,12 +34,8 @@ export default {
45
34
  defaultMessage: 'Providers',
46
35
  },
47
36
  id: 'providers',
48
- to: `/settings/users-permissions/providers`,
49
- async Component() {
50
- const component = await import('./pages/Providers');
51
-
52
- return component;
53
- },
37
+ to: `users-permissions/providers`,
38
+ Component: () => import('./pages/Providers'),
54
39
  permissions: PERMISSIONS.readProviders,
55
40
  },
56
41
  {
@@ -59,12 +44,11 @@ export default {
59
44
  defaultMessage: 'Email templates',
60
45
  },
61
46
  id: 'email-templates',
62
- to: `/settings/users-permissions/email-templates`,
63
- async Component() {
64
- const component = await import('./pages/EmailTemplates');
65
-
66
- return component;
67
- },
47
+ to: `users-permissions/email-templates`,
48
+ Component: () =>
49
+ import('./pages/EmailTemplates').then((mod) => ({
50
+ default: mod.ProtectedEmailTemplatesPage,
51
+ })),
68
52
  permissions: PERMISSIONS.readEmailTemplates,
69
53
  },
70
54
  {
@@ -73,12 +57,11 @@ export default {
73
57
  defaultMessage: 'Advanced Settings',
74
58
  },
75
59
  id: 'advanced-settings',
76
- to: `/settings/users-permissions/advanced-settings`,
77
- async Component() {
78
- const component = await import('./pages/AdvancedSettings');
79
-
80
- return component;
81
- },
60
+ to: `users-permissions/advanced-settings`,
61
+ Component: () =>
62
+ import('./pages/AdvancedSettings').then((mod) => ({
63
+ default: mod.ProtectedAdvancedSettingsPage,
64
+ })),
82
65
  permissions: PERMISSIONS.readAdvancedSettings,
83
66
  },
84
67
  ]