@strapi/plugin-users-permissions 5.9.0 → 5.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/.eslintignore +2 -1
  2. package/admin/src/components/BoundRoute/index.jsx +1 -1
  3. package/admin/src/components/FormModal/Input/index.jsx +1 -1
  4. package/admin/src/components/FormModal/index.jsx +1 -1
  5. package/admin/src/components/Policies/index.jsx +1 -1
  6. package/admin/src/index.js +2 -2
  7. package/admin/src/pages/AdvancedSettings/index.jsx +1 -1
  8. package/admin/src/pages/EmailTemplates/components/EmailForm.jsx +1 -1
  9. package/admin/src/pages/EmailTemplates/components/EmailTable.jsx +1 -1
  10. package/admin/src/pages/Roles/index.jsx +1 -1
  11. package/admin/src/pages/Roles/pages/ListPage/components/TableBody.jsx +1 -1
  12. package/admin/src/pluginId.js +2 -2
  13. package/dist/admin/chunks/ar-BJwjobLp.js +45 -0
  14. package/dist/admin/chunks/ar-BJwjobLp.js.map +1 -0
  15. package/dist/admin/chunks/ar-G6bUGuUb.mjs +43 -0
  16. package/dist/admin/chunks/ar-G6bUGuUb.mjs.map +1 -0
  17. package/dist/admin/chunks/cs-Bu59JqhG.mjs +49 -0
  18. package/dist/admin/chunks/cs-Bu59JqhG.mjs.map +1 -0
  19. package/dist/admin/chunks/cs-uS_SIEo8.js +51 -0
  20. package/dist/admin/chunks/cs-uS_SIEo8.js.map +1 -0
  21. package/dist/admin/chunks/de-7MVMrqqI.js +63 -0
  22. package/dist/admin/chunks/de-7MVMrqqI.js.map +1 -0
  23. package/dist/admin/chunks/de-B81A69_5.mjs +61 -0
  24. package/dist/admin/chunks/de-B81A69_5.mjs.map +1 -0
  25. package/dist/admin/chunks/dk-BaelzvBE.mjs +85 -0
  26. package/dist/admin/chunks/dk-BaelzvBE.mjs.map +1 -0
  27. package/dist/admin/chunks/dk-DwCLGmy9.js +87 -0
  28. package/dist/admin/chunks/dk-DwCLGmy9.js.map +1 -0
  29. package/dist/admin/chunks/en-BhgCBe7M.mjs +85 -0
  30. package/dist/admin/chunks/en-BhgCBe7M.mjs.map +1 -0
  31. package/dist/admin/chunks/en-DwQjkHi_.js +87 -0
  32. package/dist/admin/chunks/en-DwQjkHi_.js.map +1 -0
  33. package/dist/admin/chunks/es-B0wXmvRj.mjs +85 -0
  34. package/dist/admin/chunks/es-B0wXmvRj.mjs.map +1 -0
  35. package/dist/admin/chunks/es-BOJOedG5.js +87 -0
  36. package/dist/admin/chunks/es-BOJOedG5.js.map +1 -0
  37. package/dist/admin/chunks/fr-BDNWCNs0.js +51 -0
  38. package/dist/admin/chunks/fr-BDNWCNs0.js.map +1 -0
  39. package/dist/admin/chunks/fr-CGYvGUXg.mjs +49 -0
  40. package/dist/admin/chunks/fr-CGYvGUXg.mjs.map +1 -0
  41. package/dist/admin/chunks/id-CNzbwFjA.mjs +61 -0
  42. package/dist/admin/chunks/id-CNzbwFjA.mjs.map +1 -0
  43. package/dist/admin/chunks/id-UqUPykHZ.js +63 -0
  44. package/dist/admin/chunks/id-UqUPykHZ.js.map +1 -0
  45. package/dist/admin/chunks/index-B-Z_z_qb.mjs +213 -0
  46. package/dist/admin/chunks/index-B-Z_z_qb.mjs.map +1 -0
  47. package/dist/admin/chunks/index-B2MJiSOD.mjs +279 -0
  48. package/dist/admin/chunks/index-B2MJiSOD.mjs.map +1 -0
  49. package/dist/admin/chunks/index-BPiDUOGt.js +471 -0
  50. package/dist/admin/chunks/index-BPiDUOGt.js.map +1 -0
  51. package/dist/admin/chunks/index-BtYUb_br.js +741 -0
  52. package/dist/admin/chunks/index-BtYUb_br.js.map +1 -0
  53. package/dist/admin/chunks/index-COXjHxFm.mjs +718 -0
  54. package/dist/admin/chunks/index-COXjHxFm.mjs.map +1 -0
  55. package/dist/admin/chunks/index-CkYplz_3.js +301 -0
  56. package/dist/admin/chunks/index-CkYplz_3.js.map +1 -0
  57. package/dist/admin/chunks/index-Cu2GvTiT.mjs +1516 -0
  58. package/dist/admin/chunks/index-Cu2GvTiT.mjs.map +1 -0
  59. package/dist/admin/chunks/index-D01zzG9y.js +1537 -0
  60. package/dist/admin/chunks/index-D01zzG9y.js.map +1 -0
  61. package/dist/admin/chunks/index-DAclA-0k.js +217 -0
  62. package/dist/admin/chunks/index-DAclA-0k.js.map +1 -0
  63. package/dist/admin/chunks/index-DVNIct2-.mjs +448 -0
  64. package/dist/admin/chunks/index-DVNIct2-.mjs.map +1 -0
  65. package/dist/admin/chunks/it-B2H2foTf.mjs +61 -0
  66. package/dist/admin/chunks/it-B2H2foTf.mjs.map +1 -0
  67. package/dist/admin/chunks/it-D5VuyoLU.js +63 -0
  68. package/dist/admin/chunks/it-D5VuyoLU.js.map +1 -0
  69. package/dist/admin/chunks/ja-C0z9d7L9.mjs +47 -0
  70. package/dist/admin/chunks/ja-C0z9d7L9.mjs.map +1 -0
  71. package/dist/admin/chunks/ja-MpqVsCgs.js +49 -0
  72. package/dist/admin/chunks/ja-MpqVsCgs.js.map +1 -0
  73. package/dist/admin/chunks/ko-Bm-grPSc.js +87 -0
  74. package/dist/admin/chunks/ko-Bm-grPSc.js.map +1 -0
  75. package/dist/admin/chunks/ko-CzUgzpeS.mjs +85 -0
  76. package/dist/admin/chunks/ko-CzUgzpeS.mjs.map +1 -0
  77. package/dist/admin/chunks/ms-CCacxjim.mjs +48 -0
  78. package/dist/admin/chunks/ms-CCacxjim.mjs.map +1 -0
  79. package/dist/admin/chunks/ms-D7eyBD5H.js +50 -0
  80. package/dist/admin/chunks/ms-D7eyBD5H.js.map +1 -0
  81. package/dist/admin/chunks/nl-BIOwAQtI.js +49 -0
  82. package/dist/admin/chunks/nl-BIOwAQtI.js.map +1 -0
  83. package/dist/admin/chunks/nl-DDC3nZW-.mjs +47 -0
  84. package/dist/admin/chunks/nl-DDC3nZW-.mjs.map +1 -0
  85. package/dist/admin/chunks/pl-D5BeNrg_.js +87 -0
  86. package/dist/admin/chunks/pl-D5BeNrg_.js.map +1 -0
  87. package/dist/admin/chunks/pl-XkS463rN.mjs +85 -0
  88. package/dist/admin/chunks/pl-XkS463rN.mjs.map +1 -0
  89. package/dist/admin/chunks/pt-BR-8cC7z8Km.mjs +43 -0
  90. package/dist/admin/chunks/pt-BR-8cC7z8Km.mjs.map +1 -0
  91. package/dist/admin/chunks/pt-BR-DxPBzQGx.js +45 -0
  92. package/dist/admin/chunks/pt-BR-DxPBzQGx.js.map +1 -0
  93. package/dist/admin/chunks/pt-DQpEvio8.mjs +47 -0
  94. package/dist/admin/chunks/pt-DQpEvio8.mjs.map +1 -0
  95. package/dist/admin/chunks/pt-kkCwzNvH.js +49 -0
  96. package/dist/admin/chunks/pt-kkCwzNvH.js.map +1 -0
  97. package/dist/admin/chunks/ru-BQ0gHmp3.js +87 -0
  98. package/dist/admin/chunks/ru-BQ0gHmp3.js.map +1 -0
  99. package/dist/admin/chunks/ru-nzL_7Mhg.mjs +85 -0
  100. package/dist/admin/chunks/ru-nzL_7Mhg.mjs.map +1 -0
  101. package/dist/admin/chunks/sk-Ddxc_tZA.mjs +49 -0
  102. package/dist/admin/chunks/sk-Ddxc_tZA.mjs.map +1 -0
  103. package/dist/admin/chunks/sk-nVwAPdYC.js +51 -0
  104. package/dist/admin/chunks/sk-nVwAPdYC.js.map +1 -0
  105. package/dist/admin/chunks/sv-BDfk2A-F.js +87 -0
  106. package/dist/admin/chunks/sv-BDfk2A-F.js.map +1 -0
  107. package/dist/admin/chunks/sv-By3RYpMG.mjs +85 -0
  108. package/dist/admin/chunks/sv-By3RYpMG.mjs.map +1 -0
  109. package/dist/admin/chunks/th-BtTtpHe2.js +61 -0
  110. package/dist/admin/chunks/th-BtTtpHe2.js.map +1 -0
  111. package/dist/admin/chunks/th-COl50vqb.mjs +59 -0
  112. package/dist/admin/chunks/th-COl50vqb.mjs.map +1 -0
  113. package/dist/admin/chunks/tr-80SJU6jg.mjs +84 -0
  114. package/dist/admin/chunks/tr-80SJU6jg.mjs.map +1 -0
  115. package/dist/admin/chunks/tr-Di-Nf7cT.js +86 -0
  116. package/dist/admin/chunks/tr-Di-Nf7cT.js.map +1 -0
  117. package/dist/admin/chunks/uk-CggQOx1l.js +50 -0
  118. package/dist/admin/chunks/uk-CggQOx1l.js.map +1 -0
  119. package/dist/admin/chunks/uk-D8JHuzch.mjs +48 -0
  120. package/dist/admin/chunks/uk-D8JHuzch.mjs.map +1 -0
  121. package/dist/admin/chunks/vi-69AF03Iv.mjs +49 -0
  122. package/dist/admin/chunks/vi-69AF03Iv.mjs.map +1 -0
  123. package/dist/admin/chunks/vi-D9cCsHsU.js +51 -0
  124. package/dist/admin/chunks/vi-D9cCsHsU.js.map +1 -0
  125. package/dist/admin/chunks/zh-BzSkqxo-.mjs +85 -0
  126. package/dist/admin/chunks/zh-BzSkqxo-.mjs.map +1 -0
  127. package/dist/admin/chunks/zh-BzWgJEzz.js +87 -0
  128. package/dist/admin/chunks/zh-BzWgJEzz.js.map +1 -0
  129. package/dist/admin/chunks/zh-Hans-CKqQbpsM.js +87 -0
  130. package/dist/admin/chunks/zh-Hans-CKqQbpsM.js.map +1 -0
  131. package/dist/admin/chunks/zh-Hans-DmDcSsp7.mjs +85 -0
  132. package/dist/admin/chunks/zh-Hans-DmDcSsp7.mjs.map +1 -0
  133. package/dist/admin/index.js +6 -2
  134. package/dist/admin/index.js.map +1 -1
  135. package/dist/admin/index.mjs +1 -4
  136. package/dist/admin/index.mjs.map +1 -1
  137. package/dist/server/index.js +4739 -0
  138. package/dist/server/index.js.map +1 -0
  139. package/dist/server/index.mjs +4737 -0
  140. package/dist/server/index.mjs.map +1 -0
  141. package/package.json +11 -10
  142. package/rollup.config.mjs +52 -0
  143. package/server/register.js +1 -1
  144. package/dist/_chunks/ar-BguGUqwK.js +0 -44
  145. package/dist/_chunks/ar-BguGUqwK.js.map +0 -1
  146. package/dist/_chunks/ar-CK8BRRXB.mjs +0 -44
  147. package/dist/_chunks/ar-CK8BRRXB.mjs.map +0 -1
  148. package/dist/_chunks/cs-BVigMk0l.mjs +0 -50
  149. package/dist/_chunks/cs-BVigMk0l.mjs.map +0 -1
  150. package/dist/_chunks/cs-BW8-K_GY.js +0 -50
  151. package/dist/_chunks/cs-BW8-K_GY.js.map +0 -1
  152. package/dist/_chunks/de-BKUdRFI4.mjs +0 -62
  153. package/dist/_chunks/de-BKUdRFI4.mjs.map +0 -1
  154. package/dist/_chunks/de-owXpVluI.js +0 -62
  155. package/dist/_chunks/de-owXpVluI.js.map +0 -1
  156. package/dist/_chunks/dk-BQiTK50l.mjs +0 -86
  157. package/dist/_chunks/dk-BQiTK50l.mjs.map +0 -1
  158. package/dist/_chunks/dk-LXAnbuBk.js +0 -86
  159. package/dist/_chunks/dk-LXAnbuBk.js.map +0 -1
  160. package/dist/_chunks/en-DOHtPf-2.mjs +0 -86
  161. package/dist/_chunks/en-DOHtPf-2.mjs.map +0 -1
  162. package/dist/_chunks/en-MHo5mcsU.js +0 -86
  163. package/dist/_chunks/en-MHo5mcsU.js.map +0 -1
  164. package/dist/_chunks/es-BwLCLXAQ.js +0 -86
  165. package/dist/_chunks/es-BwLCLXAQ.js.map +0 -1
  166. package/dist/_chunks/es-DNgOVMjD.mjs +0 -86
  167. package/dist/_chunks/es-DNgOVMjD.mjs.map +0 -1
  168. package/dist/_chunks/fr-DkgRugiU.mjs +0 -50
  169. package/dist/_chunks/fr-DkgRugiU.mjs.map +0 -1
  170. package/dist/_chunks/fr-DkhpSjjm.js +0 -50
  171. package/dist/_chunks/fr-DkhpSjjm.js.map +0 -1
  172. package/dist/_chunks/id-BTemOeTZ.js +0 -62
  173. package/dist/_chunks/id-BTemOeTZ.js.map +0 -1
  174. package/dist/_chunks/id-BdEsvnaF.mjs +0 -62
  175. package/dist/_chunks/id-BdEsvnaF.mjs.map +0 -1
  176. package/dist/_chunks/index-BCw6zVHf.mjs +0 -344
  177. package/dist/_chunks/index-BCw6zVHf.mjs.map +0 -1
  178. package/dist/_chunks/index-BSJxpmc1-C5aV1Jb8.js +0 -11116
  179. package/dist/_chunks/index-BSJxpmc1-C5aV1Jb8.js.map +0 -1
  180. package/dist/_chunks/index-BSJxpmc1-Cmh4INWh.mjs +0 -11093
  181. package/dist/_chunks/index-BSJxpmc1-Cmh4INWh.mjs.map +0 -1
  182. package/dist/_chunks/index-BdOumcDH.mjs +0 -262
  183. package/dist/_chunks/index-BdOumcDH.mjs.map +0 -1
  184. package/dist/_chunks/index-BifzOY9J.mjs +0 -1142
  185. package/dist/_chunks/index-BifzOY9J.mjs.map +0 -1
  186. package/dist/_chunks/index-Bk3q4O8M.js +0 -639
  187. package/dist/_chunks/index-Bk3q4O8M.js.map +0 -1
  188. package/dist/_chunks/index-Bl-UGfZ4.js +0 -365
  189. package/dist/_chunks/index-Bl-UGfZ4.js.map +0 -1
  190. package/dist/_chunks/index-BpBvwD7E.mjs +0 -617
  191. package/dist/_chunks/index-BpBvwD7E.mjs.map +0 -1
  192. package/dist/_chunks/index-CsepshPM.mjs +0 -253
  193. package/dist/_chunks/index-CsepshPM.mjs.map +0 -1
  194. package/dist/_chunks/index-DYLqtX6g.js +0 -1171
  195. package/dist/_chunks/index-DYLqtX6g.js.map +0 -1
  196. package/dist/_chunks/index-mrTAEHgX.js +0 -252
  197. package/dist/_chunks/index-mrTAEHgX.js.map +0 -1
  198. package/dist/_chunks/index-s_b84GLl.js +0 -280
  199. package/dist/_chunks/index-s_b84GLl.js.map +0 -1
  200. package/dist/_chunks/it-B-rv0E24.mjs +0 -62
  201. package/dist/_chunks/it-B-rv0E24.mjs.map +0 -1
  202. package/dist/_chunks/it-D1rH6V6_.js +0 -62
  203. package/dist/_chunks/it-D1rH6V6_.js.map +0 -1
  204. package/dist/_chunks/ja-C8K-VBPD.mjs +0 -48
  205. package/dist/_chunks/ja-C8K-VBPD.mjs.map +0 -1
  206. package/dist/_chunks/ja-DqShgTMf.js +0 -48
  207. package/dist/_chunks/ja-DqShgTMf.js.map +0 -1
  208. package/dist/_chunks/ko-B9DGEPWH.js +0 -86
  209. package/dist/_chunks/ko-B9DGEPWH.js.map +0 -1
  210. package/dist/_chunks/ko-Busb0wIY.mjs +0 -86
  211. package/dist/_chunks/ko-Busb0wIY.mjs.map +0 -1
  212. package/dist/_chunks/ms-ByvsQjRt.mjs +0 -49
  213. package/dist/_chunks/ms-ByvsQjRt.mjs.map +0 -1
  214. package/dist/_chunks/ms-CPBU3LWf.js +0 -49
  215. package/dist/_chunks/ms-CPBU3LWf.js.map +0 -1
  216. package/dist/_chunks/nl-5qO8Rpcy.mjs +0 -48
  217. package/dist/_chunks/nl-5qO8Rpcy.mjs.map +0 -1
  218. package/dist/_chunks/nl-CwNB6YoO.js +0 -48
  219. package/dist/_chunks/nl-CwNB6YoO.js.map +0 -1
  220. package/dist/_chunks/pl-BdIzifBE.mjs +0 -86
  221. package/dist/_chunks/pl-BdIzifBE.mjs.map +0 -1
  222. package/dist/_chunks/pl-Do9UD69f.js +0 -86
  223. package/dist/_chunks/pl-Do9UD69f.js.map +0 -1
  224. package/dist/_chunks/pt-BIO24ioG.mjs +0 -48
  225. package/dist/_chunks/pt-BIO24ioG.mjs.map +0 -1
  226. package/dist/_chunks/pt-BR-D7dZhxuP.js +0 -44
  227. package/dist/_chunks/pt-BR-D7dZhxuP.js.map +0 -1
  228. package/dist/_chunks/pt-BR-f0p23AQZ.mjs +0 -44
  229. package/dist/_chunks/pt-BR-f0p23AQZ.mjs.map +0 -1
  230. package/dist/_chunks/pt-fdvyOnUp.js +0 -48
  231. package/dist/_chunks/pt-fdvyOnUp.js.map +0 -1
  232. package/dist/_chunks/ru-C94rjPGA.js +0 -86
  233. package/dist/_chunks/ru-C94rjPGA.js.map +0 -1
  234. package/dist/_chunks/ru-VWy-IB7K.mjs +0 -86
  235. package/dist/_chunks/ru-VWy-IB7K.mjs.map +0 -1
  236. package/dist/_chunks/sk-BABEhykl.js +0 -50
  237. package/dist/_chunks/sk-BABEhykl.js.map +0 -1
  238. package/dist/_chunks/sk-B_LIcepm.mjs +0 -50
  239. package/dist/_chunks/sk-B_LIcepm.mjs.map +0 -1
  240. package/dist/_chunks/sv-ABLKOokl.mjs +0 -86
  241. package/dist/_chunks/sv-ABLKOokl.mjs.map +0 -1
  242. package/dist/_chunks/sv-Be43LhA9.js +0 -86
  243. package/dist/_chunks/sv-Be43LhA9.js.map +0 -1
  244. package/dist/_chunks/th-DKyP7ueR.mjs +0 -60
  245. package/dist/_chunks/th-DKyP7ueR.mjs.map +0 -1
  246. package/dist/_chunks/th-DgVhVLhL.js +0 -60
  247. package/dist/_chunks/th-DgVhVLhL.js.map +0 -1
  248. package/dist/_chunks/tr-B_idhkEs.js +0 -85
  249. package/dist/_chunks/tr-B_idhkEs.js.map +0 -1
  250. package/dist/_chunks/tr-qa1Q5UjC.mjs +0 -85
  251. package/dist/_chunks/tr-qa1Q5UjC.mjs.map +0 -1
  252. package/dist/_chunks/uk-BmRqbeQc.mjs +0 -49
  253. package/dist/_chunks/uk-BmRqbeQc.mjs.map +0 -1
  254. package/dist/_chunks/uk-LHOivnhP.js +0 -49
  255. package/dist/_chunks/uk-LHOivnhP.js.map +0 -1
  256. package/dist/_chunks/vi-CdVRdKDw.js +0 -50
  257. package/dist/_chunks/vi-CdVRdKDw.js.map +0 -1
  258. package/dist/_chunks/vi-HW-EdMea.mjs +0 -50
  259. package/dist/_chunks/vi-HW-EdMea.mjs.map +0 -1
  260. package/dist/_chunks/zh-5hKkVPA4.mjs +0 -86
  261. package/dist/_chunks/zh-5hKkVPA4.mjs.map +0 -1
  262. package/dist/_chunks/zh-Cuq8gMnF.js +0 -86
  263. package/dist/_chunks/zh-Cuq8gMnF.js.map +0 -1
  264. package/dist/_chunks/zh-Hans-BHilK-yc.mjs +0 -86
  265. package/dist/_chunks/zh-Hans-BHilK-yc.mjs.map +0 -1
  266. package/dist/_chunks/zh-Hans-GQDMKtY4.js +0 -86
  267. package/dist/_chunks/zh-Hans-GQDMKtY4.js.map +0 -1
  268. package/packup.config.ts +0 -22
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-D01zzG9y.js","sources":["../../../admin/src/contexts/UsersPermissionsContext/index.jsx","../../../admin/src/utils/formatPluginName.js","../../../admin/src/components/Permissions/init.js","../../../admin/src/components/Permissions/PermissionRow/CheckboxWrapper.jsx","../../../admin/src/components/Permissions/PermissionRow/SubCategory.jsx","../../../admin/src/components/Permissions/PermissionRow/index.jsx","../../../admin/src/components/Permissions/reducer.js","../../../admin/src/components/Permissions/index.jsx","../../../admin/src/components/BoundRoute/getMethodColor.js","../../../admin/src/components/BoundRoute/index.jsx","../../../admin/src/components/Policies/index.jsx","../../../admin/src/components/UsersPermissions/init.js","../../../admin/src/components/UsersPermissions/reducer.js","../../../admin/src/components/UsersPermissions/index.jsx","../../../admin/src/pages/Roles/constants.js","../../../admin/src/utils/cleanPermissions.js","../../../admin/src/pages/Roles/hooks/usePlugins.js","../../../admin/src/pages/Roles/pages/CreatePage.jsx","../../../admin/src/pages/Roles/pages/EditPage.jsx","../../../admin/src/pages/Roles/pages/ListPage/components/TableBody.jsx","../../../admin/src/pages/Roles/pages/ListPage/index.jsx","../../../admin/src/pages/Roles/index.jsx"],"sourcesContent":["import React, { createContext, useContext } from 'react';\n\nimport PropTypes from 'prop-types';\n\nconst UsersPermissions = createContext({});\n\nconst UsersPermissionsProvider = ({ children, value }) => {\n return <UsersPermissions.Provider value={value}>{children}</UsersPermissions.Provider>;\n};\n\nconst useUsersPermissions = () => useContext(UsersPermissions);\n\nUsersPermissionsProvider.propTypes = {\n children: PropTypes.node.isRequired,\n value: PropTypes.object.isRequired,\n};\n\nexport { UsersPermissions, UsersPermissionsProvider, useUsersPermissions };\n","import upperFirst from 'lodash/upperFirst';\n\nfunction formatPluginName(pluginSlug) {\n switch (pluginSlug) {\n case 'application':\n return 'Application';\n case 'plugin::content-manager':\n return 'Content manager';\n case 'plugin::content-type-builder':\n return 'Content types builder';\n case 'plugin::documentation':\n return 'Documentation';\n case 'plugin::email':\n return 'Email';\n case 'plugin::i18n':\n return 'i18n';\n case 'plugin::upload':\n return 'Upload';\n case 'plugin::users-permissions':\n return 'Users-permissions';\n default:\n return upperFirst(pluginSlug.replace('api::', '').replace('plugin::', ''));\n }\n}\n\nexport default formatPluginName;\n","const init = (initialState, permissions) => {\n const collapses = Object.keys(permissions)\n .sort()\n .map((name) => ({ name, isOpen: false }));\n\n return { ...initialState, collapses };\n};\n\nexport default init;\n","import { Box } from '@strapi/design-system';\nimport { styled, css } from 'styled-components';\n\nconst activeCheckboxWrapperStyles = css`\n background: ${(props) => props.theme.colors.primary100};\n\n #cog {\n opacity: 1;\n }\n`;\n\nconst CheckboxWrapper = styled(Box)`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n #cog {\n opacity: 0;\n path {\n fill: ${(props) => props.theme.colors.primary600};\n }\n }\n\n /* Show active style both on hover and when the action is selected */\n ${(props) => props.isActive && activeCheckboxWrapperStyles}\n &:hover {\n ${activeCheckboxWrapperStyles}\n }\n`;\n\nexport default CheckboxWrapper;\n","import React, { useCallback, useMemo } from 'react';\n\nimport { Box, Checkbox, Flex, Typography, Grid, VisuallyHidden } from '@strapi/design-system';\nimport { Cog } from '@strapi/icons';\nimport get from 'lodash/get';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useUsersPermissions } from '../../../contexts/UsersPermissionsContext';\n\nimport CheckboxWrapper from './CheckboxWrapper';\n\nconst Border = styled.div`\n flex: 1;\n align-self: center;\n border-top: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\nconst SubCategory = ({ subCategory }) => {\n const { formatMessage } = useIntl();\n const { onChange, onChangeSelectAll, onSelectedAction, selectedAction, modifiedData } =\n useUsersPermissions();\n\n const currentScopedModifiedData = useMemo(() => {\n return get(modifiedData, subCategory.name, {});\n }, [modifiedData, subCategory]);\n\n const hasAllActionsSelected = useMemo(() => {\n return Object.values(currentScopedModifiedData).every((action) => action.enabled === true);\n }, [currentScopedModifiedData]);\n\n const hasSomeActionsSelected = useMemo(() => {\n return (\n Object.values(currentScopedModifiedData).some((action) => action.enabled === true) &&\n !hasAllActionsSelected\n );\n }, [currentScopedModifiedData, hasAllActionsSelected]);\n\n const handleChangeSelectAll = useCallback(\n ({ target: { name } }) => {\n onChangeSelectAll({ target: { name, value: !hasAllActionsSelected } });\n },\n [hasAllActionsSelected, onChangeSelectAll]\n );\n\n const isActionSelected = useCallback(\n (actionName) => {\n return selectedAction === actionName;\n },\n [selectedAction]\n );\n\n return (\n <Box>\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n <Box paddingRight={4}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {subCategory.label}\n </Typography>\n </Box>\n <Border />\n <Box paddingLeft={4}>\n <Checkbox\n name={subCategory.name}\n checked={hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected}\n onCheckedChange={(value) =>\n handleChangeSelectAll({ target: { name: subCategory.name, value } })\n }\n >\n {formatMessage({ id: 'app.utils.select-all', defaultMessage: 'Select all' })}\n </Checkbox>\n </Box>\n </Flex>\n <Flex paddingTop={6} paddingBottom={6}>\n <Grid.Root gap={2} style={{ flex: 1 }}>\n {subCategory.actions.map((action) => {\n const name = `${action.name}.enabled`;\n\n return (\n <Grid.Item col={6} key={action.name} direction=\"column\" alignItems=\"stretch\">\n <CheckboxWrapper isActive={isActionSelected(action.name)} padding={2} hasRadius>\n <Checkbox\n checked={get(modifiedData, name, false)}\n name={name}\n onCheckedChange={(value) => onChange({ target: { name, value } })}\n >\n {action.label}\n </Checkbox>\n <button\n type=\"button\"\n onClick={() => onSelectedAction(action.name)}\n style={{ display: 'inline-flex', alignItems: 'center' }}\n >\n <VisuallyHidden tag=\"span\">\n {formatMessage(\n {\n id: 'app.utils.show-bound-route',\n defaultMessage: 'Show bound route for {route}',\n },\n {\n route: action.name,\n }\n )}\n </VisuallyHidden>\n <Cog id=\"cog\" cursor=\"pointer\" />\n </button>\n </CheckboxWrapper>\n </Grid.Item>\n );\n })}\n </Grid.Root>\n </Flex>\n </Box>\n );\n};\n\nSubCategory.propTypes = {\n subCategory: PropTypes.object.isRequired,\n};\n\nexport default SubCategory;\n","import React, { useMemo } from 'react';\n\nimport { Box } from '@strapi/design-system';\nimport sortBy from 'lodash/sortBy';\nimport PropTypes from 'prop-types';\n\nimport SubCategory from './SubCategory';\n\nconst PermissionRow = ({ name, permissions }) => {\n const subCategories = useMemo(() => {\n return sortBy(\n Object.values(permissions.controllers).reduce((acc, curr, index) => {\n const currentName = `${name}.controllers.${Object.keys(permissions.controllers)[index]}`;\n const actions = sortBy(\n Object.keys(curr).reduce((acc, current) => {\n return [\n ...acc,\n {\n ...curr[current],\n label: current,\n name: `${currentName}.${current}`,\n },\n ];\n }, []),\n 'label'\n );\n\n return [\n ...acc,\n {\n actions,\n label: Object.keys(permissions.controllers)[index],\n name: currentName,\n },\n ];\n }, []),\n 'label'\n );\n }, [name, permissions]);\n\n return (\n <Box padding={6}>\n {subCategories.map((subCategory) => (\n <SubCategory key={subCategory.name} subCategory={subCategory} />\n ))}\n </Box>\n );\n};\n\nPermissionRow.propTypes = {\n name: PropTypes.string.isRequired,\n permissions: PropTypes.object.isRequired,\n};\n\nexport default PermissionRow;\n","import { produce } from 'immer';\n\nconst initialState = {\n collapses: [],\n};\n\nconst reducer = (state, action) =>\n // eslint-disable-next-line consistent-return\n produce(state, (draftState) => {\n switch (action.type) {\n case 'TOGGLE_COLLAPSE': {\n draftState.collapses = state.collapses.map((collapse, index) => {\n if (index === action.index) {\n return { ...collapse, isOpen: !collapse.isOpen };\n }\n\n return { ...collapse, isOpen: false };\n });\n\n break;\n }\n default:\n return draftState;\n }\n });\n\nexport { initialState, reducer };\n","import React, { useReducer } from 'react';\n\nimport { Accordion, Flex } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useUsersPermissions } from '../../contexts/UsersPermissionsContext';\nimport formatPluginName from '../../utils/formatPluginName';\n\nimport init from './init';\nimport PermissionRow from './PermissionRow';\nimport { initialState, reducer } from './reducer';\n\nconst Permissions = () => {\n const { modifiedData } = useUsersPermissions();\n const { formatMessage } = useIntl();\n const [{ collapses }] = useReducer(reducer, initialState, (state) => init(state, modifiedData));\n\n return (\n <Accordion.Root size=\"M\">\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n {collapses.map((collapse, index) => (\n <Accordion.Item key={collapse.name} value={collapse.name}>\n <Accordion.Header variant={index % 2 === 0 ? 'secondary' : undefined}>\n <Accordion.Trigger\n caretPosition=\"right\"\n description={formatMessage(\n {\n id: 'users-permissions.Plugin.permissions.plugins.description',\n defaultMessage: 'Define all allowed actions for the {name} plugin.',\n },\n { name: collapse.name }\n )}\n >\n {formatPluginName(collapse.name)}\n </Accordion.Trigger>\n </Accordion.Header>\n <Accordion.Content>\n <PermissionRow permissions={modifiedData[collapse.name]} name={collapse.name} />\n </Accordion.Content>\n </Accordion.Item>\n ))}\n </Flex>\n </Accordion.Root>\n );\n};\n\nexport default Permissions;\n","const getMethodColor = (verb) => {\n switch (verb) {\n case 'POST': {\n return {\n text: 'success600',\n border: 'success200',\n background: 'success100',\n };\n }\n case 'GET': {\n return {\n text: 'secondary600',\n border: 'secondary200',\n background: 'secondary100',\n };\n }\n case 'PUT': {\n return {\n text: 'warning600',\n border: 'warning200',\n background: 'warning100',\n };\n }\n case 'DELETE': {\n return {\n text: 'danger600',\n border: 'danger200',\n background: 'danger100',\n };\n }\n default: {\n return {\n text: 'neutral600',\n border: 'neutral200',\n background: 'neutral100',\n };\n }\n }\n};\n\nexport default getMethodColor;\n","import * as React from 'react';\n\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport map from 'lodash/map';\nimport tail from 'lodash/tail';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport getMethodColor from './getMethodColor';\n\nconst MethodBox = styled(Box)`\n margin: -1px;\n border-radius: ${({ theme }) => theme.spaces[1]} 0 0 ${({ theme }) => theme.spaces[1]};\n`;\n\nfunction BoundRoute({ route }) {\n const { formatMessage } = useIntl();\n\n const { method, handler: title, path } = route;\n const formattedRoute = path ? tail(path.split('/')) : [];\n const [controller = '', action = ''] = title ? title.split('.') : [];\n const colors = getMethodColor(route.method);\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'users-permissions.BoundRoute.title',\n defaultMessage: 'Bound route to',\n })}\n &nbsp;\n <span>{controller}</span>\n <Typography variant=\"delta\" textColor=\"primary600\">\n .{action}\n </Typography>\n </Typography>\n <Flex hasRadius background=\"neutral0\" borderColor=\"neutral200\" gap={0}>\n <MethodBox background={colors.background} borderColor={colors.border} padding={2}>\n <Typography fontWeight=\"bold\" textColor={colors.text}>\n {method}\n </Typography>\n </MethodBox>\n <Box paddingLeft={2} paddingRight={2}>\n {map(formattedRoute, (value) => (\n <Typography key={value} textColor={value.includes(':') ? 'neutral600' : 'neutral900'}>\n /{value}\n </Typography>\n ))}\n </Box>\n </Flex>\n </Flex>\n );\n}\n\nBoundRoute.defaultProps = {\n route: {\n handler: 'Nocontroller.error',\n method: 'GET',\n path: '/there-is-no-path',\n },\n};\n\nBoundRoute.propTypes = {\n route: PropTypes.shape({\n handler: PropTypes.string,\n method: PropTypes.string,\n path: PropTypes.string,\n }),\n};\n\nexport default BoundRoute;\n","import * as React from 'react';\n\nimport { Flex, Grid, Typography } from '@strapi/design-system';\nimport get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\nimport without from 'lodash/without';\nimport { useIntl } from 'react-intl';\n\nimport { useUsersPermissions } from '../../contexts/UsersPermissionsContext';\nimport BoundRoute from '../BoundRoute';\n\nconst Policies = () => {\n const { formatMessage } = useIntl();\n const { selectedAction, routes } = useUsersPermissions();\n\n const path = without(selectedAction.split('.'), 'controllers');\n const controllerRoutes = get(routes, path[0]);\n const pathResolved = path.slice(1).join('.');\n\n const displayedRoutes = isEmpty(controllerRoutes)\n ? []\n : controllerRoutes.filter((o) => o.handler.endsWith(pathResolved));\n\n return (\n <Grid.Item\n col={5}\n background=\"neutral150\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n style={{ minHeight: '100%' }}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n {selectedAction ? (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n {displayedRoutes.map((route, key) => (\n // eslint-disable-next-line react/no-array-index-key\n <BoundRoute key={key} route={route} />\n ))}\n </Flex>\n ) : (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'users-permissions.Policies.header.title',\n defaultMessage: 'Advanced settings',\n })}\n </Typography>\n <Typography tag=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: 'users-permissions.Policies.header.hint',\n defaultMessage:\n \"Select the application's actions or the plugin's actions and click on the cog icon to display the bound route\",\n })}\n </Typography>\n </Flex>\n )}\n </Grid.Item>\n );\n};\n\nexport default Policies;\n","const init = (state, permissions, routes) => {\n return {\n ...state,\n initialData: permissions,\n modifiedData: permissions,\n routes,\n };\n};\n\nexport default init;\n","/* eslint-disable consistent-return */\nimport { produce } from 'immer';\nimport get from 'lodash/get';\nimport set from 'lodash/set';\nimport take from 'lodash/take';\n\nexport const initialState = {\n initialData: {},\n modifiedData: {},\n routes: {},\n selectedAction: '',\n policies: [],\n};\n\nconst reducer = (state, action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'ON_CHANGE': {\n const keysLength = action.keys.length;\n const isChangingCheckbox = action.keys[keysLength - 1] === 'enabled';\n\n if (action.value && isChangingCheckbox) {\n const selectedAction = take(action.keys, keysLength - 1).join('.');\n draftState.selectedAction = selectedAction;\n }\n\n set(draftState, ['modifiedData', ...action.keys], action.value);\n break;\n }\n case 'ON_CHANGE_SELECT_ALL': {\n const pathToValue = ['modifiedData', ...action.keys];\n const oldValues = get(state, pathToValue, {});\n const updatedValues = Object.keys(oldValues).reduce((acc, current) => {\n acc[current] = { ...oldValues[current], enabled: action.value };\n\n return acc;\n }, {});\n\n set(draftState, pathToValue, updatedValues);\n\n break;\n }\n case 'ON_RESET': {\n draftState.modifiedData = state.initialData;\n break;\n }\n case 'ON_SUBMIT_SUCCEEDED': {\n draftState.initialData = state.modifiedData;\n break;\n }\n\n case 'SELECT_ACTION': {\n const { actionToSelect } = action;\n draftState.selectedAction = actionToSelect === state.selectedAction ? '' : actionToSelect;\n break;\n }\n default:\n return draftState;\n }\n });\n\nexport default reducer;\n","import React, { forwardRef, memo, useImperativeHandle, useReducer } from 'react';\n\nimport { Flex, Grid, Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { UsersPermissionsProvider } from '../../contexts/UsersPermissionsContext';\nimport getTrad from '../../utils/getTrad';\nimport Permissions from '../Permissions';\nimport Policies from '../Policies';\n\nimport init from './init';\nimport reducer, { initialState } from './reducer';\n\nconst UsersPermissions = forwardRef(({ permissions, routes }, ref) => {\n const { formatMessage } = useIntl();\n const [state, dispatch] = useReducer(reducer, initialState, (state) =>\n init(state, permissions, routes)\n );\n\n useImperativeHandle(ref, () => ({\n getPermissions() {\n return {\n permissions: state.modifiedData,\n };\n },\n resetForm() {\n dispatch({ type: 'ON_RESET' });\n },\n setFormAfterSubmit() {\n dispatch({ type: 'ON_SUBMIT_SUCCEEDED' });\n },\n }));\n\n const handleChange = ({ target: { name, value } }) =>\n dispatch({\n type: 'ON_CHANGE',\n keys: name.split('.'),\n value: value === 'empty__string_value' ? '' : value,\n });\n\n const handleChangeSelectAll = ({ target: { name, value } }) =>\n dispatch({\n type: 'ON_CHANGE_SELECT_ALL',\n keys: name.split('.'),\n value,\n });\n\n const handleSelectedAction = (actionToSelect) =>\n dispatch({\n type: 'SELECT_ACTION',\n actionToSelect,\n });\n\n const providerValue = {\n ...state,\n onChange: handleChange,\n onChangeSelectAll: handleChangeSelectAll,\n onSelectedAction: handleSelectedAction,\n };\n\n return (\n <UsersPermissionsProvider value={providerValue}>\n <Grid.Root gap={0} shadow=\"filterShadow\" hasRadius background=\"neutral0\">\n <Grid.Item\n col={7}\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('Plugins.header.title'),\n defaultMessage: 'Permissions',\n })}\n </Typography>\n <Typography tag=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('Plugins.header.description'),\n defaultMessage: 'Only actions bound by a route are listed below.',\n })}\n </Typography>\n </Flex>\n <Permissions />\n </Flex>\n </Grid.Item>\n <Policies />\n </Grid.Root>\n </UsersPermissionsProvider>\n );\n});\n\nUsersPermissions.propTypes = {\n permissions: PropTypes.object.isRequired,\n routes: PropTypes.object.isRequired,\n};\n\nexport default memo(UsersPermissions);\n","import { translatedErrors } from '@strapi/strapi/admin';\nimport * as yup from 'yup';\n\nexport const createRoleSchema = yup.object().shape({\n name: yup.string().required(translatedErrors.required.id),\n description: yup.string().required(translatedErrors.required.id),\n});\n","import isEmpty from 'lodash/isEmpty';\n\nconst cleanPermissions = (permissions) =>\n Object.keys(permissions).reduce((acc, current) => {\n const currentPermission = permissions[current].controllers;\n const cleanedControllers = Object.keys(currentPermission).reduce((acc2, curr) => {\n if (isEmpty(currentPermission[curr])) {\n return acc2;\n }\n\n acc2[curr] = currentPermission[curr];\n\n return acc2;\n }, {});\n\n if (isEmpty(cleanedControllers)) {\n return acc;\n }\n\n acc[current] = { controllers: cleanedControllers };\n\n return acc;\n }, {});\n\nexport default cleanPermissions;\n","import { useEffect } from 'react';\n\nimport { useAPIErrorHandler, useNotification, useFetchClient } from '@strapi/strapi/admin';\nimport { useQueries } from 'react-query';\n\nimport { cleanPermissions, getTrad } from '../../../utils';\n\nexport const usePlugins = () => {\n const { toggleNotification } = useNotification();\n const { get } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler(getTrad);\n\n const [\n {\n data: permissions,\n isLoading: isLoadingPermissions,\n error: permissionsError,\n refetch: refetchPermissions,\n },\n { data: routes, isLoading: isLoadingRoutes, error: routesError, refetch: refetchRoutes },\n ] = useQueries([\n {\n queryKey: ['users-permissions', 'permissions'],\n async queryFn() {\n const {\n data: { permissions },\n } = await get(`/users-permissions/permissions`);\n\n return permissions;\n },\n },\n {\n queryKey: ['users-permissions', 'routes'],\n async queryFn() {\n const {\n data: { routes },\n } = await get(`/users-permissions/routes`);\n\n return routes;\n },\n },\n ]);\n\n const refetchQueries = async () => {\n await Promise.all([refetchPermissions(), refetchRoutes()]);\n };\n\n useEffect(() => {\n if (permissionsError) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(permissionsError),\n });\n }\n }, [toggleNotification, permissionsError, formatAPIError]);\n\n useEffect(() => {\n if (routesError) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(routesError),\n });\n }\n }, [toggleNotification, routesError, formatAPIError]);\n\n const isLoading = isLoadingPermissions || isLoadingRoutes;\n\n return {\n // TODO: these return values need to be memoized, otherwise\n // they will create infinite rendering loops when used as\n // effect dependencies\n permissions: permissions ? cleanPermissions(permissions) : {},\n routes: routes ?? {},\n\n getData: refetchQueries,\n isLoading,\n };\n};\n","import * as React from 'react';\n\nimport {\n Button,\n Flex,\n Grid,\n Main,\n Textarea,\n TextInput,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { Page, useTracking, useNotification, useFetchClient, Layouts } from '@strapi/strapi/admin';\nimport { Formik, Form } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\nimport { useNavigate } from 'react-router-dom';\n\nimport UsersPermissions from '../../../components/UsersPermissions';\nimport { PERMISSIONS } from '../../../constants';\nimport getTrad from '../../../utils/getTrad';\nimport { createRoleSchema } from '../constants';\nimport { usePlugins } from '../hooks/usePlugins';\n\nexport const CreatePage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n const { isLoading: isLoadingPlugins, permissions, routes } = usePlugins();\n const { trackUsage } = useTracking();\n const permissionsRef = React.useRef();\n const { post } = useFetchClient();\n const mutation = useMutation((body) => post(`/users-permissions/roles`, body), {\n onError() {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n },\n\n onSuccess() {\n trackUsage('didCreateRole');\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('Settings.roles.created'),\n defaultMessage: 'Role created',\n }),\n });\n\n // Forcing redirecting since we don't have the id in the response\n navigate(-1);\n },\n });\n\n const handleCreateRoleSubmit = async (data) => {\n // TODO: refactor. Child -> parent component communication is evil;\n // We should either move the provider one level up or move the state\n // straight into redux.\n const permissions = permissionsRef.current.getPermissions();\n\n await mutation.mutate({ ...data, ...permissions, users: [] });\n };\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'Roles' }\n )}\n </Page.Title>\n <Formik\n enableReinitialize\n initialValues={{ name: '', description: '' }}\n onSubmit={handleCreateRoleSubmit}\n validationSchema={createRoleSchema}\n >\n {({ handleSubmit, values, handleChange, errors }) => (\n <Form noValidate onSubmit={handleSubmit}>\n <Layouts.Header\n primaryAction={\n !isLoadingPlugins && (\n <Button type=\"submit\" loading={mutation.isLoading} startIcon={<Check />}>\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n )\n }\n title={formatMessage({\n id: 'Settings.roles.create.title',\n defaultMessage: 'Create a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n />\n <Layouts.Content>\n <Flex\n background=\"neutral0\"\n direction=\"column\"\n alignItems=\"stretch\"\n gap={7}\n hasRadius\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n shadow=\"filterShadow\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\">\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('EditPage.form.roles'),\n defaultMessage: 'Role details',\n })}\n </Typography>\n\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={\n errors?.name\n ? formatMessage({ id: errors.name, defaultMessage: 'Name is required' })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput value={values.name || ''} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={\n errors?.description\n ? formatMessage({\n id: errors.description,\n defaultMessage: 'Description is required',\n })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea value={values.description || ''} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n\n {!isLoadingPlugins && (\n <UsersPermissions\n ref={permissionsRef}\n permissions={permissions}\n routes={routes}\n />\n )}\n </Flex>\n </Layouts.Content>\n </Form>\n )}\n </Formik>\n </Main>\n );\n};\n\nexport const ProtectedRolesCreatePage = () => (\n <Page.Protect permissions={PERMISSIONS.createRole}>\n <CreatePage />\n </Page.Protect>\n);\n","import * as React from 'react';\n\nimport {\n Main,\n Button,\n Flex,\n TextInput,\n Textarea,\n Typography,\n Grid,\n Field,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport {\n Page,\n BackButton,\n useAPIErrorHandler,\n useNotification,\n useFetchClient,\n Layouts,\n} from '@strapi/strapi/admin';\nimport { Formik, Form } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useQuery, useMutation } from 'react-query';\nimport { useMatch } from 'react-router-dom';\n\nimport UsersPermissions from '../../../components/UsersPermissions';\nimport { PERMISSIONS } from '../../../constants';\nimport getTrad from '../../../utils/getTrad';\nimport { createRoleSchema } from '../constants';\nimport { usePlugins } from '../hooks/usePlugins';\n\nexport const EditPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const {\n params: { id },\n } = useMatch(`/settings/users-permissions/roles/:id`);\n const { get } = useFetchClient();\n const { isLoading: isLoadingPlugins, routes } = usePlugins();\n const {\n data: role,\n isLoading: isLoadingRole,\n refetch: refetchRole,\n } = useQuery(['users-permissions', 'role', id], async () => {\n // TODO: why doesn't this endpoint follow the admin API conventions?\n const {\n data: { role },\n } = await get(`/users-permissions/roles/${id}`);\n\n return role;\n });\n\n const permissionsRef = React.useRef();\n const { put } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n const mutation = useMutation((body) => put(`/users-permissions/roles/${id}`, body), {\n onError(error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n },\n\n async onSuccess() {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('Settings.roles.created'),\n defaultMessage: 'Role edited',\n }),\n });\n\n await refetchRole();\n },\n });\n\n const handleEditRoleSubmit = async (data) => {\n const permissions = permissionsRef.current.getPermissions();\n\n await mutation.mutate({ ...data, ...permissions, users: [] });\n };\n\n if (isLoadingRole) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'Roles' }\n )}\n </Page.Title>\n <Formik\n enableReinitialize\n initialValues={{ name: role.name, description: role.description }}\n onSubmit={handleEditRoleSubmit}\n validationSchema={createRoleSchema}\n >\n {({ handleSubmit, values, handleChange, errors }) => (\n <Form noValidate onSubmit={handleSubmit}>\n <Layouts.Header\n primaryAction={\n !isLoadingPlugins ? (\n <Button\n disabled={role.code === 'strapi-super-admin'}\n type=\"submit\"\n loading={mutation.isLoading}\n startIcon={<Check />}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n ) : null\n }\n title={role.name}\n subtitle={role.description}\n navigationAction={<BackButton fallback=\"..\" />}\n />\n <Layouts.Content>\n <Flex\n background=\"neutral0\"\n direction=\"column\"\n alignItems=\"stretch\"\n gap={7}\n hasRadius\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n shadow=\"filterShadow\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('EditPage.form.roles'),\n defaultMessage: 'Role details',\n })}\n </Typography>\n\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={\n errors?.name\n ? formatMessage({\n id: errors.name,\n defaultMessage: 'Name is required',\n })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput value={values.name || ''} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={\n errors?.description\n ? formatMessage({\n id: errors.description,\n defaultMessage: 'Description is required',\n })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea value={values.description || ''} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n\n {!isLoadingPlugins && (\n <UsersPermissions\n ref={permissionsRef}\n permissions={role.permissions}\n routes={routes}\n />\n )}\n </Flex>\n </Layouts.Content>\n </Form>\n )}\n </Formik>\n </Main>\n );\n};\n\nexport const ProtectedRolesEditPage = () => (\n <Page.Protect permissions={PERMISSIONS.updateRole}>\n <EditPage />\n </Page.Protect>\n);\n","import * as React from 'react';\n\nimport { Flex, IconButton, Link, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, NavLink } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nconst EditLink = styled(Link)`\n align-items: center;\n height: 3.2rem;\n width: 3.2rem;\n display: flex;\n justify-content: center;\n padding: ${({ theme }) => `${theme.spaces[2]}`};\n\n svg {\n height: 1.6rem;\n width: 1.6rem;\n\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n\n &:hover,\n &:focus {\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral800};\n }\n }\n }\n`;\n\nconst TableBody = ({ sortedRoles, canDelete, canUpdate, setRoleToDelete, onDelete }) => {\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const [showConfirmDelete, setShowConfirmDelete] = onDelete;\n\n const checkCanDeleteRole = (role) =>\n canDelete && !['public', 'authenticated'].includes(role.type);\n\n const handleClickDelete = (id) => {\n setRoleToDelete(id);\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n return (\n <Tbody>\n {sortedRoles?.map((role) => (\n <Tr cursor=\"pointer\" key={role.name} onClick={() => navigate(role.id.toString())}>\n <Td width=\"20%\">\n <Typography>{role.name}</Typography>\n </Td>\n <Td width=\"50%\">\n <Typography>{role.description}</Typography>\n </Td>\n <Td width=\"30%\">\n <Typography>\n {formatMessage(\n {\n id: 'Roles.RoleRow.user-count',\n defaultMessage: '{number, plural, =0 {# user} one {# user} other {# users}}',\n },\n { number: role.nb_users }\n )}\n </Typography>\n </Td>\n <Td>\n <Flex justifyContent=\"end\" onClick={(e) => e.stopPropagation()}>\n {canUpdate ? (\n <EditLink\n tag={NavLink}\n to={role.id.toString()}\n aria-label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: `${role.name}` }\n )}\n >\n <Pencil />\n </EditLink>\n ) : null}\n\n {checkCanDeleteRole(role) && (\n <IconButton\n onClick={() => handleClickDelete(role.id.toString())}\n variant=\"ghost\"\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: `${role.name}` }\n )}\n >\n <Trash />\n </IconButton>\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n );\n};\n\nexport default TableBody;\n\nTableBody.defaultProps = {\n canDelete: false,\n canUpdate: false,\n};\n\nTableBody.propTypes = {\n onDelete: PropTypes.array.isRequired,\n setRoleToDelete: PropTypes.func.isRequired,\n sortedRoles: PropTypes.array.isRequired,\n canDelete: PropTypes.bool,\n canUpdate: PropTypes.bool,\n};\n","import React, { useState } from 'react';\n\nimport {\n Table,\n Th,\n Thead,\n Tr,\n Typography,\n useNotifyAT,\n VisuallyHidden,\n EmptyStateLayout,\n useCollator,\n useFilter,\n LinkButton,\n Dialog,\n} from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport {\n ConfirmDialog,\n useTracking,\n Page,\n SearchInput,\n useNotification,\n useQueryParams,\n useFetchClient,\n useRBAC,\n Layouts,\n} from '@strapi/strapi/admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery } from 'react-query';\nimport { NavLink } from 'react-router-dom';\n\nimport { PERMISSIONS } from '../../../../constants';\nimport { getTrad } from '../../../../utils';\n\nimport TableBody from './components/TableBody';\n\nexport const RolesListPage = () => {\n const { trackUsage } = useTracking();\n const { formatMessage, locale } = useIntl();\n const { toggleNotification } = useNotification();\n const { notifyStatus } = useNotifyAT();\n const [{ query }] = useQueryParams();\n const _q = query?._q || '';\n const [showConfirmDelete, setShowConfirmDelete] = useState(false);\n const [roleToDelete, setRoleToDelete] = useState();\n const { del, get } = useFetchClient();\n\n const {\n isLoading: isLoadingForPermissions,\n allowedActions: { canRead, canDelete, canCreate, canUpdate },\n } = useRBAC({\n create: PERMISSIONS.createRole,\n read: PERMISSIONS.readRoles,\n update: PERMISSIONS.updateRole,\n delete: PERMISSIONS.deleteRole,\n });\n\n const {\n isLoading: isLoadingForData,\n data: { roles },\n isFetching,\n refetch,\n } = useQuery('get-roles', () => fetchData(toggleNotification, formatMessage, notifyStatus), {\n initialData: {},\n enabled: canRead,\n });\n\n const { contains } = useFilter(locale, {\n sensitivity: 'base',\n });\n\n /**\n * @type {Intl.Collator}\n */\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const isLoading = isLoadingForData || isFetching || isLoadingForPermissions;\n\n const handleShowConfirmDelete = () => {\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const deleteData = async (id, formatMessage, toggleNotification) => {\n try {\n await del(`/users-permissions/roles/${id}`);\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n };\n\n const fetchData = async (toggleNotification, formatMessage, notifyStatus) => {\n try {\n const { data } = await get('/users-permissions/roles');\n notifyStatus('The roles have loaded successfully');\n\n return data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n\n throw new Error(err);\n }\n };\n\n const emptyLayout = {\n roles: {\n id: getTrad('Roles.empty'),\n defaultMessage: \"You don't have any roles yet.\",\n },\n search: {\n id: getTrad('Roles.empty.search'),\n defaultMessage: 'No roles match the search.',\n },\n };\n\n const pageTitle = formatMessage({\n id: 'global.roles',\n defaultMessage: 'Roles',\n });\n\n const deleteMutation = useMutation((id) => deleteData(id, formatMessage, toggleNotification), {\n async onSuccess() {\n await refetch();\n },\n });\n\n const handleConfirmDelete = async () => {\n await deleteMutation.mutateAsync(roleToDelete);\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const sortedRoles = (roles || [])\n .filter((role) => contains(role.name, _q) || contains(role.description, _q))\n .sort(\n (a, b) => formatter.compare(a.name, b.name) || formatter.compare(a.description, b.description)\n );\n\n const emptyContent = _q && !sortedRoles.length ? 'search' : 'roles';\n\n const colCount = 4;\n const rowCount = (roles?.length || 0) + 1;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Layouts.Root>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: pageTitle }\n )}\n </Page.Title>\n <Page.Main>\n <Layouts.Header\n title={formatMessage({\n id: 'global.roles',\n defaultMessage: 'Roles',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.list.description',\n defaultMessage: 'List of roles',\n })}\n primaryAction={\n canCreate ? (\n <LinkButton\n to=\"new\"\n tag={NavLink}\n onClick={() => trackUsage('willCreateRole')}\n startIcon={<Plus />}\n size=\"S\"\n >\n {formatMessage({\n id: getTrad('List.button.roles'),\n defaultMessage: 'Add new role',\n })}\n </LinkButton>\n ) : null\n }\n />\n\n <Layouts.Action\n startActions={\n <SearchInput\n label={formatMessage({\n id: 'app.component.search.label',\n defaultMessage: 'Search',\n })}\n />\n }\n />\n\n <Layouts.Content>\n {!canRead && <Page.NoPermissions />}\n {canRead && sortedRoles && sortedRoles?.length ? (\n <Table colCount={colCount} rowCount={rowCount}>\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({ id: 'global.name', defaultMessage: 'Name' })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'global.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <TableBody\n sortedRoles={sortedRoles}\n canDelete={canDelete}\n canUpdate={canUpdate}\n permissions={PERMISSIONS}\n setRoleToDelete={setRoleToDelete}\n onDelete={[showConfirmDelete, setShowConfirmDelete]}\n />\n </Table>\n ) : (\n <EmptyStateLayout content={formatMessage(emptyLayout[emptyContent])} />\n )}\n </Layouts.Content>\n <Dialog.Root open={showConfirmDelete} onOpenChange={handleShowConfirmDelete}>\n <ConfirmDialog onConfirm={handleConfirmDelete} />\n </Dialog.Root>\n </Page.Main>\n </Layouts.Root>\n );\n};\n\nexport const ProtectedRolesListPage = () => {\n return (\n <Page.Protect permissions={PERMISSIONS.accessRoles}>\n <RolesListPage />\n </Page.Protect>\n );\n};\n","import * as React from 'react';\n\nimport { Page } from '@strapi/strapi/admin';\nimport { Route, Routes } from 'react-router-dom';\n\nimport { PERMISSIONS } from '../../constants';\n\nimport { ProtectedRolesCreatePage } from './pages/CreatePage';\nimport { ProtectedRolesEditPage } from './pages/EditPage';\nimport { ProtectedRolesListPage } from './pages/ListPage';\n\nconst Roles = () => {\n return (\n <Page.Protect permissions={PERMISSIONS.accessRoles}>\n <Routes>\n <Route index element={<ProtectedRolesListPage />} />\n <Route path=\"new\" element={<ProtectedRolesCreatePage />} />\n <Route path=\":id\" element={<ProtectedRolesEditPage />} />\n </Routes>\n </Page.Protect>\n );\n};\n\nexport default Roles;\n"],"names":["UsersPermissions","createContext","UsersPermissionsProvider","children","value","_jsx","Provider","useUsersPermissions","useContext","propTypes","PropTypes","node","isRequired","object","formatPluginName","pluginSlug","upperFirst","replace","init","initialState","permissions","collapses","Object","keys","sort","map","name","isOpen","activeCheckboxWrapperStyles","css","props","theme","colors","primary100","CheckboxWrapper","styled","Box","primary600","isActive","Border","div","neutral150","SubCategory","subCategory","formatMessage","useIntl","onChange","onChangeSelectAll","onSelectedAction","selectedAction","modifiedData","currentScopedModifiedData","useMemo","get","hasAllActionsSelected","values","every","action","enabled","hasSomeActionsSelected","some","handleChangeSelectAll","useCallback","target","isActionSelected","actionName","_jsxs","Flex","justifyContent","alignItems","paddingRight","Typography","variant","textColor","label","paddingLeft","Checkbox","checked","onCheckedChange","id","defaultMessage","paddingTop","paddingBottom","Grid","Root","gap","style","flex","actions","Item","col","direction","padding","hasRadius","button","type","onClick","display","VisuallyHidden","tag","route","Cog","cursor","PermissionRow","subCategories","sortBy","controllers","reduce","acc","curr","index","currentName","current","string","reducer","state","produce","draftState","collapse","Permissions","useReducer","Accordion","size","Header","undefined","Trigger","caretPosition","description","Content","getMethodColor","verb","text","border","background","MethodBox","spaces","BoundRoute","method","handler","title","path","formattedRoute","tail","split","controller","span","borderColor","fontWeight","includes","defaultProps","shape","Policies","routes","without","controllerRoutes","pathResolved","slice","join","displayedRoutes","isEmpty","filter","o","endsWith","minHeight","key","initialData","policies","keysLength","length","isChangingCheckbox","take","set","pathToValue","oldValues","updatedValues","actionToSelect","forwardRef","ref","dispatch","useImperativeHandle","getPermissions","resetForm","setFormAfterSubmit","handleChange","handleSelectedAction","providerValue","shadow","getTrad","memo","createRoleSchema","yup","required","translatedErrors","cleanPermissions","currentPermission","cleanedControllers","acc2","usePlugins","toggleNotification","useNotification","useFetchClient","formatAPIError","useAPIErrorHandler","data","isLoading","isLoadingPermissions","error","permissionsError","refetch","refetchPermissions","isLoadingRoutes","routesError","refetchRoutes","useQueries","queryKey","queryFn","refetchQueries","Promise","all","useEffect","message","getData","CreatePage","navigate","useNavigate","isLoadingPlugins","trackUsage","useTracking","permissionsRef","React","useRef","post","mutation","useMutation","body","onError","onSuccess","handleCreateRoleSubmit","mutate","users","Main","Page","Title","Formik","enableReinitialize","initialValues","onSubmit","validationSchema","handleSubmit","errors","Form","noValidate","Layouts","primaryAction","Button","loading","startIcon","Check","subtitle","Field","Label","TextInput","Error","Textarea","ProtectedRolesCreatePage","Protect","PERMISSIONS","createRole","EditPage","params","useMatch","role","isLoadingRole","refetchRole","useQuery","put","handleEditRoleSubmit","Loading","disabled","code","navigationAction","BackButton","fallback","ProtectedRolesEditPage","updateRole","EditLink","Link","neutral500","neutral800","TableBody","sortedRoles","canDelete","canUpdate","setRoleToDelete","onDelete","showConfirmDelete","setShowConfirmDelete","checkCanDeleteRole","handleClickDelete","Tbody","Tr","toString","Td","width","number","nb_users","e","stopPropagation","NavLink","to","aria-label","Pencil","IconButton","Trash","array","func","bool","RolesListPage","locale","notifyStatus","useNotifyAT","query","useQueryParams","_q","useState","roleToDelete","del","isLoadingForPermissions","allowedActions","canRead","canCreate","useRBAC","create","read","readRoles","update","delete","deleteRole","isLoadingForData","roles","isFetching","fetchData","contains","useFilter","sensitivity","formatter","useCollator","handleShowConfirmDelete","deleteData","err","emptyLayout","search","pageTitle","deleteMutation","handleConfirmDelete","mutateAsync","a","b","compare","emptyContent","colCount","rowCount","LinkButton","Plus","Action","startActions","SearchInput","NoPermissions","Table","Thead","Th","EmptyStateLayout","content","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","ProtectedRolesListPage","accessRoles","Roles","Routes","Route","element"],"mappings":"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"}
@@ -0,0 +1,217 @@
1
+ 'use strict';
2
+
3
+ var name$1 = "@strapi/plugin-users-permissions";
4
+ var strapi = {
5
+ displayName: "Roles & Permissions",
6
+ name: "users-permissions",
7
+ description: "Protect your API with a full authentication process based on JWT. This plugin comes also with an ACL strategy that allows you to manage the permissions between the groups of users.",
8
+ required: true,
9
+ kind: "plugin"
10
+ };
11
+
12
+ const PERMISSIONS = {
13
+ // Roles
14
+ accessRoles: [
15
+ {
16
+ action: 'plugin::users-permissions.roles.create',
17
+ subject: null
18
+ },
19
+ {
20
+ action: 'plugin::users-permissions.roles.read',
21
+ subject: null
22
+ }
23
+ ],
24
+ createRole: [
25
+ {
26
+ action: 'plugin::users-permissions.roles.create',
27
+ subject: null
28
+ }
29
+ ],
30
+ deleteRole: [
31
+ {
32
+ action: 'plugin::users-permissions.roles.delete',
33
+ subject: null
34
+ }
35
+ ],
36
+ readRoles: [
37
+ {
38
+ action: 'plugin::users-permissions.roles.read',
39
+ subject: null
40
+ }
41
+ ],
42
+ updateRole: [
43
+ {
44
+ action: 'plugin::users-permissions.roles.update',
45
+ subject: null
46
+ }
47
+ ],
48
+ // AdvancedSettings
49
+ readAdvancedSettings: [
50
+ {
51
+ action: 'plugin::users-permissions.advanced-settings.read',
52
+ subject: null
53
+ }
54
+ ],
55
+ updateAdvancedSettings: [
56
+ {
57
+ action: 'plugin::users-permissions.advanced-settings.update',
58
+ subject: null
59
+ }
60
+ ],
61
+ // Emails
62
+ readEmailTemplates: [
63
+ {
64
+ action: 'plugin::users-permissions.email-templates.read',
65
+ subject: null
66
+ }
67
+ ],
68
+ updateEmailTemplates: [
69
+ {
70
+ action: 'plugin::users-permissions.email-templates.update',
71
+ subject: null
72
+ }
73
+ ],
74
+ // Providers
75
+ readProviders: [
76
+ {
77
+ action: 'plugin::users-permissions.providers.read',
78
+ subject: null
79
+ }
80
+ ],
81
+ updateProviders: [
82
+ {
83
+ action: 'plugin::users-permissions.providers.update',
84
+ subject: null
85
+ }
86
+ ]
87
+ };
88
+
89
+ const pluginId = name$1.replace(/^@strapi\/plugin-/i, '');
90
+
91
+ const getTrad = (id)=>`${pluginId}.${id}`;
92
+
93
+ const prefixPluginTranslations = (trad, pluginId)=>{
94
+ return Object.keys(trad).reduce((acc, current)=>{
95
+ acc[`${pluginId}.${current}`] = trad[current];
96
+ return acc;
97
+ }, {});
98
+ };
99
+
100
+ function __variableDynamicImportRuntime4__(path) {
101
+ switch (path) {
102
+ case './translations/ar.json': return Promise.resolve().then(function () { return require('./ar-BJwjobLp.js'); });
103
+ case './translations/cs.json': return Promise.resolve().then(function () { return require('./cs-uS_SIEo8.js'); });
104
+ case './translations/de.json': return Promise.resolve().then(function () { return require('./de-7MVMrqqI.js'); });
105
+ case './translations/dk.json': return Promise.resolve().then(function () { return require('./dk-DwCLGmy9.js'); });
106
+ case './translations/en.json': return Promise.resolve().then(function () { return require('./en-DwQjkHi_.js'); });
107
+ case './translations/es.json': return Promise.resolve().then(function () { return require('./es-BOJOedG5.js'); });
108
+ case './translations/fr.json': return Promise.resolve().then(function () { return require('./fr-BDNWCNs0.js'); });
109
+ case './translations/id.json': return Promise.resolve().then(function () { return require('./id-UqUPykHZ.js'); });
110
+ case './translations/it.json': return Promise.resolve().then(function () { return require('./it-D5VuyoLU.js'); });
111
+ case './translations/ja.json': return Promise.resolve().then(function () { return require('./ja-MpqVsCgs.js'); });
112
+ case './translations/ko.json': return Promise.resolve().then(function () { return require('./ko-Bm-grPSc.js'); });
113
+ case './translations/ms.json': return Promise.resolve().then(function () { return require('./ms-D7eyBD5H.js'); });
114
+ case './translations/nl.json': return Promise.resolve().then(function () { return require('./nl-BIOwAQtI.js'); });
115
+ case './translations/pl.json': return Promise.resolve().then(function () { return require('./pl-D5BeNrg_.js'); });
116
+ case './translations/pt-BR.json': return Promise.resolve().then(function () { return require('./pt-BR-DxPBzQGx.js'); });
117
+ case './translations/pt.json': return Promise.resolve().then(function () { return require('./pt-kkCwzNvH.js'); });
118
+ case './translations/ru.json': return Promise.resolve().then(function () { return require('./ru-BQ0gHmp3.js'); });
119
+ case './translations/sk.json': return Promise.resolve().then(function () { return require('./sk-nVwAPdYC.js'); });
120
+ case './translations/sv.json': return Promise.resolve().then(function () { return require('./sv-BDfk2A-F.js'); });
121
+ case './translations/th.json': return Promise.resolve().then(function () { return require('./th-BtTtpHe2.js'); });
122
+ case './translations/tr.json': return Promise.resolve().then(function () { return require('./tr-Di-Nf7cT.js'); });
123
+ case './translations/uk.json': return Promise.resolve().then(function () { return require('./uk-CggQOx1l.js'); });
124
+ case './translations/vi.json': return Promise.resolve().then(function () { return require('./vi-D9cCsHsU.js'); });
125
+ case './translations/zh-Hans.json': return Promise.resolve().then(function () { return require('./zh-Hans-CKqQbpsM.js'); });
126
+ case './translations/zh.json': return Promise.resolve().then(function () { return require('./zh-BzWgJEzz.js'); });
127
+ default: return new Promise(function(resolve, reject) {
128
+ (typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(
129
+ reject.bind(null, new Error("Unknown variable dynamic import: " + path))
130
+ );
131
+ })
132
+ }
133
+ }
134
+ const name = strapi.name;
135
+ var index = {
136
+ register (app) {
137
+ // Create the plugin's settings section
138
+ app.createSettingSection({
139
+ id: 'users-permissions',
140
+ intlLabel: {
141
+ id: getTrad('Settings.section-label'),
142
+ defaultMessage: 'Users & Permissions plugin'
143
+ }
144
+ }, [
145
+ {
146
+ intlLabel: {
147
+ id: 'global.roles',
148
+ defaultMessage: 'Roles'
149
+ },
150
+ id: 'roles',
151
+ to: `users-permissions/roles`,
152
+ Component: ()=>Promise.resolve().then(function () { return require('./index-D01zzG9y.js'); }),
153
+ permissions: PERMISSIONS.accessRoles
154
+ },
155
+ {
156
+ intlLabel: {
157
+ id: getTrad('HeaderNav.link.providers'),
158
+ defaultMessage: 'Providers'
159
+ },
160
+ id: 'providers',
161
+ to: `users-permissions/providers`,
162
+ Component: ()=>Promise.resolve().then(function () { return require('./index-BtYUb_br.js'); }),
163
+ permissions: PERMISSIONS.readProviders
164
+ },
165
+ {
166
+ intlLabel: {
167
+ id: getTrad('HeaderNav.link.emailTemplates'),
168
+ defaultMessage: 'Email templates'
169
+ },
170
+ id: 'email-templates',
171
+ to: `users-permissions/email-templates`,
172
+ Component: ()=>Promise.resolve().then(function () { return require('./index-BPiDUOGt.js'); }).then((mod)=>({
173
+ default: mod.ProtectedEmailTemplatesPage
174
+ })),
175
+ permissions: PERMISSIONS.readEmailTemplates
176
+ },
177
+ {
178
+ intlLabel: {
179
+ id: getTrad('HeaderNav.link.advancedSettings'),
180
+ defaultMessage: 'Advanced Settings'
181
+ },
182
+ id: 'advanced-settings',
183
+ to: `users-permissions/advanced-settings`,
184
+ Component: ()=>Promise.resolve().then(function () { return require('./index-CkYplz_3.js'); }).then((mod)=>({
185
+ default: mod.ProtectedAdvancedSettingsPage
186
+ })),
187
+ permissions: PERMISSIONS.readAdvancedSettings
188
+ }
189
+ ]);
190
+ app.registerPlugin({
191
+ id: 'users-permissions',
192
+ name
193
+ });
194
+ },
195
+ bootstrap () {},
196
+ async registerTrads ({ locales }) {
197
+ const importedTrads = await Promise.all(locales.map((locale)=>{
198
+ return __variableDynamicImportRuntime4__(`./translations/${locale}.json`).then(({ default: data })=>{
199
+ return {
200
+ data: prefixPluginTranslations(data, 'users-permissions'),
201
+ locale
202
+ };
203
+ }).catch(()=>{
204
+ return {
205
+ data: {},
206
+ locale
207
+ };
208
+ });
209
+ }));
210
+ return Promise.resolve(importedTrads);
211
+ }
212
+ };
213
+
214
+ exports.PERMISSIONS = PERMISSIONS;
215
+ exports.getTrad = getTrad;
216
+ exports.index = index;
217
+ //# sourceMappingURL=index-DAclA-0k.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-DAclA-0k.js","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 { name } from '../../package.json';\n\nconst pluginId = 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 { strapi as pkgStrapi } from '../../package.json';\n\nimport { PERMISSIONS } from './constants';\nimport getTrad from './utils/getTrad';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\nconst name = pkgStrapi.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":["PERMISSIONS","accessRoles","action","subject","createRole","deleteRole","readRoles","updateRole","readAdvancedSettings","updateAdvancedSettings","readEmailTemplates","updateEmailTemplates","readProviders","updateProviders","pluginId","name","replace","getTrad","id","prefixPluginTranslations","trad","Object","keys","reduce","acc","current","pkgStrapi","register","app","createSettingSection","intlLabel","defaultMessage","to","Component","permissions","then","mod","default","ProtectedEmailTemplatesPage","ProtectedAdvancedSettingsPage","registerPlugin","bootstrap","registerTrads","locales","importedTrads","Promise","all","map","locale","data","catch","resolve"],"mappings":"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"}