@strapi/plugin-users-permissions 0.0.0-next.fc231041206e6f3999b094160cfa05db2892ad54 → 0.0.0-next.fc9d26d995624dc886b29f563e1de655d47e6609

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 (310) hide show
  1. package/.eslintignore +2 -1
  2. package/LICENSE +18 -3
  3. package/admin/src/components/BoundRoute/index.jsx +3 -3
  4. package/admin/src/components/FormModal/Input/index.jsx +33 -32
  5. package/admin/src/components/FormModal/index.jsx +58 -69
  6. package/admin/src/components/Permissions/PermissionRow/CheckboxWrapper.jsx +4 -3
  7. package/admin/src/components/Permissions/PermissionRow/SubCategory.jsx +13 -22
  8. package/admin/src/components/Permissions/index.jsx +27 -35
  9. package/admin/src/components/Permissions/reducer.js +1 -1
  10. package/admin/src/components/Policies/index.jsx +8 -6
  11. package/admin/src/components/UsersPermissions/index.jsx +15 -7
  12. package/admin/src/components/UsersPermissions/reducer.js +1 -1
  13. package/admin/src/index.js +17 -34
  14. package/admin/src/pages/AdvancedSettings/index.jsx +84 -129
  15. package/admin/src/pages/AdvancedSettings/utils/layout.js +20 -35
  16. package/admin/src/pages/AdvancedSettings/utils/schema.js +5 -2
  17. package/admin/src/pages/EmailTemplates/components/EmailForm.jsx +120 -140
  18. package/admin/src/pages/EmailTemplates/components/EmailTable.jsx +21 -18
  19. package/admin/src/pages/EmailTemplates/index.jsx +36 -62
  20. package/admin/src/pages/EmailTemplates/utils/schema.js +18 -6
  21. package/admin/src/pages/Providers/index.jsx +98 -113
  22. package/admin/src/pages/Providers/utils/forms.js +23 -11
  23. package/admin/src/pages/Roles/constants.js +3 -3
  24. package/admin/src/pages/Roles/hooks/usePlugins.js +4 -4
  25. package/admin/src/pages/Roles/index.jsx +10 -19
  26. package/admin/src/pages/Roles/pages/CreatePage.jsx +53 -58
  27. package/admin/src/pages/Roles/pages/EditPage.jsx +63 -68
  28. package/admin/src/pages/Roles/pages/ListPage/components/TableBody.jsx +28 -32
  29. package/admin/src/pages/Roles/pages/ListPage/index.jsx +79 -55
  30. package/admin/src/pluginId.js +2 -2
  31. package/admin/src/translations/en.json +1 -1
  32. package/admin/src/utils/prefixPluginTranslations.js +13 -0
  33. package/dist/admin/chunks/ar-BJwjobLp.js +45 -0
  34. package/dist/admin/chunks/ar-BJwjobLp.js.map +1 -0
  35. package/dist/admin/chunks/ar-G6bUGuUb.js +43 -0
  36. package/dist/admin/chunks/ar-G6bUGuUb.js.map +1 -0
  37. package/dist/admin/chunks/cs-Bu59JqhG.js +49 -0
  38. package/dist/admin/chunks/cs-Bu59JqhG.js.map +1 -0
  39. package/dist/admin/chunks/cs-uS_SIEo8.js +51 -0
  40. package/dist/admin/chunks/cs-uS_SIEo8.js.map +1 -0
  41. package/dist/admin/chunks/de-7MVMrqqI.js +63 -0
  42. package/dist/admin/chunks/de-7MVMrqqI.js.map +1 -0
  43. package/dist/admin/chunks/de-B81A69_5.js +61 -0
  44. package/dist/admin/chunks/de-B81A69_5.js.map +1 -0
  45. package/dist/admin/chunks/dk-BaelzvBE.js +85 -0
  46. package/dist/admin/chunks/dk-BaelzvBE.js.map +1 -0
  47. package/dist/admin/chunks/dk-DwCLGmy9.js +87 -0
  48. package/dist/admin/chunks/dk-DwCLGmy9.js.map +1 -0
  49. package/dist/admin/chunks/en-BhgCBe7M.js +85 -0
  50. package/dist/admin/chunks/en-BhgCBe7M.js.map +1 -0
  51. package/dist/admin/chunks/en-DwQjkHi_.js +87 -0
  52. package/dist/admin/chunks/en-DwQjkHi_.js.map +1 -0
  53. package/dist/admin/chunks/es-B0wXmvRj.js +85 -0
  54. package/dist/admin/chunks/es-B0wXmvRj.js.map +1 -0
  55. package/dist/admin/chunks/es-BOJOedG5.js +87 -0
  56. package/dist/admin/chunks/es-BOJOedG5.js.map +1 -0
  57. package/dist/admin/chunks/fr-BDNWCNs0.js +51 -0
  58. package/dist/admin/chunks/fr-BDNWCNs0.js.map +1 -0
  59. package/dist/admin/chunks/fr-CGYvGUXg.js +49 -0
  60. package/dist/admin/chunks/fr-CGYvGUXg.js.map +1 -0
  61. package/dist/admin/chunks/id-CNzbwFjA.js +61 -0
  62. package/dist/admin/chunks/id-CNzbwFjA.js.map +1 -0
  63. package/dist/admin/chunks/id-UqUPykHZ.js +63 -0
  64. package/dist/admin/chunks/id-UqUPykHZ.js.map +1 -0
  65. package/dist/admin/chunks/index-BPiDUOGt.js +471 -0
  66. package/dist/admin/chunks/index-BPiDUOGt.js.map +1 -0
  67. package/dist/admin/chunks/index-BtYUb_br.js +741 -0
  68. package/dist/admin/chunks/index-BtYUb_br.js.map +1 -0
  69. package/dist/admin/chunks/index-CkYplz_3.js +301 -0
  70. package/dist/admin/chunks/index-CkYplz_3.js.map +1 -0
  71. package/dist/admin/chunks/index-CxiKMwJn.js +279 -0
  72. package/dist/admin/chunks/index-CxiKMwJn.js.map +1 -0
  73. package/dist/admin/chunks/index-D01zzG9y.js +1537 -0
  74. package/dist/admin/chunks/index-D01zzG9y.js.map +1 -0
  75. package/dist/admin/chunks/index-DAclA-0k.js +217 -0
  76. package/dist/admin/chunks/index-DAclA-0k.js.map +1 -0
  77. package/dist/admin/chunks/index-DG6Abn44.js +213 -0
  78. package/dist/admin/chunks/index-DG6Abn44.js.map +1 -0
  79. package/dist/admin/chunks/index-De_N0gr1.js +448 -0
  80. package/dist/admin/chunks/index-De_N0gr1.js.map +1 -0
  81. package/dist/admin/chunks/index-DgONbTcJ.js +718 -0
  82. package/dist/admin/chunks/index-DgONbTcJ.js.map +1 -0
  83. package/dist/admin/chunks/index-xVVRcuDA.js +1516 -0
  84. package/dist/admin/chunks/index-xVVRcuDA.js.map +1 -0
  85. package/dist/admin/chunks/it-B2H2foTf.js +61 -0
  86. package/dist/admin/chunks/it-B2H2foTf.js.map +1 -0
  87. package/dist/admin/chunks/it-D5VuyoLU.js +63 -0
  88. package/dist/admin/chunks/it-D5VuyoLU.js.map +1 -0
  89. package/dist/admin/chunks/ja-C0z9d7L9.js +47 -0
  90. package/dist/admin/chunks/ja-C0z9d7L9.js.map +1 -0
  91. package/dist/admin/chunks/ja-MpqVsCgs.js +49 -0
  92. package/dist/admin/chunks/ja-MpqVsCgs.js.map +1 -0
  93. package/dist/admin/chunks/ko-Bm-grPSc.js +87 -0
  94. package/dist/admin/chunks/ko-Bm-grPSc.js.map +1 -0
  95. package/dist/admin/chunks/ko-CzUgzpeS.js +85 -0
  96. package/dist/admin/chunks/ko-CzUgzpeS.js.map +1 -0
  97. package/dist/admin/chunks/ms-CCacxjim.js +48 -0
  98. package/dist/admin/chunks/ms-CCacxjim.js.map +1 -0
  99. package/dist/admin/chunks/ms-D7eyBD5H.js +50 -0
  100. package/dist/admin/chunks/ms-D7eyBD5H.js.map +1 -0
  101. package/dist/admin/chunks/nl-BIOwAQtI.js +49 -0
  102. package/dist/admin/chunks/nl-BIOwAQtI.js.map +1 -0
  103. package/dist/admin/chunks/nl-DDC3nZW-.js +47 -0
  104. package/dist/admin/chunks/nl-DDC3nZW-.js.map +1 -0
  105. package/dist/admin/chunks/pl-D5BeNrg_.js +87 -0
  106. package/dist/admin/chunks/pl-D5BeNrg_.js.map +1 -0
  107. package/dist/admin/chunks/pl-XkS463rN.js +85 -0
  108. package/dist/admin/chunks/pl-XkS463rN.js.map +1 -0
  109. package/dist/admin/chunks/pt-BR-8cC7z8Km.js +43 -0
  110. package/dist/admin/chunks/pt-BR-8cC7z8Km.js.map +1 -0
  111. package/dist/admin/chunks/pt-BR-DxPBzQGx.js +45 -0
  112. package/dist/admin/chunks/pt-BR-DxPBzQGx.js.map +1 -0
  113. package/dist/admin/chunks/pt-DQpEvio8.js +47 -0
  114. package/dist/admin/chunks/pt-DQpEvio8.js.map +1 -0
  115. package/dist/admin/chunks/pt-kkCwzNvH.js +49 -0
  116. package/dist/admin/chunks/pt-kkCwzNvH.js.map +1 -0
  117. package/dist/admin/chunks/ru-BQ0gHmp3.js +87 -0
  118. package/dist/admin/chunks/ru-BQ0gHmp3.js.map +1 -0
  119. package/dist/admin/chunks/ru-nzL_7Mhg.js +85 -0
  120. package/dist/admin/chunks/ru-nzL_7Mhg.js.map +1 -0
  121. package/dist/admin/chunks/sk-Ddxc_tZA.js +49 -0
  122. package/dist/admin/chunks/sk-Ddxc_tZA.js.map +1 -0
  123. package/dist/admin/chunks/sk-nVwAPdYC.js +51 -0
  124. package/dist/admin/chunks/sk-nVwAPdYC.js.map +1 -0
  125. package/dist/admin/chunks/sv-BDfk2A-F.js +87 -0
  126. package/dist/admin/chunks/sv-BDfk2A-F.js.map +1 -0
  127. package/dist/admin/chunks/sv-By3RYpMG.js +85 -0
  128. package/dist/admin/chunks/sv-By3RYpMG.js.map +1 -0
  129. package/dist/admin/chunks/th-BtTtpHe2.js +61 -0
  130. package/dist/admin/chunks/th-BtTtpHe2.js.map +1 -0
  131. package/dist/admin/chunks/th-COl50vqb.js +59 -0
  132. package/dist/admin/chunks/th-COl50vqb.js.map +1 -0
  133. package/dist/admin/chunks/tr-80SJU6jg.js +84 -0
  134. package/dist/admin/chunks/tr-80SJU6jg.js.map +1 -0
  135. package/dist/admin/chunks/tr-Di-Nf7cT.js +86 -0
  136. package/dist/admin/chunks/tr-Di-Nf7cT.js.map +1 -0
  137. package/dist/admin/chunks/uk-CggQOx1l.js +50 -0
  138. package/dist/admin/chunks/uk-CggQOx1l.js.map +1 -0
  139. package/dist/admin/chunks/uk-D8JHuzch.js +48 -0
  140. package/dist/admin/chunks/uk-D8JHuzch.js.map +1 -0
  141. package/dist/admin/chunks/vi-69AF03Iv.js +49 -0
  142. package/dist/admin/chunks/vi-69AF03Iv.js.map +1 -0
  143. package/dist/admin/chunks/vi-D9cCsHsU.js +51 -0
  144. package/dist/admin/chunks/vi-D9cCsHsU.js.map +1 -0
  145. package/dist/admin/chunks/zh-BzSkqxo-.js +85 -0
  146. package/dist/admin/chunks/zh-BzSkqxo-.js.map +1 -0
  147. package/dist/admin/chunks/zh-BzWgJEzz.js +87 -0
  148. package/dist/admin/chunks/zh-BzWgJEzz.js.map +1 -0
  149. package/dist/admin/chunks/zh-Hans-CKqQbpsM.js +87 -0
  150. package/dist/admin/chunks/zh-Hans-CKqQbpsM.js.map +1 -0
  151. package/dist/admin/chunks/zh-Hans-DmDcSsp7.js +85 -0
  152. package/dist/admin/chunks/zh-Hans-DmDcSsp7.js.map +1 -0
  153. package/dist/admin/index.js +6 -3
  154. package/dist/admin/index.js.map +1 -1
  155. package/dist/admin/index.mjs +1 -5
  156. package/dist/admin/index.mjs.map +1 -1
  157. package/dist/server/index.js +4739 -0
  158. package/dist/server/index.js.map +1 -0
  159. package/dist/server/index.mjs +4737 -0
  160. package/dist/server/index.mjs.map +1 -0
  161. package/package.json +31 -32
  162. package/rollup.config.mjs +52 -0
  163. package/server/bootstrap/index.js +18 -51
  164. package/server/bootstrap/users-permissions-actions.js +6 -0
  165. package/server/config.js +29 -0
  166. package/server/content-types/user/index.js +0 -1
  167. package/server/controllers/auth.js +63 -64
  168. package/server/controllers/content-manager-user.js +28 -30
  169. package/server/controllers/role.js +17 -4
  170. package/server/controllers/user.js +8 -9
  171. package/server/controllers/validation/auth.js +81 -25
  172. package/server/graphql/types/index.js +1 -0
  173. package/server/graphql/types/me.js +1 -0
  174. package/server/graphql/types/user-input.js +20 -0
  175. package/server/middlewares/rateLimit.js +1 -1
  176. package/server/register.js +2 -2
  177. package/server/services/jwt.js +3 -3
  178. package/server/services/permission.js +3 -7
  179. package/server/services/providers-registry.js +468 -275
  180. package/server/services/providers.js +10 -5
  181. package/server/services/role.js +15 -13
  182. package/server/services/user.js +56 -19
  183. package/server/services/users-permissions.js +15 -13
  184. package/server/utils/index.d.ts +2 -1
  185. package/server/utils/sanitize/sanitizers.js +7 -3
  186. package/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js +2 -2
  187. package/admin/src/pages/Roles/pages/ListPage/utils/api.js +0 -30
  188. package/dist/_chunks/ar-MvD8Ghac.mjs +0 -44
  189. package/dist/_chunks/ar-MvD8Ghac.mjs.map +0 -1
  190. package/dist/_chunks/ar-t5qTFaAD.js +0 -44
  191. package/dist/_chunks/ar-t5qTFaAD.js.map +0 -1
  192. package/dist/_chunks/cs-BMuXwxA1.mjs +0 -50
  193. package/dist/_chunks/cs-BMuXwxA1.mjs.map +0 -1
  194. package/dist/_chunks/cs-I8N4u-Sd.js +0 -50
  195. package/dist/_chunks/cs-I8N4u-Sd.js.map +0 -1
  196. package/dist/_chunks/de-YTjtq89K.js +0 -62
  197. package/dist/_chunks/de-YTjtq89K.js.map +0 -1
  198. package/dist/_chunks/de-zs2qqc0W.mjs +0 -62
  199. package/dist/_chunks/de-zs2qqc0W.mjs.map +0 -1
  200. package/dist/_chunks/dk-HctVBMsG.mjs +0 -86
  201. package/dist/_chunks/dk-HctVBMsG.mjs.map +0 -1
  202. package/dist/_chunks/dk-TF-dWjzl.js +0 -86
  203. package/dist/_chunks/dk-TF-dWjzl.js.map +0 -1
  204. package/dist/_chunks/en-CE3wEy_c.mjs +0 -86
  205. package/dist/_chunks/en-CE3wEy_c.mjs.map +0 -1
  206. package/dist/_chunks/en-m608rMZx.js +0 -86
  207. package/dist/_chunks/en-m608rMZx.js.map +0 -1
  208. package/dist/_chunks/es-9381tih_.mjs +0 -86
  209. package/dist/_chunks/es-9381tih_.mjs.map +0 -1
  210. package/dist/_chunks/es-XBQsB8_9.js +0 -86
  211. package/dist/_chunks/es-XBQsB8_9.js.map +0 -1
  212. package/dist/_chunks/fr-6cz3U-IF.js +0 -50
  213. package/dist/_chunks/fr-6cz3U-IF.js.map +0 -1
  214. package/dist/_chunks/fr-CMSc77If.mjs +0 -50
  215. package/dist/_chunks/fr-CMSc77If.mjs.map +0 -1
  216. package/dist/_chunks/id-RJ934rq-.js +0 -62
  217. package/dist/_chunks/id-RJ934rq-.js.map +0 -1
  218. package/dist/_chunks/id-SDuyIkZa.mjs +0 -62
  219. package/dist/_chunks/id-SDuyIkZa.mjs.map +0 -1
  220. package/dist/_chunks/index-5-krOCaE.mjs +0 -250
  221. package/dist/_chunks/index-5-krOCaE.mjs.map +0 -1
  222. package/dist/_chunks/index-Aq7T7skI.js +0 -1191
  223. package/dist/_chunks/index-Aq7T7skI.js.map +0 -1
  224. package/dist/_chunks/index-LN8gSFZ3.mjs +0 -385
  225. package/dist/_chunks/index-LN8gSFZ3.mjs.map +0 -1
  226. package/dist/_chunks/index-RWAJu_-T.js +0 -407
  227. package/dist/_chunks/index-RWAJu_-T.js.map +0 -1
  228. package/dist/_chunks/index-SICvbeQf.mjs +0 -301
  229. package/dist/_chunks/index-SICvbeQf.mjs.map +0 -1
  230. package/dist/_chunks/index-YkMqn-9t.js +0 -249
  231. package/dist/_chunks/index-YkMqn-9t.js.map +0 -1
  232. package/dist/_chunks/index-_wwOOuf_.js +0 -320
  233. package/dist/_chunks/index-_wwOOuf_.js.map +0 -1
  234. package/dist/_chunks/index-dnfs8wOQ.js +0 -638
  235. package/dist/_chunks/index-dnfs8wOQ.js.map +0 -1
  236. package/dist/_chunks/index-l_QWM0NZ.mjs +0 -1159
  237. package/dist/_chunks/index-l_QWM0NZ.mjs.map +0 -1
  238. package/dist/_chunks/index-wiA9qAAp.mjs +0 -615
  239. package/dist/_chunks/index-wiA9qAAp.mjs.map +0 -1
  240. package/dist/_chunks/it-YhZOlM2X.js +0 -62
  241. package/dist/_chunks/it-YhZOlM2X.js.map +0 -1
  242. package/dist/_chunks/it-bvH7DgQo.mjs +0 -62
  243. package/dist/_chunks/it-bvH7DgQo.mjs.map +0 -1
  244. package/dist/_chunks/ja-o_-JPvQv.mjs +0 -48
  245. package/dist/_chunks/ja-o_-JPvQv.mjs.map +0 -1
  246. package/dist/_chunks/ja-xssHUXFv.js +0 -48
  247. package/dist/_chunks/ja-xssHUXFv.js.map +0 -1
  248. package/dist/_chunks/ko-C3mHUSJa.js +0 -86
  249. package/dist/_chunks/ko-C3mHUSJa.js.map +0 -1
  250. package/dist/_chunks/ko-XJbPSez_.mjs +0 -86
  251. package/dist/_chunks/ko-XJbPSez_.mjs.map +0 -1
  252. package/dist/_chunks/ms-II5Ea73J.mjs +0 -49
  253. package/dist/_chunks/ms-II5Ea73J.mjs.map +0 -1
  254. package/dist/_chunks/ms-d0hfg65Z.js +0 -49
  255. package/dist/_chunks/ms-d0hfg65Z.js.map +0 -1
  256. package/dist/_chunks/nl-TA7TfK_5.js +0 -48
  257. package/dist/_chunks/nl-TA7TfK_5.js.map +0 -1
  258. package/dist/_chunks/nl-vEy6TN0K.mjs +0 -48
  259. package/dist/_chunks/nl-vEy6TN0K.mjs.map +0 -1
  260. package/dist/_chunks/pl-0pUL9hdA.js +0 -86
  261. package/dist/_chunks/pl-0pUL9hdA.js.map +0 -1
  262. package/dist/_chunks/pl-2VowaFGt.mjs +0 -86
  263. package/dist/_chunks/pl-2VowaFGt.mjs.map +0 -1
  264. package/dist/_chunks/pt-BR-WNOhafR4.js +0 -44
  265. package/dist/_chunks/pt-BR-WNOhafR4.js.map +0 -1
  266. package/dist/_chunks/pt-BR-sS1Xp3Jt.mjs +0 -44
  267. package/dist/_chunks/pt-BR-sS1Xp3Jt.mjs.map +0 -1
  268. package/dist/_chunks/pt-Rf9W51IO.mjs +0 -48
  269. package/dist/_chunks/pt-Rf9W51IO.mjs.map +0 -1
  270. package/dist/_chunks/pt-guNR9Gax.js +0 -48
  271. package/dist/_chunks/pt-guNR9Gax.js.map +0 -1
  272. package/dist/_chunks/ru-X3BMXDds.js +0 -86
  273. package/dist/_chunks/ru-X3BMXDds.js.map +0 -1
  274. package/dist/_chunks/ru-qKHnd5or.mjs +0 -86
  275. package/dist/_chunks/ru-qKHnd5or.mjs.map +0 -1
  276. package/dist/_chunks/sk-NWPw1oTN.js +0 -50
  277. package/dist/_chunks/sk-NWPw1oTN.js.map +0 -1
  278. package/dist/_chunks/sk-_Ryr-eTT.mjs +0 -50
  279. package/dist/_chunks/sk-_Ryr-eTT.mjs.map +0 -1
  280. package/dist/_chunks/sv-76NnbB__.js +0 -86
  281. package/dist/_chunks/sv-76NnbB__.js.map +0 -1
  282. package/dist/_chunks/sv-BqzScFXS.mjs +0 -86
  283. package/dist/_chunks/sv-BqzScFXS.mjs.map +0 -1
  284. package/dist/_chunks/th-WsknMEpq.mjs +0 -60
  285. package/dist/_chunks/th-WsknMEpq.mjs.map +0 -1
  286. package/dist/_chunks/th-cbppX21D.js +0 -60
  287. package/dist/_chunks/th-cbppX21D.js.map +0 -1
  288. package/dist/_chunks/tr-6mm_Fmz7.js +0 -85
  289. package/dist/_chunks/tr-6mm_Fmz7.js.map +0 -1
  290. package/dist/_chunks/tr-_DB1F1GW.mjs +0 -85
  291. package/dist/_chunks/tr-_DB1F1GW.mjs.map +0 -1
  292. package/dist/_chunks/uk-sI2I1ogF.js +0 -49
  293. package/dist/_chunks/uk-sI2I1ogF.js.map +0 -1
  294. package/dist/_chunks/uk-yxMSQAwI.mjs +0 -49
  295. package/dist/_chunks/uk-yxMSQAwI.mjs.map +0 -1
  296. package/dist/_chunks/vi-A3zJxaiI.js +0 -50
  297. package/dist/_chunks/vi-A3zJxaiI.js.map +0 -1
  298. package/dist/_chunks/vi-xY0zCW3d.mjs +0 -50
  299. package/dist/_chunks/vi-xY0zCW3d.mjs.map +0 -1
  300. package/dist/_chunks/zh-72SpmFXa.js +0 -86
  301. package/dist/_chunks/zh-72SpmFXa.js.map +0 -1
  302. package/dist/_chunks/zh-Hans-ArWWtyP4.js +0 -86
  303. package/dist/_chunks/zh-Hans-ArWWtyP4.js.map +0 -1
  304. package/dist/_chunks/zh-Hans-E84cu4kP.mjs +0 -86
  305. package/dist/_chunks/zh-Hans-E84cu4kP.mjs.map +0 -1
  306. package/dist/_chunks/zh-OFeldzbX.mjs +0 -86
  307. package/dist/_chunks/zh-OFeldzbX.mjs.map +0 -1
  308. package/packup.config.ts +0 -22
  309. package/server/bootstrap/grant-config.js +0 -140
  310. package/strapi-server.js +0 -3
