@strapi/plugin-users-permissions 5.0.0-beta.5 → 5.0.0-beta.6

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 (134) hide show
  1. package/admin/src/components/FormModal/index.jsx +1 -1
  2. package/admin/src/pages/EmailTemplates/components/EmailForm.jsx +1 -1
  3. package/admin/src/pages/EmailTemplates/components/EmailTable.jsx +13 -18
  4. package/admin/src/pages/Roles/pages/ListPage/components/TableBody.jsx +4 -4
  5. package/admin/src/pages/Roles/pages/ListPage/index.jsx +1 -1
  6. package/package.json +6 -6
  7. package/dist/_chunks/ar-BguGUqwK.js +0 -44
  8. package/dist/_chunks/ar-BguGUqwK.js.map +0 -1
  9. package/dist/_chunks/ar-CK8BRRXB.mjs +0 -44
  10. package/dist/_chunks/ar-CK8BRRXB.mjs.map +0 -1
  11. package/dist/_chunks/cs-BVigMk0l.mjs +0 -50
  12. package/dist/_chunks/cs-BVigMk0l.mjs.map +0 -1
  13. package/dist/_chunks/cs-BW8-K_GY.js +0 -50
  14. package/dist/_chunks/cs-BW8-K_GY.js.map +0 -1
  15. package/dist/_chunks/de-BKUdRFI4.mjs +0 -62
  16. package/dist/_chunks/de-BKUdRFI4.mjs.map +0 -1
  17. package/dist/_chunks/de-owXpVluI.js +0 -62
  18. package/dist/_chunks/de-owXpVluI.js.map +0 -1
  19. package/dist/_chunks/dk-BQiTK50l.mjs +0 -86
  20. package/dist/_chunks/dk-BQiTK50l.mjs.map +0 -1
  21. package/dist/_chunks/dk-LXAnbuBk.js +0 -86
  22. package/dist/_chunks/dk-LXAnbuBk.js.map +0 -1
  23. package/dist/_chunks/en-DOHtPf-2.mjs +0 -86
  24. package/dist/_chunks/en-DOHtPf-2.mjs.map +0 -1
  25. package/dist/_chunks/en-MHo5mcsU.js +0 -86
  26. package/dist/_chunks/en-MHo5mcsU.js.map +0 -1
  27. package/dist/_chunks/es-BwLCLXAQ.js +0 -86
  28. package/dist/_chunks/es-BwLCLXAQ.js.map +0 -1
  29. package/dist/_chunks/es-DNgOVMjD.mjs +0 -86
  30. package/dist/_chunks/es-DNgOVMjD.mjs.map +0 -1
  31. package/dist/_chunks/fr-DkgRugiU.mjs +0 -50
  32. package/dist/_chunks/fr-DkgRugiU.mjs.map +0 -1
  33. package/dist/_chunks/fr-DkhpSjjm.js +0 -50
  34. package/dist/_chunks/fr-DkhpSjjm.js.map +0 -1
  35. package/dist/_chunks/id-BTemOeTZ.js +0 -62
  36. package/dist/_chunks/id-BTemOeTZ.js.map +0 -1
  37. package/dist/_chunks/id-BdEsvnaF.mjs +0 -62
  38. package/dist/_chunks/id-BdEsvnaF.mjs.map +0 -1
  39. package/dist/_chunks/index-3MYZ88xc-BF_n1AVy.mjs +0 -10310
  40. package/dist/_chunks/index-3MYZ88xc-BF_n1AVy.mjs.map +0 -1
  41. package/dist/_chunks/index-3MYZ88xc-_tlNeVkL.js +0 -10334
  42. package/dist/_chunks/index-3MYZ88xc-_tlNeVkL.js.map +0 -1
  43. package/dist/_chunks/index-BTq-ZJe4.mjs +0 -249
  44. package/dist/_chunks/index-BTq-ZJe4.mjs.map +0 -1
  45. package/dist/_chunks/index-BcVrVSWh.js +0 -1174
  46. package/dist/_chunks/index-BcVrVSWh.js.map +0 -1
  47. package/dist/_chunks/index-BnYxQhNf.mjs +0 -611
  48. package/dist/_chunks/index-BnYxQhNf.mjs.map +0 -1
  49. package/dist/_chunks/index-BqRcQLbX.js +0 -248
  50. package/dist/_chunks/index-BqRcQLbX.js.map +0 -1
  51. package/dist/_chunks/index-CKKnf-Tb.js +0 -634
  52. package/dist/_chunks/index-CKKnf-Tb.js.map +0 -1
  53. package/dist/_chunks/index-CiXGPtL-.js +0 -272
  54. package/dist/_chunks/index-CiXGPtL-.js.map +0 -1
  55. package/dist/_chunks/index-DnKoxcjm.mjs +0 -253
  56. package/dist/_chunks/index-DnKoxcjm.mjs.map +0 -1
  57. package/dist/_chunks/index-DsMCh6W5.mjs +0 -336
  58. package/dist/_chunks/index-DsMCh6W5.mjs.map +0 -1
  59. package/dist/_chunks/index-DsumUSPh.mjs +0 -1143
  60. package/dist/_chunks/index-DsumUSPh.mjs.map +0 -1
  61. package/dist/_chunks/index-cSq8h4Av.js +0 -358
  62. package/dist/_chunks/index-cSq8h4Av.js.map +0 -1
  63. package/dist/_chunks/it-B-rv0E24.mjs +0 -62
  64. package/dist/_chunks/it-B-rv0E24.mjs.map +0 -1
  65. package/dist/_chunks/it-D1rH6V6_.js +0 -62
  66. package/dist/_chunks/it-D1rH6V6_.js.map +0 -1
  67. package/dist/_chunks/ja-C8K-VBPD.mjs +0 -48
  68. package/dist/_chunks/ja-C8K-VBPD.mjs.map +0 -1
  69. package/dist/_chunks/ja-DqShgTMf.js +0 -48
  70. package/dist/_chunks/ja-DqShgTMf.js.map +0 -1
  71. package/dist/_chunks/ko-B9DGEPWH.js +0 -86
  72. package/dist/_chunks/ko-B9DGEPWH.js.map +0 -1
  73. package/dist/_chunks/ko-Busb0wIY.mjs +0 -86
  74. package/dist/_chunks/ko-Busb0wIY.mjs.map +0 -1
  75. package/dist/_chunks/ms-ByvsQjRt.mjs +0 -49
  76. package/dist/_chunks/ms-ByvsQjRt.mjs.map +0 -1
  77. package/dist/_chunks/ms-CPBU3LWf.js +0 -49
  78. package/dist/_chunks/ms-CPBU3LWf.js.map +0 -1
  79. package/dist/_chunks/nl-5qO8Rpcy.mjs +0 -48
  80. package/dist/_chunks/nl-5qO8Rpcy.mjs.map +0 -1
  81. package/dist/_chunks/nl-CwNB6YoO.js +0 -48
  82. package/dist/_chunks/nl-CwNB6YoO.js.map +0 -1
  83. package/dist/_chunks/pl-BdIzifBE.mjs +0 -86
  84. package/dist/_chunks/pl-BdIzifBE.mjs.map +0 -1
  85. package/dist/_chunks/pl-Do9UD69f.js +0 -86
  86. package/dist/_chunks/pl-Do9UD69f.js.map +0 -1
  87. package/dist/_chunks/pt-BIO24ioG.mjs +0 -48
  88. package/dist/_chunks/pt-BIO24ioG.mjs.map +0 -1
  89. package/dist/_chunks/pt-BR-D7dZhxuP.js +0 -44
  90. package/dist/_chunks/pt-BR-D7dZhxuP.js.map +0 -1
  91. package/dist/_chunks/pt-BR-f0p23AQZ.mjs +0 -44
  92. package/dist/_chunks/pt-BR-f0p23AQZ.mjs.map +0 -1
  93. package/dist/_chunks/pt-fdvyOnUp.js +0 -48
  94. package/dist/_chunks/pt-fdvyOnUp.js.map +0 -1
  95. package/dist/_chunks/ru-C94rjPGA.js +0 -86
  96. package/dist/_chunks/ru-C94rjPGA.js.map +0 -1
  97. package/dist/_chunks/ru-VWy-IB7K.mjs +0 -86
  98. package/dist/_chunks/ru-VWy-IB7K.mjs.map +0 -1
  99. package/dist/_chunks/sk-BABEhykl.js +0 -50
  100. package/dist/_chunks/sk-BABEhykl.js.map +0 -1
  101. package/dist/_chunks/sk-B_LIcepm.mjs +0 -50
  102. package/dist/_chunks/sk-B_LIcepm.mjs.map +0 -1
  103. package/dist/_chunks/sv-ABLKOokl.mjs +0 -86
  104. package/dist/_chunks/sv-ABLKOokl.mjs.map +0 -1
  105. package/dist/_chunks/sv-Be43LhA9.js +0 -86
  106. package/dist/_chunks/sv-Be43LhA9.js.map +0 -1
  107. package/dist/_chunks/th-DKyP7ueR.mjs +0 -60
  108. package/dist/_chunks/th-DKyP7ueR.mjs.map +0 -1
  109. package/dist/_chunks/th-DgVhVLhL.js +0 -60
  110. package/dist/_chunks/th-DgVhVLhL.js.map +0 -1
  111. package/dist/_chunks/tr-B_idhkEs.js +0 -85
  112. package/dist/_chunks/tr-B_idhkEs.js.map +0 -1
  113. package/dist/_chunks/tr-qa1Q5UjC.mjs +0 -85
  114. package/dist/_chunks/tr-qa1Q5UjC.mjs.map +0 -1
  115. package/dist/_chunks/uk-BmRqbeQc.mjs +0 -49
  116. package/dist/_chunks/uk-BmRqbeQc.mjs.map +0 -1
  117. package/dist/_chunks/uk-LHOivnhP.js +0 -49
  118. package/dist/_chunks/uk-LHOivnhP.js.map +0 -1
  119. package/dist/_chunks/vi-CdVRdKDw.js +0 -50
  120. package/dist/_chunks/vi-CdVRdKDw.js.map +0 -1
  121. package/dist/_chunks/vi-HW-EdMea.mjs +0 -50
  122. package/dist/_chunks/vi-HW-EdMea.mjs.map +0 -1
  123. package/dist/_chunks/zh-5hKkVPA4.mjs +0 -86
  124. package/dist/_chunks/zh-5hKkVPA4.mjs.map +0 -1
  125. package/dist/_chunks/zh-Cuq8gMnF.js +0 -86
  126. package/dist/_chunks/zh-Cuq8gMnF.js.map +0 -1
  127. package/dist/_chunks/zh-Hans-BHilK-yc.mjs +0 -86
  128. package/dist/_chunks/zh-Hans-BHilK-yc.mjs.map +0 -1
  129. package/dist/_chunks/zh-Hans-GQDMKtY4.js +0 -86
  130. package/dist/_chunks/zh-Hans-GQDMKtY4.js.map +0 -1
  131. package/dist/admin/index.js +0 -4
  132. package/dist/admin/index.js.map +0 -1
  133. package/dist/admin/index.mjs +0 -5
  134. package/dist/admin/index.mjs.map +0 -1
