@strapi/plugin-users-permissions 5.9.0 → 5.10.0

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,718 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { useTracking, Layouts } from '@strapi/admin/strapi-admin';
4
+ import { Field, Toggle, TextInput, Modal, Breadcrumbs, Crumb, Flex, Grid, Button, useCollator, Table, Thead, Tr, Th, Typography, VisuallyHidden, Tbody, Td, IconButton } from '@strapi/design-system';
5
+ import { Pencil } from '@strapi/icons';
6
+ import { translatedErrors, useNotification, useFetchClient, useAPIErrorHandler, useRBAC, Page } from '@strapi/strapi/admin';
7
+ import upperFirst from 'lodash/upperFirst';
8
+ import { useIntl } from 'react-intl';
9
+ import { useQueryClient, useQuery, useMutation } from 'react-query';
10
+ import { Formik, Form } from 'formik';
11
+ import PropTypes from 'prop-types';
12
+ import { g as getTrad, P as PERMISSIONS } from './index-B-Z_z_qb.mjs';
13
+ import 'lodash/isEmpty';
14
+ import * as yup from 'yup';
15
+
16
+ const Input = ({ description, disabled, intlLabel, error, name, onChange, placeholder, providerToEditName, type, value })=>{
17
+ const { formatMessage } = useIntl();
18
+ const inputValue = name === 'noName' ? `${window.strapi.backendURL}/api/connect/${providerToEditName}/callback` : value;
19
+ const label = formatMessage({
20
+ id: intlLabel.id,
21
+ defaultMessage: intlLabel.defaultMessage
22
+ }, {
23
+ provider: providerToEditName,
24
+ ...intlLabel.values
25
+ });
26
+ const hint = description ? formatMessage({
27
+ id: description.id,
28
+ defaultMessage: description.defaultMessage
29
+ }, {
30
+ provider: providerToEditName,
31
+ ...description.values
32
+ }) : '';
33
+ if (type === 'bool') {
34
+ return /*#__PURE__*/ jsxs(Field.Root, {
35
+ hint: hint,
36
+ name: name,
37
+ children: [
38
+ /*#__PURE__*/ jsx(Field.Label, {
39
+ children: label
40
+ }),
41
+ /*#__PURE__*/ jsx(Toggle, {
42
+ "aria-label": name,
43
+ checked: value,
44
+ disabled: disabled,
45
+ offLabel: formatMessage({
46
+ id: 'app.components.ToggleCheckbox.off-label',
47
+ defaultMessage: 'Off'
48
+ }),
49
+ onLabel: formatMessage({
50
+ id: 'app.components.ToggleCheckbox.on-label',
51
+ defaultMessage: 'On'
52
+ }),
53
+ onChange: (e)=>{
54
+ onChange({
55
+ target: {
56
+ name,
57
+ value: e.target.checked
58
+ }
59
+ });
60
+ }
61
+ }),
62
+ /*#__PURE__*/ jsx(Field.Hint, {})
63
+ ]
64
+ });
65
+ }
66
+ const formattedPlaceholder = placeholder ? formatMessage({
67
+ id: placeholder.id,
68
+ defaultMessage: placeholder.defaultMessage
69
+ }, {
70
+ ...placeholder.values
71
+ }) : '';
72
+ const errorMessage = error ? formatMessage({
73
+ id: error,
74
+ defaultMessage: error
75
+ }) : '';
76
+ return /*#__PURE__*/ jsxs(Field.Root, {
77
+ error: errorMessage,
78
+ name: name,
79
+ children: [
80
+ /*#__PURE__*/ jsx(Field.Label, {
81
+ children: label
82
+ }),
83
+ /*#__PURE__*/ jsx(TextInput, {
84
+ disabled: disabled,
85
+ onChange: onChange,
86
+ placeholder: formattedPlaceholder,
87
+ type: type,
88
+ value: inputValue
89
+ }),
90
+ /*#__PURE__*/ jsx(Field.Error, {})
91
+ ]
92
+ });
93
+ };
94
+ Input.defaultProps = {
95
+ description: null,
96
+ disabled: false,
97
+ error: '',
98
+ placeholder: null,
99
+ value: ''
100
+ };
101
+ Input.propTypes = {
102
+ description: PropTypes.shape({
103
+ id: PropTypes.string.isRequired,
104
+ defaultMessage: PropTypes.string.isRequired,
105
+ values: PropTypes.object
106
+ }),
107
+ disabled: PropTypes.bool,
108
+ error: PropTypes.string,
109
+ intlLabel: PropTypes.shape({
110
+ id: PropTypes.string.isRequired,
111
+ defaultMessage: PropTypes.string.isRequired,
112
+ values: PropTypes.object
113
+ }).isRequired,
114
+ name: PropTypes.string.isRequired,
115
+ onChange: PropTypes.func.isRequired,
116
+ placeholder: PropTypes.shape({
117
+ id: PropTypes.string.isRequired,
118
+ defaultMessage: PropTypes.string.isRequired,
119
+ values: PropTypes.object
120
+ }),
121
+ providerToEditName: PropTypes.string.isRequired,
122
+ type: PropTypes.string.isRequired,
123
+ value: PropTypes.oneOfType([
124
+ PropTypes.bool,
125
+ PropTypes.string
126
+ ])
127
+ };
128
+
129
+ const FormModal = ({ headerBreadcrumbs, initialData, isSubmiting, layout, isOpen, onSubmit, onToggle, providerToEditName })=>{
130
+ const { formatMessage } = useIntl();
131
+ return /*#__PURE__*/ jsx(Modal.Root, {
132
+ open: isOpen,
133
+ onOpenChange: onToggle,
134
+ children: /*#__PURE__*/ jsxs(Modal.Content, {
135
+ children: [
136
+ /*#__PURE__*/ jsx(Modal.Header, {
137
+ children: /*#__PURE__*/ jsx(Breadcrumbs, {
138
+ label: headerBreadcrumbs.join(', '),
139
+ children: headerBreadcrumbs.map((crumb, index, arr)=>/*#__PURE__*/ jsx(Crumb, {
140
+ isCurrent: index === arr.length - 1,
141
+ children: crumb
142
+ }, crumb))
143
+ })
144
+ }),
145
+ /*#__PURE__*/ jsx(Formik, {
146
+ onSubmit: (values)=>onSubmit(values),
147
+ initialValues: initialData,
148
+ validationSchema: layout.schema,
149
+ validateOnChange: false,
150
+ children: ({ errors, handleChange, values })=>{
151
+ return /*#__PURE__*/ jsxs(Form, {
152
+ children: [
153
+ /*#__PURE__*/ jsx(Modal.Body, {
154
+ children: /*#__PURE__*/ jsx(Flex, {
155
+ direction: "column",
156
+ alignItems: "stretch",
157
+ gap: 1,
158
+ children: /*#__PURE__*/ jsx(Grid.Root, {
159
+ gap: 5,
160
+ children: layout.form.map((row)=>{
161
+ return row.map((input)=>{
162
+ return /*#__PURE__*/ jsx(Grid.Item, {
163
+ col: input.size,
164
+ xs: 12,
165
+ direction: "column",
166
+ alignItems: "stretch",
167
+ children: /*#__PURE__*/ jsx(Input, {
168
+ ...input,
169
+ error: errors[input.name],
170
+ onChange: handleChange,
171
+ value: values[input.name],
172
+ providerToEditName: providerToEditName
173
+ })
174
+ }, input.name);
175
+ });
176
+ })
177
+ })
178
+ })
179
+ }),
180
+ /*#__PURE__*/ jsxs(Modal.Footer, {
181
+ children: [
182
+ /*#__PURE__*/ jsx(Button, {
183
+ variant: "tertiary",
184
+ onClick: onToggle,
185
+ type: "button",
186
+ children: formatMessage({
187
+ id: 'app.components.Button.cancel',
188
+ defaultMessage: 'Cancel'
189
+ })
190
+ }),
191
+ /*#__PURE__*/ jsx(Button, {
192
+ type: "submit",
193
+ loading: isSubmiting,
194
+ children: formatMessage({
195
+ id: 'global.save',
196
+ defaultMessage: 'Save'
197
+ })
198
+ })
199
+ ]
200
+ })
201
+ ]
202
+ });
203
+ }
204
+ })
205
+ ]
206
+ })
207
+ });
208
+ };
209
+ FormModal.defaultProps = {
210
+ initialData: null,
211
+ providerToEditName: null
212
+ };
213
+ FormModal.propTypes = {
214
+ headerBreadcrumbs: PropTypes.arrayOf(PropTypes.string).isRequired,
215
+ initialData: PropTypes.object,
216
+ layout: PropTypes.shape({
217
+ form: PropTypes.arrayOf(PropTypes.array),
218
+ schema: PropTypes.object
219
+ }).isRequired,
220
+ isOpen: PropTypes.bool.isRequired,
221
+ isSubmiting: PropTypes.bool.isRequired,
222
+ onSubmit: PropTypes.func.isRequired,
223
+ onToggle: PropTypes.func.isRequired,
224
+ providerToEditName: PropTypes.string
225
+ };
226
+
227
+ const callbackLabel = {
228
+ id: getTrad('PopUpForm.Providers.redirectURL.front-end.label'),
229
+ defaultMessage: 'The redirect URL to your front-end app'
230
+ };
231
+ const callbackPlaceholder = {
232
+ id: 'http://www.client-app.com',
233
+ defaultMessage: 'http://www.client-app.com'
234
+ };
235
+ const enabledDescription = {
236
+ id: getTrad('PopUpForm.Providers.enabled.description'),
237
+ defaultMessage: "If disabled, users won't be able to use this provider."
238
+ };
239
+ const enabledLabel = {
240
+ id: getTrad('PopUpForm.Providers.enabled.label'),
241
+ defaultMessage: 'Enable'
242
+ };
243
+ const keyLabel = {
244
+ id: getTrad('PopUpForm.Providers.key.label'),
245
+ defaultMessage: 'Client ID'
246
+ };
247
+ const hintLabel = {
248
+ id: getTrad('PopUpForm.Providers.redirectURL.label'),
249
+ defaultMessage: 'The redirect URL to add in your {provider} application configurations'
250
+ };
251
+ const textPlaceholder = {
252
+ id: getTrad('PopUpForm.Providers.key.placeholder'),
253
+ defaultMessage: 'TEXT'
254
+ };
255
+ const secretLabel = {
256
+ id: getTrad('PopUpForm.Providers.secret.label'),
257
+ defaultMessage: 'Client Secret'
258
+ };
259
+ const CALLBACK_REGEX = /^$|^[a-z][a-z0-9+.-]*:\/\/[^\s/$.?#](?:[^\s]*[^\s/$.?#])?$/i;
260
+ const SUBDOMAIN_REGEX = /^(([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+)(:\d+)?(\/\S*)?$/i;
261
+ const forms = {
262
+ email: {
263
+ form: [
264
+ [
265
+ {
266
+ intlLabel: enabledLabel,
267
+ name: 'enabled',
268
+ type: 'bool',
269
+ description: enabledDescription,
270
+ size: 6
271
+ }
272
+ ]
273
+ ],
274
+ schema: yup.object().shape({
275
+ enabled: yup.bool().required(translatedErrors.required.id)
276
+ })
277
+ },
278
+ providers: {
279
+ form: [
280
+ [
281
+ {
282
+ intlLabel: enabledLabel,
283
+ name: 'enabled',
284
+ type: 'bool',
285
+ description: enabledDescription,
286
+ size: 6,
287
+ validations: {
288
+ required: true
289
+ }
290
+ }
291
+ ],
292
+ [
293
+ {
294
+ intlLabel: keyLabel,
295
+ name: 'key',
296
+ type: 'text',
297
+ placeholder: textPlaceholder,
298
+ size: 12,
299
+ validations: {
300
+ required: true
301
+ }
302
+ }
303
+ ],
304
+ [
305
+ {
306
+ intlLabel: secretLabel,
307
+ name: 'secret',
308
+ type: 'text',
309
+ placeholder: textPlaceholder,
310
+ size: 12,
311
+ validations: {
312
+ required: true
313
+ }
314
+ }
315
+ ],
316
+ [
317
+ {
318
+ intlLabel: callbackLabel,
319
+ placeholder: callbackPlaceholder,
320
+ name: 'callback',
321
+ type: 'text',
322
+ size: 12,
323
+ validations: {
324
+ required: true
325
+ }
326
+ }
327
+ ],
328
+ [
329
+ {
330
+ intlLabel: hintLabel,
331
+ name: 'noName',
332
+ type: 'text',
333
+ validations: {},
334
+ size: 12,
335
+ disabled: true
336
+ }
337
+ ]
338
+ ],
339
+ schema: yup.object().shape({
340
+ enabled: yup.bool().required(translatedErrors.required.id),
341
+ key: yup.string().when('enabled', {
342
+ is: true,
343
+ then: yup.string().required(translatedErrors.required.id),
344
+ otherwise: yup.string()
345
+ }),
346
+ secret: yup.string().when('enabled', {
347
+ is: true,
348
+ then: yup.string().required(translatedErrors.required.id),
349
+ otherwise: yup.string()
350
+ }),
351
+ callback: yup.string().when('enabled', {
352
+ is: true,
353
+ then: yup.string().matches(CALLBACK_REGEX, translatedErrors.regex.id).required(translatedErrors.required.id),
354
+ otherwise: yup.string()
355
+ })
356
+ })
357
+ },
358
+ providersWithSubdomain: {
359
+ form: [
360
+ [
361
+ {
362
+ intlLabel: enabledLabel,
363
+ name: 'enabled',
364
+ type: 'bool',
365
+ description: enabledDescription,
366
+ size: 6,
367
+ validations: {
368
+ required: true
369
+ }
370
+ }
371
+ ],
372
+ [
373
+ {
374
+ intlLabel: keyLabel,
375
+ name: 'key',
376
+ type: 'text',
377
+ placeholder: textPlaceholder,
378
+ size: 12,
379
+ validations: {
380
+ required: true
381
+ }
382
+ }
383
+ ],
384
+ [
385
+ {
386
+ intlLabel: secretLabel,
387
+ name: 'secret',
388
+ type: 'text',
389
+ placeholder: textPlaceholder,
390
+ size: 12,
391
+ validations: {
392
+ required: true
393
+ }
394
+ }
395
+ ],
396
+ [
397
+ {
398
+ intlLabel: {
399
+ id: getTrad({
400
+ id: 'PopUpForm.Providers.jwksurl.label'
401
+ }),
402
+ defaultMessage: 'JWKS URL'
403
+ },
404
+ name: 'jwksurl',
405
+ type: 'text',
406
+ placeholder: textPlaceholder,
407
+ size: 12,
408
+ validations: {
409
+ required: false
410
+ }
411
+ }
412
+ ],
413
+ [
414
+ {
415
+ intlLabel: {
416
+ id: getTrad('PopUpForm.Providers.subdomain.label'),
417
+ defaultMessage: 'Host URI (Subdomain)'
418
+ },
419
+ name: 'subdomain',
420
+ type: 'text',
421
+ placeholder: {
422
+ id: getTrad('PopUpForm.Providers.subdomain.placeholder'),
423
+ defaultMessage: 'my.subdomain.com'
424
+ },
425
+ size: 12,
426
+ validations: {
427
+ required: true
428
+ }
429
+ }
430
+ ],
431
+ [
432
+ {
433
+ intlLabel: callbackLabel,
434
+ placeholder: callbackPlaceholder,
435
+ name: 'callback',
436
+ type: 'text',
437
+ size: 12,
438
+ validations: {
439
+ required: true
440
+ }
441
+ }
442
+ ],
443
+ [
444
+ {
445
+ intlLabel: hintLabel,
446
+ name: 'noName',
447
+ type: 'text',
448
+ validations: {},
449
+ size: 12,
450
+ disabled: true
451
+ }
452
+ ]
453
+ ],
454
+ schema: yup.object().shape({
455
+ enabled: yup.bool().required(translatedErrors.required.id),
456
+ key: yup.string().when('enabled', {
457
+ is: true,
458
+ then: yup.string().required(translatedErrors.required.id),
459
+ otherwise: yup.string()
460
+ }),
461
+ secret: yup.string().when('enabled', {
462
+ is: true,
463
+ then: yup.string().required(translatedErrors.required.id),
464
+ otherwise: yup.string()
465
+ }),
466
+ subdomain: yup.string().when('enabled', {
467
+ is: true,
468
+ then: yup.string().matches(SUBDOMAIN_REGEX, translatedErrors.regex.id).required(translatedErrors.required.id),
469
+ otherwise: yup.string()
470
+ }),
471
+ callback: yup.string().when('enabled', {
472
+ is: true,
473
+ then: yup.string().matches(CALLBACK_REGEX, translatedErrors.regex.id).required(translatedErrors.required.id),
474
+ otherwise: yup.string()
475
+ })
476
+ })
477
+ }
478
+ };
479
+
480
+ const ProvidersPage = ()=>{
481
+ const { formatMessage, locale } = useIntl();
482
+ const queryClient = useQueryClient();
483
+ const { trackUsage } = useTracking();
484
+ const [isOpen, setIsOpen] = React.useState(false);
485
+ const [providerToEditName, setProviderToEditName] = React.useState(null);
486
+ const { toggleNotification } = useNotification();
487
+ const { get, put } = useFetchClient();
488
+ const { formatAPIError } = useAPIErrorHandler();
489
+ const formatter = useCollator(locale, {
490
+ sensitivity: 'base'
491
+ });
492
+ const { isLoading: isLoadingPermissions, allowedActions: { canUpdate } } = useRBAC({
493
+ update: PERMISSIONS.updateProviders
494
+ });
495
+ const { isLoading: isLoadingData, data } = useQuery([
496
+ 'users-permissions',
497
+ 'get-providers'
498
+ ], async ()=>{
499
+ const { data } = await get('/users-permissions/providers');
500
+ return data;
501
+ }, {
502
+ initialData: {}
503
+ });
504
+ const submitMutation = useMutation((body)=>put('/users-permissions/providers', body), {
505
+ async onSuccess () {
506
+ await queryClient.invalidateQueries([
507
+ 'users-permissions',
508
+ 'get-providers'
509
+ ]);
510
+ toggleNotification({
511
+ type: 'success',
512
+ message: formatMessage({
513
+ id: getTrad('notification.success.submit')
514
+ })
515
+ });
516
+ trackUsage('didEditAuthenticationProvider');
517
+ handleToggleModal();
518
+ },
519
+ onError (error) {
520
+ toggleNotification({
521
+ type: 'danger',
522
+ message: formatAPIError(error)
523
+ });
524
+ },
525
+ refetchActive: false
526
+ });
527
+ const providers = Object.entries(data).reduce((acc, [name, provider])=>{
528
+ const { icon, enabled, subdomain } = provider;
529
+ acc.push({
530
+ name,
531
+ icon: icon === 'envelope' ? [
532
+ 'fas',
533
+ 'envelope'
534
+ ] : [
535
+ 'fab',
536
+ icon
537
+ ],
538
+ enabled,
539
+ subdomain
540
+ });
541
+ return acc;
542
+ }, []).sort((a, b)=>formatter.compare(a.name, b.name));
543
+ const isLoading = isLoadingData || isLoadingPermissions;
544
+ const isProviderWithSubdomain = React.useMemo(()=>{
545
+ if (!providerToEditName) {
546
+ return false;
547
+ }
548
+ const providerToEdit = providers.find((obj)=>obj.name === providerToEditName);
549
+ return !!providerToEdit?.subdomain;
550
+ }, [
551
+ providers,
552
+ providerToEditName
553
+ ]);
554
+ const layoutToRender = React.useMemo(()=>{
555
+ if (providerToEditName === 'email') {
556
+ return forms.email;
557
+ }
558
+ if (isProviderWithSubdomain) {
559
+ return forms.providersWithSubdomain;
560
+ }
561
+ return forms.providers;
562
+ }, [
563
+ providerToEditName,
564
+ isProviderWithSubdomain
565
+ ]);
566
+ const handleToggleModal = ()=>{
567
+ setIsOpen((prev)=>!prev);
568
+ };
569
+ const handleClickEdit = (provider)=>{
570
+ if (canUpdate) {
571
+ setProviderToEditName(provider.name);
572
+ handleToggleModal();
573
+ }
574
+ };
575
+ const handleSubmit = async (values)=>{
576
+ trackUsage('willEditAuthenticationProvider');
577
+ submitMutation.mutate({
578
+ providers: {
579
+ ...data,
580
+ [providerToEditName]: values
581
+ }
582
+ });
583
+ };
584
+ if (isLoading) {
585
+ return /*#__PURE__*/ jsx(Page.Loading, {});
586
+ }
587
+ return /*#__PURE__*/ jsxs(Layouts.Root, {
588
+ children: [
589
+ /*#__PURE__*/ jsx(Page.Title, {
590
+ children: formatMessage({
591
+ id: 'Settings.PageTitle',
592
+ defaultMessage: 'Settings - {name}'
593
+ }, {
594
+ name: formatMessage({
595
+ id: getTrad('HeaderNav.link.providers'),
596
+ defaultMessage: 'Providers'
597
+ })
598
+ })
599
+ }),
600
+ /*#__PURE__*/ jsxs(Page.Main, {
601
+ children: [
602
+ /*#__PURE__*/ jsx(Layouts.Header, {
603
+ title: formatMessage({
604
+ id: getTrad('HeaderNav.link.providers'),
605
+ defaultMessage: 'Providers'
606
+ })
607
+ }),
608
+ /*#__PURE__*/ jsx(Layouts.Content, {
609
+ children: /*#__PURE__*/ jsxs(Table, {
610
+ colCount: 3,
611
+ rowCount: providers.length + 1,
612
+ children: [
613
+ /*#__PURE__*/ jsx(Thead, {
614
+ children: /*#__PURE__*/ jsxs(Tr, {
615
+ children: [
616
+ /*#__PURE__*/ jsx(Th, {
617
+ children: /*#__PURE__*/ jsx(Typography, {
618
+ variant: "sigma",
619
+ textColor: "neutral600",
620
+ children: formatMessage({
621
+ id: 'global.name',
622
+ defaultMessage: 'Name'
623
+ })
624
+ })
625
+ }),
626
+ /*#__PURE__*/ jsx(Th, {
627
+ children: /*#__PURE__*/ jsx(Typography, {
628
+ variant: "sigma",
629
+ textColor: "neutral600",
630
+ children: formatMessage({
631
+ id: getTrad('Providers.status'),
632
+ defaultMessage: 'Status'
633
+ })
634
+ })
635
+ }),
636
+ /*#__PURE__*/ jsx(Th, {
637
+ children: /*#__PURE__*/ jsx(Typography, {
638
+ variant: "sigma",
639
+ children: /*#__PURE__*/ jsx(VisuallyHidden, {
640
+ children: formatMessage({
641
+ id: 'global.settings',
642
+ defaultMessage: 'Settings'
643
+ })
644
+ })
645
+ })
646
+ })
647
+ ]
648
+ })
649
+ }),
650
+ /*#__PURE__*/ jsx(Tbody, {
651
+ children: providers.map((provider)=>/*#__PURE__*/ jsxs(Tr, {
652
+ onClick: ()=>canUpdate ? handleClickEdit(provider) : undefined,
653
+ children: [
654
+ /*#__PURE__*/ jsx(Td, {
655
+ width: "45%",
656
+ children: /*#__PURE__*/ jsx(Typography, {
657
+ fontWeight: "semiBold",
658
+ textColor: "neutral800",
659
+ children: provider.name
660
+ })
661
+ }),
662
+ /*#__PURE__*/ jsx(Td, {
663
+ width: "65%",
664
+ children: /*#__PURE__*/ jsx(Typography, {
665
+ textColor: provider.enabled ? 'success600' : 'danger600',
666
+ "data-testid": `enable-${provider.name}`,
667
+ children: provider.enabled ? formatMessage({
668
+ id: 'global.enabled',
669
+ defaultMessage: 'Enabled'
670
+ }) : formatMessage({
671
+ id: 'global.disabled',
672
+ defaultMessage: 'Disabled'
673
+ })
674
+ })
675
+ }),
676
+ /*#__PURE__*/ jsx(Td, {
677
+ onClick: (e)=>e.stopPropagation(),
678
+ children: canUpdate && /*#__PURE__*/ jsx(IconButton, {
679
+ onClick: ()=>handleClickEdit(provider),
680
+ variant: "ghost",
681
+ label: "Edit",
682
+ children: /*#__PURE__*/ jsx(Pencil, {})
683
+ })
684
+ })
685
+ ]
686
+ }, provider.name))
687
+ })
688
+ ]
689
+ })
690
+ })
691
+ ]
692
+ }),
693
+ /*#__PURE__*/ jsx(FormModal, {
694
+ initialData: data[providerToEditName],
695
+ isOpen: isOpen,
696
+ isSubmiting: submitMutation.isLoading,
697
+ layout: layoutToRender,
698
+ headerBreadcrumbs: [
699
+ formatMessage({
700
+ id: getTrad('PopUpForm.header.edit.providers'),
701
+ defaultMessage: 'Edit Provider'
702
+ }),
703
+ upperFirst(providerToEditName)
704
+ ],
705
+ onToggle: handleToggleModal,
706
+ onSubmit: handleSubmit,
707
+ providerToEditName: providerToEditName
708
+ })
709
+ ]
710
+ });
711
+ };
712
+ const ProtectedProvidersPage = ()=>/*#__PURE__*/ jsx(Page.Protect, {
713
+ permissions: PERMISSIONS.readProviders,
714
+ children: /*#__PURE__*/ jsx(ProvidersPage, {})
715
+ });
716
+
717
+ export { ProvidersPage, ProtectedProvidersPage as default };
718
+ //# sourceMappingURL=index-COXjHxFm.mjs.map