@@ -0,0 +1,213 @@
1
+ var name$1 = "@strapi/plugin-users-permissions";
2
+ var strapi = {
3
+ displayName: "Roles & Permissions",
4
+ name: "users-permissions",
5
+ 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.",
6
+ required: true,
7
+ kind: "plugin"
8
+ };
9
+
10
+ const PERMISSIONS = {
11
+ // Roles
12
+ accessRoles: [
13
+ {
14
+ action: 'plugin::users-permissions.roles.create',
15
+ subject: null
16
+ },
17
+ {
18
+ action: 'plugin::users-permissions.roles.read',
19
+ subject: null
20
+ }
21
+ ],
22
+ createRole: [
23
+ {
24
+ action: 'plugin::users-permissions.roles.create',
25
+ subject: null
26
+ }
27
+ ],
28
+ deleteRole: [
29
+ {
30
+ action: 'plugin::users-permissions.roles.delete',
31
+ subject: null
32
+ }
33
+ ],
34
+ readRoles: [
35
+ {
36
+ action: 'plugin::users-permissions.roles.read',
37
+ subject: null
38
+ }
39
+ ],
40
+ updateRole: [
41
+ {
42
+ action: 'plugin::users-permissions.roles.update',
43
+ subject: null
44
+ }
45
+ ],
46
+ // AdvancedSettings
47
+ readAdvancedSettings: [
48
+ {
49
+ action: 'plugin::users-permissions.advanced-settings.read',
50
+ subject: null
51
+ }
52
+ ],
53
+ updateAdvancedSettings: [
54
+ {
55
+ action: 'plugin::users-permissions.advanced-settings.update',
56
+ subject: null
57
+ }
58
+ ],
59
+ // Emails
60
+ readEmailTemplates: [
61
+ {
62
+ action: 'plugin::users-permissions.email-templates.read',
63
+ subject: null
64
+ }
65
+ ],
66
+ updateEmailTemplates: [
67
+ {
68
+ action: 'plugin::users-permissions.email-templates.update',
69
+ subject: null
70
+ }
71
+ ],
72
+ // Providers
73
+ readProviders: [
74
+ {
75
+ action: 'plugin::users-permissions.providers.read',
76
+ subject: null
77
+ }
78
+ ],
79
+ updateProviders: [
80
+ {
81
+ action: 'plugin::users-permissions.providers.update',
82
+ subject: null
83
+ }
84
+ ]
85
+ };
86
+
87
+ const pluginId = name$1.replace(/^@strapi\/plugin-/i, '');
88
+
89
+ const getTrad = (id)=>`${pluginId}.${id}`;
90
+
91
+ const prefixPluginTranslations = (trad, pluginId)=>{
92
+ return Object.keys(trad).reduce((acc, current)=>{
93
+ acc[`${pluginId}.${current}`] = trad[current];
94
+ return acc;
95
+ }, {});
96
+ };
97
+
98
+ function __variableDynamicImportRuntime4__(path) {
99
+ switch (path) {
100
+ case './translations/ar.json': return import('./ar-G6bUGuUb.js');
101
+ case './translations/cs.json': return import('./cs-Bu59JqhG.js');
102
+ case './translations/de.json': return import('./de-B81A69_5.js');
103
+ case './translations/dk.json': return import('./dk-BaelzvBE.js');
104
+ case './translations/en.json': return import('./en-BhgCBe7M.js');
105
+ case './translations/es.json': return import('./es-B0wXmvRj.js');
106
+ case './translations/fr.json': return import('./fr-CGYvGUXg.js');
107
+ case './translations/id.json': return import('./id-CNzbwFjA.js');
108
+ case './translations/it.json': return import('./it-B2H2foTf.js');
109
+ case './translations/ja.json': return import('./ja-C0z9d7L9.js');
110
+ case './translations/ko.json': return import('./ko-CzUgzpeS.js');
111
+ case './translations/ms.json': return import('./ms-CCacxjim.js');
112
+ case './translations/nl.json': return import('./nl-DDC3nZW-.js');
113
+ case './translations/pl.json': return import('./pl-XkS463rN.js');
114
+ case './translations/pt-BR.json': return import('./pt-BR-8cC7z8Km.js');
115
+ case './translations/pt.json': return import('./pt-DQpEvio8.js');
116
+ case './translations/ru.json': return import('./ru-nzL_7Mhg.js');
117
+ case './translations/sk.json': return import('./sk-Ddxc_tZA.js');
118
+ case './translations/sv.json': return import('./sv-By3RYpMG.js');
119
+ case './translations/th.json': return import('./th-COl50vqb.js');
120
+ case './translations/tr.json': return import('./tr-80SJU6jg.js');
121
+ case './translations/uk.json': return import('./uk-D8JHuzch.js');
122
+ case './translations/vi.json': return import('./vi-69AF03Iv.js');
123
+ case './translations/zh-Hans.json': return import('./zh-Hans-DmDcSsp7.js');
124
+ case './translations/zh.json': return import('./zh-BzSkqxo-.js');
125
+ default: return new Promise(function(resolve, reject) {
126
+ (typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(
127
+ reject.bind(null, new Error("Unknown variable dynamic import: " + path))
128
+ );
129
+ })
130
+ }
131
+ }
132
+ const name = strapi.name;
133
+ var index = {
134
+ register (app) {
135
+ // Create the plugin's settings section
136
+ app.createSettingSection({
137
+ id: 'users-permissions',
138
+ intlLabel: {
139
+ id: getTrad('Settings.section-label'),
140
+ defaultMessage: 'Users & Permissions plugin'
141
+ }
142
+ }, [
143
+ {
144
+ intlLabel: {
145
+ id: 'global.roles',
146
+ defaultMessage: 'Roles'
147
+ },
148
+ id: 'roles',
149
+ to: `users-permissions/roles`,
150
+ Component: ()=>import('./index-xVVRcuDA.js'),
151
+ permissions: PERMISSIONS.accessRoles
152
+ },
153
+ {
154
+ intlLabel: {
155
+ id: getTrad('HeaderNav.link.providers'),
156
+ defaultMessage: 'Providers'
157
+ },
158
+ id: 'providers',
159
+ to: `users-permissions/providers`,
160
+ Component: ()=>import('./index-DgONbTcJ.js'),
161
+ permissions: PERMISSIONS.readProviders
162
+ },
163
+ {
164
+ intlLabel: {
165
+ id: getTrad('HeaderNav.link.emailTemplates'),
166
+ defaultMessage: 'Email templates'
167
+ },
168
+ id: 'email-templates',
169
+ to: `users-permissions/email-templates`,
170
+ Component: ()=>import('./index-De_N0gr1.js').then((mod)=>({
171
+ default: mod.ProtectedEmailTemplatesPage
172
+ })),
173
+ permissions: PERMISSIONS.readEmailTemplates
174
+ },
175
+ {
176
+ intlLabel: {
177
+ id: getTrad('HeaderNav.link.advancedSettings'),
178
+ defaultMessage: 'Advanced Settings'
179
+ },
180
+ id: 'advanced-settings',
181
+ to: `users-permissions/advanced-settings`,
182
+ Component: ()=>import('./index-CxiKMwJn.js').then((mod)=>({
183
+ default: mod.ProtectedAdvancedSettingsPage
184
+ })),
185
+ permissions: PERMISSIONS.readAdvancedSettings
186
+ }
187
+ ]);
188
+ app.registerPlugin({
189
+ id: 'users-permissions',
190
+ name
191
+ });
192
+ },
193
+ bootstrap () {},
194
+ async registerTrads ({ locales }) {
195
+ const importedTrads = await Promise.all(locales.map((locale)=>{
196
+ return __variableDynamicImportRuntime4__(`./translations/${locale}.json`).then(({ default: data })=>{
197
+ return {
198
+ data: prefixPluginTranslations(data, 'users-permissions'),
199
+ locale
200
+ };
201
+ }).catch(()=>{
202
+ return {
203
+ data: {},
204
+ locale
205
+ };
206
+ });
207
+ }));
208
+ return Promise.resolve(importedTrads);
209
+ }
210
+ };
211
+
212
+ export { PERMISSIONS as P, getTrad as g, index as i };
213
+ //# sourceMappingURL=index-DG6Abn44.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-DG6Abn44.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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"}
@@ -0,0 +1,448 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { useTracking } from '@strapi/admin/strapi-admin';
4
+ import { Modal, Breadcrumbs, Crumb, VisuallyHidden, Grid, Button, Table, Thead, Tr, Th, Typography, Tbody, Td, Box, IconButton, useNotifyAT } from '@strapi/design-system';
5
+ import { translatedErrors, Form, InputRenderer, Page, useNotification, useFetchClient, useAPIErrorHandler, useRBAC, Layouts } from '@strapi/strapi/admin';
6
+ import { useIntl } from 'react-intl';
7
+ import { useQueryClient, useQuery, useMutation } from 'react-query';
8
+ import { g as getTrad, P as PERMISSIONS } from './index-DG6Abn44.js';
9
+ import 'lodash/isEmpty';
10
+ import PropTypes from 'prop-types';
11
+ import * as yup from 'yup';
12
+ import { ArrowClockwise, Pencil, Check } from '@strapi/icons';
13
+
14
+ const schema = yup.object().shape({
15
+ options: yup.object().shape({
16
+ from: yup.object().shape({
17
+ name: yup.string().required({
18
+ id: translatedErrors.required.id,
19
+ defaultMessage: 'This field is required'
20
+ }),
21
+ email: yup.string().email(translatedErrors.email).required({
22
+ id: translatedErrors.required.id,
23
+ defaultMessage: 'This field is required'
24
+ })
25
+ }).required(),
26
+ response_email: yup.string().email(translatedErrors.email),
27
+ object: yup.string().required({
28
+ id: translatedErrors.required.id,
29
+ defaultMessage: 'This field is required'
30
+ }),
31
+ message: yup.string().required({
32
+ id: translatedErrors.required.id,
33
+ defaultMessage: 'This field is required'
34
+ })
35
+ }).required(translatedErrors.required.id)
36
+ });
37
+
38
+ const EmailForm = ({ template = {}, onToggle, open, onSubmit })=>{
39
+ const { formatMessage } = useIntl();
40
+ return /*#__PURE__*/ jsx(Modal.Root, {
41
+ open: open,
42
+ onOpenChange: onToggle,
43
+ children: /*#__PURE__*/ jsxs(Modal.Content, {
44
+ children: [
45
+ /*#__PURE__*/ jsxs(Modal.Header, {
46
+ children: [
47
+ /*#__PURE__*/ jsxs(Breadcrumbs, {
48
+ label: `${formatMessage({
49
+ id: getTrad('PopUpForm.header.edit.email-templates'),
50
+ defaultMessage: 'Edit email template'
51
+ })}, ${template.display ? formatMessage({
52
+ id: getTrad(template.display),
53
+ defaultMessage: template.display
54
+ }) : ''}`,
55
+ children: [
56
+ /*#__PURE__*/ jsx(Crumb, {
57
+ children: formatMessage({
58
+ id: getTrad('PopUpForm.header.edit.email-templates'),
59
+ defaultMessage: 'Edit email template'
60
+ })
61
+ }),
62
+ /*#__PURE__*/ jsx(Crumb, {
63
+ isCurrent: true,
64
+ children: template.display ? formatMessage({
65
+ id: getTrad(template.display),
66
+ defaultMessage: template.display
67
+ }) : ''
68
+ })
69
+ ]
70
+ }),
71
+ /*#__PURE__*/ jsx(VisuallyHidden, {
72
+ children: /*#__PURE__*/ jsx(Modal.Title, {
73
+ children: `${formatMessage({
74
+ id: getTrad('PopUpForm.header.edit.email-templates'),
75
+ defaultMessage: 'Edit email template'
76
+ })}, ${template.display ? formatMessage({
77
+ id: getTrad(template.display),
78
+ defaultMessage: template.display
79
+ }) : ''}`
80
+ })
81
+ })
82
+ ]
83
+ }),
84
+ /*#__PURE__*/ jsx(Form, {
85
+ onSubmit: onSubmit,
86
+ initialValues: template,
87
+ validationSchema: schema,
88
+ children: ({ isSubmitting })=>{
89
+ return /*#__PURE__*/ jsxs(Fragment, {
90
+ children: [
91
+ /*#__PURE__*/ jsx(Modal.Body, {
92
+ children: /*#__PURE__*/ jsx(Grid.Root, {
93
+ gap: 5,
94
+ children: [
95
+ {
96
+ label: formatMessage({
97
+ id: getTrad('PopUpForm.Email.options.from.name.label'),
98
+ defaultMessage: 'Shipper name'
99
+ }),
100
+ name: 'options.from.name',
101
+ size: 6,
102
+ type: 'string'
103
+ },
104
+ {
105
+ label: formatMessage({
106
+ id: getTrad('PopUpForm.Email.options.from.email.label'),
107
+ defaultMessage: 'Shipper email'
108
+ }),
109
+ name: 'options.from.email',
110
+ size: 6,
111
+ type: 'string'
112
+ },
113
+ {
114
+ label: formatMessage({
115
+ id: getTrad('PopUpForm.Email.options.response_email.label'),
116
+ defaultMessage: 'Response email'
117
+ }),
118
+ name: 'options.response_email',
119
+ size: 6,
120
+ type: 'string'
121
+ },
122
+ {
123
+ label: formatMessage({
124
+ id: getTrad('PopUpForm.Email.options.object.label'),
125
+ defaultMessage: 'Subject'
126
+ }),
127
+ name: 'options.object',
128
+ size: 6,
129
+ type: 'string'
130
+ },
131
+ {
132
+ label: formatMessage({
133
+ id: getTrad('PopUpForm.Email.options.message.label'),
134
+ defaultMessage: 'Message'
135
+ }),
136
+ name: 'options.message',
137
+ size: 12,
138
+ type: 'text'
139
+ }
140
+ ].map(({ size, ...field })=>/*#__PURE__*/ jsx(Grid.Item, {
141
+ col: size,
142
+ direction: "column",
143
+ alignItems: "stretch",
144
+ children: /*#__PURE__*/ jsx(InputRenderer, {
145
+ ...field
146
+ })
147
+ }, field.name))
148
+ })
149
+ }),
150
+ /*#__PURE__*/ jsxs(Modal.Footer, {
151
+ children: [
152
+ /*#__PURE__*/ jsx(Modal.Close, {
153
+ children: /*#__PURE__*/ jsx(Button, {
154
+ variant: "tertiary",
155
+ children: "Cancel"
156
+ })
157
+ }),
158
+ /*#__PURE__*/ jsx(Button, {
159
+ loading: isSubmitting,
160
+ type: "submit",
161
+ children: "Finish"
162
+ })
163
+ ]
164
+ })
165
+ ]
166
+ });
167
+ }
168
+ })
169
+ ]
170
+ })
171
+ });
172
+ };
173
+ EmailForm.defaultProps = {
174
+ template: {}
175
+ };
176
+ EmailForm.propTypes = {
177
+ template: PropTypes.shape({
178
+ display: PropTypes.string,
179
+ icon: PropTypes.string,
180
+ options: PropTypes.shape({
181
+ from: PropTypes.shape({
182
+ name: PropTypes.string,
183
+ email: PropTypes.string
184
+ }),
185
+ message: PropTypes.string,
186
+ object: PropTypes.string,
187
+ response_email: PropTypes.string
188
+ })
189
+ }),
190
+ open: PropTypes.bool.isRequired,
191
+ onSubmit: PropTypes.func.isRequired,
192
+ onToggle: PropTypes.func.isRequired
193
+ };
194
+
195
+ const EmailTable = ({ canUpdate, onEditClick })=>{
196
+ const { formatMessage } = useIntl();
197
+ return /*#__PURE__*/ jsxs(Table, {
198
+ colCount: 3,
199
+ rowCount: 3,
200
+ children: [
201
+ /*#__PURE__*/ jsx(Thead, {
202
+ children: /*#__PURE__*/ jsxs(Tr, {
203
+ children: [
204
+ /*#__PURE__*/ jsx(Th, {
205
+ width: "1%",
206
+ children: /*#__PURE__*/ jsx(VisuallyHidden, {
207
+ children: formatMessage({
208
+ id: getTrad('Email.template.table.icon.label'),
209
+ defaultMessage: 'icon'
210
+ })
211
+ })
212
+ }),
213
+ /*#__PURE__*/ jsx(Th, {
214
+ children: /*#__PURE__*/ jsx(Typography, {
215
+ variant: "sigma",
216
+ textColor: "neutral600",
217
+ children: formatMessage({
218
+ id: getTrad('Email.template.table.name.label'),
219
+ defaultMessage: 'name'
220
+ })
221
+ })
222
+ }),
223
+ /*#__PURE__*/ jsx(Th, {
224
+ width: "1%",
225
+ children: /*#__PURE__*/ jsx(VisuallyHidden, {
226
+ children: formatMessage({
227
+ id: getTrad('Email.template.table.action.label'),
228
+ defaultMessage: 'action'
229
+ })
230
+ })
231
+ })
232
+ ]
233
+ })
234
+ }),
235
+ /*#__PURE__*/ jsxs(Tbody, {
236
+ children: [
237
+ /*#__PURE__*/ jsxs(Tr, {
238
+ cursor: "pointer",
239
+ onClick: ()=>onEditClick('reset_password'),
240
+ children: [
241
+ /*#__PURE__*/ jsx(Td, {
242
+ children: /*#__PURE__*/ jsx(Box, {
243
+ width: "3.2rem",
244
+ height: "3.2rem",
245
+ padding: "0.8rem",
246
+ children: /*#__PURE__*/ jsx(ArrowClockwise, {
247
+ "aria-label": formatMessage({
248
+ id: 'global.reset-password',
249
+ defaultMessage: 'Reset password'
250
+ })
251
+ })
252
+ })
253
+ }),
254
+ /*#__PURE__*/ jsx(Td, {
255
+ children: /*#__PURE__*/ jsx(Typography, {
256
+ children: formatMessage({
257
+ id: 'global.reset-password',
258
+ defaultMessage: 'Reset password'
259
+ })
260
+ })
261
+ }),
262
+ /*#__PURE__*/ jsx(Td, {
263
+ onClick: (e)=>e.stopPropagation(),
264
+ children: /*#__PURE__*/ jsx(IconButton, {
265
+ onClick: ()=>onEditClick('reset_password'),
266
+ label: formatMessage({
267
+ id: getTrad('Email.template.form.edit.label'),
268
+ defaultMessage: 'Edit a template'
269
+ }),
270
+ variant: "ghost",
271
+ disabled: !canUpdate,
272
+ children: /*#__PURE__*/ jsx(Pencil, {})
273
+ })
274
+ })
275
+ ]
276
+ }),
277
+ /*#__PURE__*/ jsxs(Tr, {
278
+ cursor: "pointer",
279
+ onClick: ()=>onEditClick('email_confirmation'),
280
+ children: [
281
+ /*#__PURE__*/ jsx(Td, {
282
+ children: /*#__PURE__*/ jsx(Box, {
283
+ width: "3.2rem",
284
+ height: "3.2rem",
285
+ padding: "0.8rem",
286
+ children: /*#__PURE__*/ jsx(Check, {
287
+ "aria-label": formatMessage({
288
+ id: getTrad('Email.template.email_confirmation'),
289
+ defaultMessage: 'Email address confirmation'
290
+ })
291
+ })
292
+ })
293
+ }),
294
+ /*#__PURE__*/ jsx(Td, {
295
+ children: /*#__PURE__*/ jsx(Typography, {
296
+ children: formatMessage({
297
+ id: getTrad('Email.template.email_confirmation'),
298
+ defaultMessage: 'Email address confirmation'
299
+ })
300
+ })
301
+ }),
302
+ /*#__PURE__*/ jsx(Td, {
303
+ onClick: (e)=>e.stopPropagation(),
304
+ children: /*#__PURE__*/ jsx(IconButton, {
305
+ onClick: ()=>onEditClick('email_confirmation'),
306
+ label: formatMessage({
307
+ id: getTrad('Email.template.form.edit.label'),
308
+ defaultMessage: 'Edit a template'
309
+ }),
310
+ variant: "ghost",
311
+ disabled: !canUpdate,
312
+ children: /*#__PURE__*/ jsx(Pencil, {})
313
+ })
314
+ })
315
+ ]
316
+ })
317
+ ]
318
+ })
319
+ ]
320
+ });
321
+ };
322
+ EmailTable.propTypes = {
323
+ canUpdate: PropTypes.bool.isRequired,
324
+ onEditClick: PropTypes.func.isRequired
325
+ };
326
+
327
+ const ProtectedEmailTemplatesPage = ()=>/*#__PURE__*/ jsx(Page.Protect, {
328
+ permissions: PERMISSIONS.readEmailTemplates,
329
+ children: /*#__PURE__*/ jsx(EmailTemplatesPage, {})
330
+ });
331
+ const EmailTemplatesPage = ()=>{
332
+ const { formatMessage } = useIntl();
333
+ const { trackUsage } = useTracking();
334
+ const { notifyStatus } = useNotifyAT();
335
+ const { toggleNotification } = useNotification();
336
+ const queryClient = useQueryClient();
337
+ const { get, put } = useFetchClient();
338
+ const { formatAPIError } = useAPIErrorHandler();
339
+ const [isModalOpen, setIsModalOpen] = React.useState(false);
340
+ const [templateToEdit, setTemplateToEdit] = React.useState(null);
341
+ const { isLoading: isLoadingForPermissions, allowedActions: { canUpdate } } = useRBAC({
342
+ update: PERMISSIONS.updateEmailTemplates
343
+ });
344
+ const { isLoading: isLoadingData, data } = useQuery([
345
+ 'users-permissions',
346
+ 'email-templates'
347
+ ], async ()=>{
348
+ const { data } = await get('/users-permissions/email-templates');
349
+ return data;
350
+ }, {
351
+ onSuccess () {
352
+ notifyStatus(formatMessage({
353
+ id: getTrad('Email.template.data.loaded'),
354
+ defaultMessage: 'Email templates has been loaded'
355
+ }));
356
+ },
357
+ onError (error) {
358
+ toggleNotification({
359
+ type: 'danger',
360
+ message: formatAPIError(error)
361
+ });
362
+ }
363
+ });
364
+ const isLoading = isLoadingForPermissions || isLoadingData;
365
+ const handleToggle = ()=>{
366
+ setIsModalOpen((prev)=>!prev);
367
+ };
368
+ const handleEditClick = (template)=>{
369
+ setTemplateToEdit(template);
370
+ handleToggle();
371
+ };
372
+ const submitMutation = useMutation((body)=>put('/users-permissions/email-templates', {
373
+ 'email-templates': body
374
+ }), {
375
+ async onSuccess () {
376
+ await queryClient.invalidateQueries([
377
+ 'users-permissions',
378
+ 'email-templates'
379
+ ]);
380
+ toggleNotification({
381
+ type: 'success',
382
+ message: formatMessage({
383
+ id: 'notification.success.saved',
384
+ defaultMessage: 'Saved'
385
+ })
386
+ });
387
+ trackUsage('didEditEmailTemplates');
388
+ handleToggle();
389
+ },
390
+ onError (error) {
391
+ toggleNotification({
392
+ type: 'danger',
393
+ message: formatAPIError(error)
394
+ });
395
+ },
396
+ refetchActive: true
397
+ });
398
+ const handleSubmit = (body)=>{
399
+ trackUsage('willEditEmailTemplates');
400
+ const editedTemplates = {
401
+ ...data,
402
+ [templateToEdit]: body
403
+ };
404
+ submitMutation.mutate(editedTemplates);
405
+ };
406
+ if (isLoading) {
407
+ return /*#__PURE__*/ jsx(Page.Loading, {});
408
+ }
409
+ return /*#__PURE__*/ jsxs(Page.Main, {
410
+ "aria-busy": submitMutation.isLoading,
411
+ children: [
412
+ /*#__PURE__*/ jsx(Page.Title, {
413
+ children: formatMessage({
414
+ id: 'Settings.PageTitle',
415
+ defaultMessage: 'Settings - {name}'
416
+ }, {
417
+ name: formatMessage({
418
+ id: getTrad('HeaderNav.link.emailTemplates'),
419
+ defaultMessage: 'Email templates'
420
+ })
421
+ })
422
+ }),
423
+ /*#__PURE__*/ jsx(Layouts.Header, {
424
+ title: formatMessage({
425
+ id: getTrad('HeaderNav.link.emailTemplates'),
426
+ defaultMessage: 'Email templates'
427
+ })
428
+ }),
429
+ /*#__PURE__*/ jsxs(Layouts.Content, {
430
+ children: [
431
+ /*#__PURE__*/ jsx(EmailTable, {
432
+ onEditClick: handleEditClick,
433
+ canUpdate: canUpdate
434
+ }),
435
+ /*#__PURE__*/ jsx(EmailForm, {
436
+ template: data[templateToEdit],
437
+ onToggle: handleToggle,
438
+ open: isModalOpen,
439
+ onSubmit: handleSubmit
440
+ })
441
+ ]
442
+ })
443
+ ]
444
+ });
445
+ };
446
+
447
+ export { EmailTemplatesPage, ProtectedEmailTemplatesPage };
448
+ //# sourceMappingURL=index-De_N0gr1.js.map