@@ -1,634 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
- const React = require("react");
5
- const index3MYZ88xc = require("./index-3MYZ88xc-_tlNeVkL.js");
6
- const designSystem = require("@strapi/design-system");
7
- const icons = require("@strapi/icons");
8
- const admin = require("@strapi/strapi/admin");
9
- const upperFirst = require("lodash/upperFirst");
10
- const reactIntl = require("react-intl");
11
- const reactQuery = require("react-query");
12
- const v2 = require("@strapi/design-system/v2");
13
- const formik = require("formik");
14
- const PropTypes = require("prop-types");
15
- const index = require("./index-BqRcQLbX.js");
16
- require("lodash/isEmpty");
17
- const yup = require("yup");
18
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
19
- function _interopNamespace(e) {
20
- if (e && e.__esModule)
21
- return e;
22
- const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
23
- if (e) {
24
- for (const k in e) {
25
- if (k !== "default") {
26
- const d = Object.getOwnPropertyDescriptor(e, k);
27
- Object.defineProperty(n, k, d.get ? d : {
28
- enumerable: true,
29
- get: () => e[k]
30
- });
31
- }
32
- }
33
- }
34
- n.default = e;
35
- return Object.freeze(n);
36
- }
37
- const React__namespace = /* @__PURE__ */ _interopNamespace(React);
38
- const upperFirst__default = /* @__PURE__ */ _interopDefault(upperFirst);
39
- const PropTypes__default = /* @__PURE__ */ _interopDefault(PropTypes);
40
- const yup__namespace = /* @__PURE__ */ _interopNamespace(yup);
41
- const Input = ({
42
- description,
43
- disabled,
44
- intlLabel,
45
- error,
46
- name,
47
- onChange,
48
- placeholder,
49
- providerToEditName,
50
- type,
51
- value
52
- }) => {
53
- const { formatMessage } = reactIntl.useIntl();
54
- const inputValue = name === "noName" ? `${window.strapi.backendURL}/api/connect/${providerToEditName}/callback` : value;
55
- const label = formatMessage(
56
- { id: intlLabel.id, defaultMessage: intlLabel.defaultMessage },
57
- { provider: providerToEditName, ...intlLabel.values }
58
- );
59
- const hint = description ? formatMessage(
60
- { id: description.id, defaultMessage: description.defaultMessage },
61
- { provider: providerToEditName, ...description.values }
62
- ) : "";
63
- if (type === "bool") {
64
- return /* @__PURE__ */ jsxRuntime.jsx(
65
- designSystem.ToggleInput,
66
- {
67
- "aria-label": name,
68
- checked: value,
69
- disabled,
70
- hint,
71
- label,
72
- name,
73
- offLabel: formatMessage({
74
- id: "app.components.ToggleCheckbox.off-label",
75
- defaultMessage: "Off"
76
- }),
77
- onLabel: formatMessage({
78
- id: "app.components.ToggleCheckbox.on-label",
79
- defaultMessage: "On"
80
- }),
81
- onChange: (e) => {
82
- onChange({ target: { name, value: e.target.checked } });
83
- }
84
- }
85
- );
86
- }
87
- const formattedPlaceholder = placeholder ? formatMessage(
88
- { id: placeholder.id, defaultMessage: placeholder.defaultMessage },
89
- { ...placeholder.values }
90
- ) : "";
91
- const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : "";
92
- return /* @__PURE__ */ jsxRuntime.jsx(
93
- designSystem.TextInput,
94
- {
95
- "aria-label": name,
96
- disabled,
97
- error: errorMessage,
98
- label,
99
- name,
100
- onChange,
101
- placeholder: formattedPlaceholder,
102
- type,
103
- value: inputValue
104
- }
105
- );
106
- };
107
- Input.defaultProps = {
108
- description: null,
109
- disabled: false,
110
- error: "",
111
- placeholder: null,
112
- value: ""
113
- };
114
- Input.propTypes = {
115
- description: PropTypes__default.default.shape({
116
- id: PropTypes__default.default.string.isRequired,
117
- defaultMessage: PropTypes__default.default.string.isRequired,
118
- values: PropTypes__default.default.object
119
- }),
120
- disabled: PropTypes__default.default.bool,
121
- error: PropTypes__default.default.string,
122
- intlLabel: PropTypes__default.default.shape({
123
- id: PropTypes__default.default.string.isRequired,
124
- defaultMessage: PropTypes__default.default.string.isRequired,
125
- values: PropTypes__default.default.object
126
- }).isRequired,
127
- name: PropTypes__default.default.string.isRequired,
128
- onChange: PropTypes__default.default.func.isRequired,
129
- placeholder: PropTypes__default.default.shape({
130
- id: PropTypes__default.default.string.isRequired,
131
- defaultMessage: PropTypes__default.default.string.isRequired,
132
- values: PropTypes__default.default.object
133
- }),
134
- providerToEditName: PropTypes__default.default.string.isRequired,
135
- type: PropTypes__default.default.string.isRequired,
136
- value: PropTypes__default.default.oneOfType([PropTypes__default.default.bool, PropTypes__default.default.string])
137
- };
138
- const FormModal = ({
139
- headerBreadcrumbs,
140
- initialData,
141
- isSubmiting,
142
- layout,
143
- isOpen,
144
- onSubmit,
145
- onToggle,
146
- providerToEditName
147
- }) => {
148
- const { formatMessage } = reactIntl.useIntl();
149
- if (!isOpen) {
150
- return null;
151
- }
152
- return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.ModalLayout, { onClose: onToggle, labelledBy: "title", children: [
153
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.ModalHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(v2.Breadcrumbs, { label: headerBreadcrumbs.join(", "), children: headerBreadcrumbs.map((crumb, index2, arr) => /* @__PURE__ */ jsxRuntime.jsx(v2.Crumb, { isCurrent: index2 === arr.length - 1, children: crumb }, crumb)) }) }),
154
- /* @__PURE__ */ jsxRuntime.jsx(
155
- formik.Formik,
156
- {
157
- onSubmit: (values) => onSubmit(values),
158
- initialValues: initialData,
159
- validationSchema: layout.schema,
160
- validateOnChange: false,
161
- children: ({ errors, handleChange, values }) => {
162
- return /* @__PURE__ */ jsxRuntime.jsxs(formik.Form, { children: [
163
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.ModalBody, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 1, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid, { gap: 5, children: layout.form.map((row) => {
164
- return row.map((input) => {
165
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.GridItem, { col: input.size, xs: 12, children: /* @__PURE__ */ jsxRuntime.jsx(
166
- Input,
167
- {
168
- ...input,
169
- error: errors[input.name],
170
- onChange: handleChange,
171
- value: values[input.name],
172
- providerToEditName
173
- }
174
- ) }, input.name);
175
- });
176
- }) }) }) }),
177
- /* @__PURE__ */ jsxRuntime.jsx(
178
- designSystem.ModalFooter,
179
- {
180
- startActions: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "tertiary", onClick: onToggle, type: "button", children: formatMessage({
181
- id: "app.components.Button.cancel",
182
- defaultMessage: "Cancel"
183
- }) }),
184
- endActions: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { type: "submit", loading: isSubmiting, children: formatMessage({ id: "global.save", defaultMessage: "Save" }) })
185
- }
186
- )
187
- ] });
188
- }
189
- }
190
- )
191
- ] });
192
- };
193
- FormModal.defaultProps = {
194
- initialData: null,
195
- providerToEditName: null
196
- };
197
- FormModal.propTypes = {
198
- headerBreadcrumbs: PropTypes__default.default.arrayOf(PropTypes__default.default.string).isRequired,
199
- initialData: PropTypes__default.default.object,
200
- layout: PropTypes__default.default.shape({
201
- form: PropTypes__default.default.arrayOf(PropTypes__default.default.array),
202
- schema: PropTypes__default.default.object
203
- }).isRequired,
204
- isOpen: PropTypes__default.default.bool.isRequired,
205
- isSubmiting: PropTypes__default.default.bool.isRequired,
206
- onSubmit: PropTypes__default.default.func.isRequired,
207
- onToggle: PropTypes__default.default.func.isRequired,
208
- providerToEditName: PropTypes__default.default.string
209
- };
210
- const callbackLabel = {
211
- id: index.getTrad("PopUpForm.Providers.redirectURL.front-end.label"),
212
- defaultMessage: "The redirect URL to your front-end app"
213
- };
214
- const callbackPlaceholder = {
215
- id: "http://www.client-app.com",
216
- defaultMessage: "http://www.client-app.com"
217
- };
218
- const enabledDescription = {
219
- id: index.getTrad("PopUpForm.Providers.enabled.description"),
220
- defaultMessage: "If disabled, users won't be able to use this provider."
221
- };
222
- const enabledLabel = {
223
- id: index.getTrad("PopUpForm.Providers.enabled.label"),
224
- defaultMessage: "Enable"
225
- };
226
- const keyLabel = { id: index.getTrad("PopUpForm.Providers.key.label"), defaultMessage: "Client ID" };
227
- const hintLabel = {
228
- id: index.getTrad("PopUpForm.Providers.redirectURL.label"),
229
- defaultMessage: "The redirect URL to add in your {provider} application configurations"
230
- };
231
- const textPlaceholder = {
232
- id: index.getTrad("PopUpForm.Providers.key.placeholder"),
233
- defaultMessage: "TEXT"
234
- };
235
- const secretLabel = {
236
- id: index.getTrad("PopUpForm.Providers.secret.label"),
237
- defaultMessage: "Client Secret"
238
- };
239
- const forms = {
240
- email: {
241
- form: [
242
- [
243
- {
244
- intlLabel: enabledLabel,
245
- name: "enabled",
246
- type: "bool",
247
- description: enabledDescription,
248
- size: 6
249
- // TODO check if still needed
250
- // validations: {
251
- // required: true,
252
- // },
253
- }
254
- ]
255
- ],
256
- schema: yup__namespace.object().shape({
257
- enabled: yup__namespace.bool().required(admin.translatedErrors.required.id)
258
- })
259
- },
260
- providers: {
261
- form: [
262
- [
263
- {
264
- intlLabel: enabledLabel,
265
- name: "enabled",
266
- type: "bool",
267
- description: enabledDescription,
268
- size: 6,
269
- validations: {
270
- required: true
271
- }
272
- }
273
- ],
274
- [
275
- {
276
- intlLabel: keyLabel,
277
- name: "key",
278
- type: "text",
279
- placeholder: textPlaceholder,
280
- size: 12,
281
- validations: {
282
- required: true
283
- }
284
- }
285
- ],
286
- [
287
- {
288
- intlLabel: secretLabel,
289
- name: "secret",
290
- type: "text",
291
- placeholder: textPlaceholder,
292
- size: 12,
293
- validations: {
294
- required: true
295
- }
296
- }
297
- ],
298
- [
299
- {
300
- intlLabel: callbackLabel,
301
- placeholder: callbackPlaceholder,
302
- name: "callback",
303
- type: "text",
304
- size: 12,
305
- validations: {
306
- required: true
307
- }
308
- }
309
- ],
310
- [
311
- {
312
- intlLabel: hintLabel,
313
- name: "noName",
314
- type: "text",
315
- validations: {},
316
- size: 12,
317
- disabled: true
318
- }
319
- ]
320
- ],
321
- schema: yup__namespace.object().shape({
322
- enabled: yup__namespace.bool().required(admin.translatedErrors.required.id),
323
- key: yup__namespace.string().when("enabled", {
324
- is: true,
325
- then: yup__namespace.string().required(admin.translatedErrors.required.id),
326
- otherwise: yup__namespace.string()
327
- }),
328
- secret: yup__namespace.string().when("enabled", {
329
- is: true,
330
- then: yup__namespace.string().required(admin.translatedErrors.required.id),
331
- otherwise: yup__namespace.string()
332
- }),
333
- callback: yup__namespace.string().when("enabled", {
334
- is: true,
335
- then: yup__namespace.string().required(admin.translatedErrors.required.id),
336
- otherwise: yup__namespace.string()
337
- })
338
- })
339
- },
340
- providersWithSubdomain: {
341
- form: [
342
- [
343
- {
344
- intlLabel: enabledLabel,
345
- name: "enabled",
346
- type: "bool",
347
- description: enabledDescription,
348
- size: 6,
349
- validations: {
350
- required: true
351
- }
352
- }
353
- ],
354
- [
355
- {
356
- intlLabel: keyLabel,
357
- name: "key",
358
- type: "text",
359
- placeholder: textPlaceholder,
360
- size: 12,
361
- validations: {
362
- required: true
363
- }
364
- }
365
- ],
366
- [
367
- {
368
- intlLabel: secretLabel,
369
- name: "secret",
370
- type: "text",
371
- placeholder: textPlaceholder,
372
- size: 12,
373
- validations: {
374
- required: true
375
- }
376
- }
377
- ],
378
- [
379
- {
380
- intlLabel: {
381
- id: index.getTrad({ id: "PopUpForm.Providers.jwksurl.label" }),
382
- defaultMessage: "JWKS URL"
383
- },
384
- name: "jwksurl",
385
- type: "text",
386
- placeholder: textPlaceholder,
387
- size: 12,
388
- validations: {
389
- required: false
390
- }
391
- }
392
- ],
393
- [
394
- {
395
- intlLabel: {
396
- id: index.getTrad("PopUpForm.Providers.subdomain.label"),
397
- defaultMessage: "Host URI (Subdomain)"
398
- },
399
- name: "subdomain",
400
- type: "text",
401
- placeholder: {
402
- id: index.getTrad("PopUpForm.Providers.subdomain.placeholder"),
403
- defaultMessage: "my.subdomain.com"
404
- },
405
- size: 12,
406
- validations: {
407
- required: true
408
- }
409
- }
410
- ],
411
- [
412
- {
413
- intlLabel: callbackLabel,
414
- placeholder: callbackPlaceholder,
415
- name: "callback",
416
- type: "text",
417
- size: 12,
418
- validations: {
419
- required: true
420
- }
421
- }
422
- ],
423
- [
424
- {
425
- intlLabel: hintLabel,
426
- name: "noName",
427
- type: "text",
428
- validations: {},
429
- size: 12,
430
- disabled: true
431
- }
432
- ]
433
- ],
434
- schema: yup__namespace.object().shape({
435
- enabled: yup__namespace.bool().required(admin.translatedErrors.required.id),
436
- key: yup__namespace.string().when("enabled", {
437
- is: true,
438
- then: yup__namespace.string().required(admin.translatedErrors.required.id),
439
- otherwise: yup__namespace.string()
440
- }),
441
- secret: yup__namespace.string().when("enabled", {
442
- is: true,
443
- then: yup__namespace.string().required(admin.translatedErrors.required.id),
444
- otherwise: yup__namespace.string()
445
- }),
446
- subdomain: yup__namespace.string().when("enabled", {
447
- is: true,
448
- then: yup__namespace.string().required(admin.translatedErrors.required.id),
449
- otherwise: yup__namespace.string()
450
- }),
451
- callback: yup__namespace.string().when("enabled", {
452
- is: true,
453
- then: yup__namespace.string().required(admin.translatedErrors.required.id),
454
- otherwise: yup__namespace.string()
455
- })
456
- })
457
- }
458
- };
459
- const ProvidersPage = () => {
460
- const { formatMessage, locale } = reactIntl.useIntl();
461
- const queryClient = reactQuery.useQueryClient();
462
- const { trackUsage } = index3MYZ88xc.useTracking();
463
- const [isOpen, setIsOpen] = React__namespace.useState(false);
464
- const [providerToEditName, setProviderToEditName] = React__namespace.useState(null);
465
- const { toggleNotification } = admin.useNotification();
466
- const { get, put } = admin.useFetchClient();
467
- const { formatAPIError } = admin.useAPIErrorHandler();
468
- const formatter = designSystem.useCollator(locale, {
469
- sensitivity: "base"
470
- });
471
- const {
472
- isLoading: isLoadingPermissions,
473
- allowedActions: { canUpdate }
474
- } = admin.useRBAC({ update: index.PERMISSIONS.updateProviders });
475
- const { isLoading: isLoadingData, data } = reactQuery.useQuery(
476
- ["users-permissions", "get-providers"],
477
- async () => {
478
- const { data: data2 } = await get("/users-permissions/providers");
479
- return data2;
480
- },
481
- {
482
- initialData: {}
483
- }
484
- );
485
- const submitMutation = reactQuery.useMutation((body) => put("/users-permissions/providers", body), {
486
- async onSuccess() {
487
- await queryClient.invalidateQueries(["users-permissions", "providers"]);
488
- toggleNotification({
489
- type: "success",
490
- message: formatMessage({ id: index.getTrad("notification.success.submit") })
491
- });
492
- trackUsage("didEditAuthenticationProvider");
493
- handleToggleModal();
494
- },
495
- onError(error) {
496
- toggleNotification({
497
- type: "danger",
498
- message: formatAPIError(error)
499
- });
500
- },
501
- refetchActive: false
502
- });
503
- const providers = Object.entries(data).reduce((acc, [name, provider]) => {
504
- const { icon, enabled, subdomain } = provider;
505
- acc.push({
506
- name,
507
- icon: icon === "envelope" ? ["fas", "envelope"] : ["fab", icon],
508
- enabled,
509
- subdomain
510
- });
511
- return acc;
512
- }, []).sort((a, b) => formatter.compare(a.name, b.name));
513
- const isLoading = isLoadingData || isLoadingPermissions;
514
- const isProviderWithSubdomain = React__namespace.useMemo(() => {
515
- if (!providerToEditName) {
516
- return false;
517
- }
518
- const providerToEdit = providers.find((obj) => obj.name === providerToEditName);
519
- return !!providerToEdit?.subdomain;
520
- }, [providers, providerToEditName]);
521
- const layoutToRender = React__namespace.useMemo(() => {
522
- if (providerToEditName === "email") {
523
- return forms.email;
524
- }
525
- if (isProviderWithSubdomain) {
526
- return forms.providersWithSubdomain;
527
- }
528
- return forms.providers;
529
- }, [providerToEditName, isProviderWithSubdomain]);
530
- const handleToggleModal = () => {
531
- setIsOpen((prev) => !prev);
532
- };
533
- const handleClickEdit = (provider) => {
534
- if (canUpdate) {
535
- setProviderToEditName(provider.name);
536
- handleToggleModal();
537
- }
538
- };
539
- const handleSubmit = async (values) => {
540
- trackUsage("willEditAuthenticationProvider");
541
- submitMutation.mutate({ providers: { ...data, [providerToEditName]: values } });
542
- };
543
- if (isLoading) {
544
- return /* @__PURE__ */ jsxRuntime.jsx(admin.Page.Loading, {});
545
- }
546
- return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Layout, { children: [
547
- /* @__PURE__ */ jsxRuntime.jsx(admin.Page.Title, { children: formatMessage(
548
- { id: "Settings.PageTitle", defaultMessage: "Settings - {name}" },
549
- {
550
- name: formatMessage({
551
- id: index.getTrad("HeaderNav.link.providers"),
552
- defaultMessage: "Providers"
553
- })
554
- }
555
- ) }),
556
- /* @__PURE__ */ jsxRuntime.jsxs(admin.Page.Main, { children: [
557
- /* @__PURE__ */ jsxRuntime.jsx(
558
- designSystem.HeaderLayout,
559
- {
560
- title: formatMessage({
561
- id: index.getTrad("HeaderNav.link.providers"),
562
- defaultMessage: "Providers"
563
- })
564
- }
565
- ),
566
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.ContentLayout, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Table, { colCount: 3, rowCount: providers.length + 1, children: [
567
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Thead, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tr, { children: [
568
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Th, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "sigma", textColor: "neutral600", children: formatMessage({ id: "global.name", defaultMessage: "Name" }) }) }),
569
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Th, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "sigma", textColor: "neutral600", children: formatMessage({ id: index.getTrad("Providers.status"), defaultMessage: "Status" }) }) }),
570
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Th, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "sigma", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.VisuallyHidden, { children: formatMessage({
571
- id: "global.settings",
572
- defaultMessage: "Settings"
573
- }) }) }) })
574
- ] }) }),
575
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tbody, { children: providers.map((provider) => /* @__PURE__ */ jsxRuntime.jsxs(
576
- designSystem.Tr,
577
- {
578
- onClick: () => canUpdate ? handleClickEdit(provider) : void 0,
579
- children: [
580
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { width: "45%", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { fontWeight: "semiBold", textColor: "neutral800", children: provider.name }) }),
581
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { width: "65%", children: /* @__PURE__ */ jsxRuntime.jsx(
582
- designSystem.Typography,
583
- {
584
- textColor: provider.enabled ? "success600" : "danger600",
585
- "data-testid": `enable-${provider.name}`,
586
- children: provider.enabled ? formatMessage({
587
- id: "global.enabled",
588
- defaultMessage: "Enabled"
589
- }) : formatMessage({
590
- id: "global.disabled",
591
- defaultMessage: "Disabled"
592
- })
593
- }
594
- ) }),
595
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { onClick: (e) => e.stopPropagation(), children: canUpdate && /* @__PURE__ */ jsxRuntime.jsx(
596
- designSystem.IconButton,
597
- {
598
- onClick: () => handleClickEdit(provider),
599
- noBorder: true,
600
- icon: /* @__PURE__ */ jsxRuntime.jsx(icons.Pencil, {}),
601
- label: "Edit"
602
- }
603
- ) })
604
- ]
605
- },
606
- provider.name
607
- )) })
608
- ] }) })
609
- ] }),
610
- /* @__PURE__ */ jsxRuntime.jsx(
611
- FormModal,
612
- {
613
- initialData: data[providerToEditName],
614
- isOpen,
615
- isSubmiting: submitMutation.isLoading,
616
- layout: layoutToRender,
617
- headerBreadcrumbs: [
618
- formatMessage({
619
- id: index.getTrad("PopUpForm.header.edit.providers"),
620
- defaultMessage: "Edit Provider"
621
- }),
622
- upperFirst__default.default(providerToEditName)
623
- ],
624
- onToggle: handleToggleModal,
625
- onSubmit: handleSubmit,
626
- providerToEditName
627
- }
628
- )
629
- ] });
630
- };
631
- const ProtectedProvidersPage = () => /* @__PURE__ */ jsxRuntime.jsx(admin.Page.Protect, { permissions: index.PERMISSIONS.readProviders, children: /* @__PURE__ */ jsxRuntime.jsx(ProvidersPage, {}) });
632
- exports.ProvidersPage = ProvidersPage;
633
- exports.default = ProtectedProvidersPage;
634
- //# sourceMappingURL=index-CKKnf-Tb.js.map