@strapi/plugin-users-permissions 4.15.3-alpha.3 → 4.15.3

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 (125) hide show
  1. package/package.json +8 -9
  2. package/dist/_chunks/ar-20af7bfe.js +0 -44
  3. package/dist/_chunks/ar-20af7bfe.js.map +0 -1
  4. package/dist/_chunks/ar-56e57465.mjs +0 -44
  5. package/dist/_chunks/ar-56e57465.mjs.map +0 -1
  6. package/dist/_chunks/cs-0521a3c8.mjs +0 -50
  7. package/dist/_chunks/cs-0521a3c8.mjs.map +0 -1
  8. package/dist/_chunks/cs-6d7de06a.js +0 -50
  9. package/dist/_chunks/cs-6d7de06a.js.map +0 -1
  10. package/dist/_chunks/de-4af0884b.js +0 -62
  11. package/dist/_chunks/de-4af0884b.js.map +0 -1
  12. package/dist/_chunks/de-84fed33d.mjs +0 -62
  13. package/dist/_chunks/de-84fed33d.mjs.map +0 -1
  14. package/dist/_chunks/dk-21e25c4b.js +0 -86
  15. package/dist/_chunks/dk-21e25c4b.js.map +0 -1
  16. package/dist/_chunks/dk-d8302360.mjs +0 -86
  17. package/dist/_chunks/dk-d8302360.mjs.map +0 -1
  18. package/dist/_chunks/en-746a275e.js +0 -86
  19. package/dist/_chunks/en-746a275e.js.map +0 -1
  20. package/dist/_chunks/en-a610d7d0.mjs +0 -86
  21. package/dist/_chunks/en-a610d7d0.mjs.map +0 -1
  22. package/dist/_chunks/es-9d9ad31c.mjs +0 -86
  23. package/dist/_chunks/es-9d9ad31c.mjs.map +0 -1
  24. package/dist/_chunks/es-b6ae0f5e.js +0 -86
  25. package/dist/_chunks/es-b6ae0f5e.js.map +0 -1
  26. package/dist/_chunks/fr-0722d6cd.mjs +0 -50
  27. package/dist/_chunks/fr-0722d6cd.mjs.map +0 -1
  28. package/dist/_chunks/fr-dd77fc67.js +0 -50
  29. package/dist/_chunks/fr-dd77fc67.js.map +0 -1
  30. package/dist/_chunks/id-03eb1a4c.mjs +0 -62
  31. package/dist/_chunks/id-03eb1a4c.mjs.map +0 -1
  32. package/dist/_chunks/id-c19698f1.js +0 -62
  33. package/dist/_chunks/id-c19698f1.js.map +0 -1
  34. package/dist/_chunks/index-05ebe258.mjs +0 -615
  35. package/dist/_chunks/index-05ebe258.mjs.map +0 -1
  36. package/dist/_chunks/index-1535811b.js +0 -1191
  37. package/dist/_chunks/index-1535811b.js.map +0 -1
  38. package/dist/_chunks/index-3e1c6ac0.js +0 -407
  39. package/dist/_chunks/index-3e1c6ac0.js.map +0 -1
  40. package/dist/_chunks/index-4bf46d9c.mjs +0 -385
  41. package/dist/_chunks/index-4bf46d9c.mjs.map +0 -1
  42. package/dist/_chunks/index-7aae4b27.js +0 -638
  43. package/dist/_chunks/index-7aae4b27.js.map +0 -1
  44. package/dist/_chunks/index-932fc1d5.mjs +0 -1159
  45. package/dist/_chunks/index-932fc1d5.mjs.map +0 -1
  46. package/dist/_chunks/index-9ab88e58.mjs +0 -300
  47. package/dist/_chunks/index-9ab88e58.mjs.map +0 -1
  48. package/dist/_chunks/index-a8e8faec.js +0 -252
  49. package/dist/_chunks/index-a8e8faec.js.map +0 -1
  50. package/dist/_chunks/index-e4ba3b6d.js +0 -319
  51. package/dist/_chunks/index-e4ba3b6d.js.map +0 -1
  52. package/dist/_chunks/index-ea41b67f.mjs +0 -253
  53. package/dist/_chunks/index-ea41b67f.mjs.map +0 -1
  54. package/dist/_chunks/it-06b8d8a3.js +0 -62
  55. package/dist/_chunks/it-06b8d8a3.js.map +0 -1
  56. package/dist/_chunks/it-95fb8dcc.mjs +0 -62
  57. package/dist/_chunks/it-95fb8dcc.mjs.map +0 -1
  58. package/dist/_chunks/ja-557e03ee.mjs +0 -48
  59. package/dist/_chunks/ja-557e03ee.mjs.map +0 -1
  60. package/dist/_chunks/ja-e92e9903.js +0 -48
  61. package/dist/_chunks/ja-e92e9903.js.map +0 -1
  62. package/dist/_chunks/ko-5148326d.js +0 -86
  63. package/dist/_chunks/ko-5148326d.js.map +0 -1
  64. package/dist/_chunks/ko-d3b19f18.mjs +0 -86
  65. package/dist/_chunks/ko-d3b19f18.mjs.map +0 -1
  66. package/dist/_chunks/ms-1e62b726.js +0 -49
  67. package/dist/_chunks/ms-1e62b726.js.map +0 -1
  68. package/dist/_chunks/ms-b8a16476.mjs +0 -49
  69. package/dist/_chunks/ms-b8a16476.mjs.map +0 -1
  70. package/dist/_chunks/nl-66ef33aa.js +0 -48
  71. package/dist/_chunks/nl-66ef33aa.js.map +0 -1
  72. package/dist/_chunks/nl-fb114313.mjs +0 -48
  73. package/dist/_chunks/nl-fb114313.mjs.map +0 -1
  74. package/dist/_chunks/pl-5d70d4e8.mjs +0 -86
  75. package/dist/_chunks/pl-5d70d4e8.mjs.map +0 -1
  76. package/dist/_chunks/pl-7aa4933a.js +0 -86
  77. package/dist/_chunks/pl-7aa4933a.js.map +0 -1
  78. package/dist/_chunks/pt-95c2c76f.mjs +0 -48
  79. package/dist/_chunks/pt-95c2c76f.mjs.map +0 -1
  80. package/dist/_chunks/pt-BR-075f271a.mjs +0 -44
  81. package/dist/_chunks/pt-BR-075f271a.mjs.map +0 -1
  82. package/dist/_chunks/pt-BR-820fcd20.js +0 -44
  83. package/dist/_chunks/pt-BR-820fcd20.js.map +0 -1
  84. package/dist/_chunks/pt-a470d4e6.js +0 -48
  85. package/dist/_chunks/pt-a470d4e6.js.map +0 -1
  86. package/dist/_chunks/ru-625a0fe5.mjs +0 -86
  87. package/dist/_chunks/ru-625a0fe5.mjs.map +0 -1
  88. package/dist/_chunks/ru-cd0d1ac9.js +0 -86
  89. package/dist/_chunks/ru-cd0d1ac9.js.map +0 -1
  90. package/dist/_chunks/sk-495ecbe4.mjs +0 -50
  91. package/dist/_chunks/sk-495ecbe4.mjs.map +0 -1
  92. package/dist/_chunks/sk-8334fbf7.js +0 -50
  93. package/dist/_chunks/sk-8334fbf7.js.map +0 -1
  94. package/dist/_chunks/sv-137a2f79.js +0 -86
  95. package/dist/_chunks/sv-137a2f79.js.map +0 -1
  96. package/dist/_chunks/sv-60a1fabf.mjs +0 -86
  97. package/dist/_chunks/sv-60a1fabf.mjs.map +0 -1
  98. package/dist/_chunks/th-7fe328ef.js +0 -60
  99. package/dist/_chunks/th-7fe328ef.js.map +0 -1
  100. package/dist/_chunks/th-f633d0ed.mjs +0 -60
  101. package/dist/_chunks/th-f633d0ed.mjs.map +0 -1
  102. package/dist/_chunks/tr-16211986.mjs +0 -85
  103. package/dist/_chunks/tr-16211986.mjs.map +0 -1
  104. package/dist/_chunks/tr-eae92999.js +0 -85
  105. package/dist/_chunks/tr-eae92999.js.map +0 -1
  106. package/dist/_chunks/uk-0c33935a.js +0 -49
  107. package/dist/_chunks/uk-0c33935a.js.map +0 -1
  108. package/dist/_chunks/uk-f1fae414.mjs +0 -49
  109. package/dist/_chunks/uk-f1fae414.mjs.map +0 -1
  110. package/dist/_chunks/vi-b5d581a1.js +0 -50
  111. package/dist/_chunks/vi-b5d581a1.js.map +0 -1
  112. package/dist/_chunks/vi-e8fd97e4.mjs +0 -50
  113. package/dist/_chunks/vi-e8fd97e4.mjs.map +0 -1
  114. package/dist/_chunks/zh-284557f3.mjs +0 -86
  115. package/dist/_chunks/zh-284557f3.mjs.map +0 -1
  116. package/dist/_chunks/zh-9babf307.js +0 -86
  117. package/dist/_chunks/zh-9babf307.js.map +0 -1
  118. package/dist/_chunks/zh-Hans-68e4b43a.mjs +0 -86
  119. package/dist/_chunks/zh-Hans-68e4b43a.mjs.map +0 -1
  120. package/dist/_chunks/zh-Hans-baae8c78.js +0 -86
  121. package/dist/_chunks/zh-Hans-baae8c78.js.map +0 -1
  122. package/dist/admin/index.js +0 -5
  123. package/dist/admin/index.js.map +0 -1
  124. package/dist/admin/index.mjs +0 -6
  125. package/dist/admin/index.mjs.map +0 -1
@@ -1,252 +0,0 @@
1
- "use strict";
2
- const helperPlugin = require("@strapi/helper-plugin");
3
- const __variableDynamicImportRuntimeHelper = (glob, path) => {
4
- const v = glob[path];
5
- if (v) {
6
- return typeof v === "function" ? v() : Promise.resolve(v);
7
- }
8
- return new Promise((_, reject) => {
9
- (typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(reject.bind(null, new Error("Unknown variable dynamic import: " + path)));
10
- });
11
- };
12
- const name$1 = "@strapi/plugin-users-permissions";
13
- const version = "4.15.3-alpha.3";
14
- const description = "Protect your API with a full-authentication process based on JWT";
15
- const repository = {
16
- type: "git",
17
- url: "git://github.com/strapi/strapi.git"
18
- };
19
- const license = "SEE LICENSE IN LICENSE";
20
- const author = {
21
- name: "Strapi Solutions SAS",
22
- email: "hi@strapi.io",
23
- url: "https://strapi.io"
24
- };
25
- const maintainers = [
26
- {
27
- name: "Strapi Solutions SAS",
28
- email: "hi@strapi.io",
29
- url: "https://strapi.io"
30
- }
31
- ];
32
- const exports$1 = {
33
- "./strapi-admin": {
34
- source: "./admin/src/index.js",
35
- "import": "./dist/admin/index.mjs",
36
- require: "./dist/admin/index.js",
37
- "default": "./dist/admin/index.js"
38
- },
39
- "./strapi-server": {
40
- source: "./strapi-server.js",
41
- require: "./strapi-server.js",
42
- "default": "./strapi-server.js"
43
- },
44
- "./package.json": "./package.json"
45
- };
46
- const scripts = {
47
- build: "pack-up build",
48
- clean: "run -T rimraf dist",
49
- lint: "run -T eslint .",
50
- "test:front": "run -T cross-env IS_EE=true jest --config ./jest.config.front.js",
51
- "test:front:ce": "run -T cross-env IS_EE=false jest --config ./jest.config.front.js",
52
- "test:front:watch": "run -T cross-env IS_EE=true jest --config ./jest.config.front.js --watchAll",
53
- "test:front:watch:ce": "run -T cross-env IS_EE=false jest --config ./jest.config.front.js --watchAll",
54
- "test:unit": "run -T jest",
55
- "test:unit:watch": "run -T jest --watch",
56
- prepublishOnly: "yarn clean && yarn build",
57
- watch: "pack-up watch"
58
- };
59
- const dependencies = {
60
- "@strapi/design-system": "1.13.0",
61
- "@strapi/helper-plugin": "4.15.3-alpha.3",
62
- "@strapi/icons": "1.13.0",
63
- "@strapi/utils": "4.15.3-alpha.3",
64
- bcryptjs: "2.4.3",
65
- formik: "2.4.0",
66
- "grant-koa": "5.4.8",
67
- immer: "9.0.19",
68
- jsonwebtoken: "9.0.0",
69
- "jwk-to-pem": "2.0.5",
70
- koa: "2.13.4",
71
- "koa2-ratelimit": "^1.1.2",
72
- lodash: "4.17.21",
73
- "prop-types": "^15.8.1",
74
- purest: "4.0.2",
75
- "react-intl": "6.4.1",
76
- "react-query": "3.39.3",
77
- "react-redux": "8.1.1",
78
- "url-join": "4.0.1",
79
- yup: "0.32.9"
80
- };
81
- const devDependencies = {
82
- "@strapi/pack-up": "4.15.3-alpha.3",
83
- "@strapi/strapi": "4.15.3-alpha.3",
84
- "@testing-library/dom": "9.2.0",
85
- "@testing-library/react": "14.0.0",
86
- "@testing-library/user-event": "14.4.3",
87
- msw: "1.3.0",
88
- react: "^18.2.0",
89
- "react-dom": "^18.2.0",
90
- "react-router-dom": "5.3.4",
91
- "styled-components": "5.3.3"
92
- };
93
- const peerDependencies = {
94
- "@strapi/strapi": "^4.15.2",
95
- react: "^17.0.0 || ^18.0.0",
96
- "react-dom": "^17.0.0 || ^18.0.0",
97
- "react-router-dom": "^5.2.0",
98
- "styled-components": "^5.2.1"
99
- };
100
- const engines = {
101
- node: ">=18.0.0 <=20.x.x",
102
- npm: ">=6.0.0"
103
- };
104
- const strapi = {
105
- displayName: "Roles & Permissions",
106
- name: "users-permissions",
107
- 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.",
108
- required: true,
109
- kind: "plugin"
110
- };
111
- const gitHead = "e52150bf32037a703dbb71c6346ae1c15db17284";
112
- const pluginPkg = {
113
- name: name$1,
114
- version,
115
- description,
116
- repository,
117
- license,
118
- author,
119
- maintainers,
120
- exports: exports$1,
121
- scripts,
122
- dependencies,
123
- devDependencies,
124
- peerDependencies,
125
- engines,
126
- strapi,
127
- gitHead
128
- };
129
- const PERMISSIONS = {
130
- // Roles
131
- accessRoles: [
132
- { action: "plugin::users-permissions.roles.create", subject: null },
133
- { action: "plugin::users-permissions.roles.read", subject: null }
134
- ],
135
- createRole: [{ action: "plugin::users-permissions.roles.create", subject: null }],
136
- deleteRole: [{ action: "plugin::users-permissions.roles.delete", subject: null }],
137
- readRoles: [{ action: "plugin::users-permissions.roles.read", subject: null }],
138
- updateRole: [{ action: "plugin::users-permissions.roles.update", subject: null }],
139
- // AdvancedSettings
140
- readAdvancedSettings: [
141
- { action: "plugin::users-permissions.advanced-settings.read", subject: null }
142
- ],
143
- updateAdvancedSettings: [
144
- { action: "plugin::users-permissions.advanced-settings.update", subject: null }
145
- ],
146
- // Emails
147
- readEmailTemplates: [{ action: "plugin::users-permissions.email-templates.read", subject: null }],
148
- updateEmailTemplates: [
149
- { action: "plugin::users-permissions.email-templates.update", subject: null }
150
- ],
151
- // Providers
152
- readProviders: [{ action: "plugin::users-permissions.providers.read", subject: null }],
153
- updateProviders: [{ action: "plugin::users-permissions.providers.update", subject: null }]
154
- };
155
- const pluginId = pluginPkg.name.replace(/^@strapi\/plugin-/i, "");
156
- const getTrad = (id) => `${pluginId}.${id}`;
157
- const name = pluginPkg.strapi.name;
158
- const index = {
159
- register(app) {
160
- app.createSettingSection(
161
- {
162
- id: "users-permissions",
163
- intlLabel: {
164
- id: getTrad("Settings.section-label"),
165
- defaultMessage: "Users & Permissions plugin"
166
- }
167
- },
168
- [
169
- {
170
- intlLabel: {
171
- id: "global.roles",
172
- defaultMessage: "Roles"
173
- },
174
- id: "roles",
175
- to: `/settings/users-permissions/roles`,
176
- async Component() {
177
- const component = await Promise.resolve().then(() => require("./index-1535811b.js"));
178
- return component;
179
- },
180
- permissions: PERMISSIONS.accessRoles
181
- },
182
- {
183
- intlLabel: {
184
- id: getTrad("HeaderNav.link.providers"),
185
- defaultMessage: "Providers"
186
- },
187
- id: "providers",
188
- to: `/settings/users-permissions/providers`,
189
- async Component() {
190
- const component = await Promise.resolve().then(() => require("./index-7aae4b27.js"));
191
- return component;
192
- },
193
- permissions: PERMISSIONS.readProviders
194
- },
195
- {
196
- intlLabel: {
197
- id: getTrad("HeaderNav.link.emailTemplates"),
198
- defaultMessage: "Email templates"
199
- },
200
- id: "email-templates",
201
- to: `/settings/users-permissions/email-templates`,
202
- async Component() {
203
- const component = await Promise.resolve().then(() => require("./index-3e1c6ac0.js"));
204
- return component;
205
- },
206
- permissions: PERMISSIONS.readEmailTemplates
207
- },
208
- {
209
- intlLabel: {
210
- id: getTrad("HeaderNav.link.advancedSettings"),
211
- defaultMessage: "Advanced Settings"
212
- },
213
- id: "advanced-settings",
214
- to: `/settings/users-permissions/advanced-settings`,
215
- async Component() {
216
- const component = await Promise.resolve().then(() => require("./index-e4ba3b6d.js"));
217
- return component;
218
- },
219
- permissions: PERMISSIONS.readAdvancedSettings
220
- }
221
- ]
222
- );
223
- app.registerPlugin({
224
- id: "users-permissions",
225
- name
226
- });
227
- },
228
- bootstrap() {
229
- },
230
- async registerTrads({ locales }) {
231
- const importedTrads = await Promise.all(
232
- locales.map((locale) => {
233
- return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => Promise.resolve().then(() => require("./ar-20af7bfe.js")), "./translations/cs.json": () => Promise.resolve().then(() => require("./cs-6d7de06a.js")), "./translations/de.json": () => Promise.resolve().then(() => require("./de-4af0884b.js")), "./translations/dk.json": () => Promise.resolve().then(() => require("./dk-21e25c4b.js")), "./translations/en.json": () => Promise.resolve().then(() => require("./en-746a275e.js")), "./translations/es.json": () => Promise.resolve().then(() => require("./es-b6ae0f5e.js")), "./translations/fr.json": () => Promise.resolve().then(() => require("./fr-dd77fc67.js")), "./translations/id.json": () => Promise.resolve().then(() => require("./id-c19698f1.js")), "./translations/it.json": () => Promise.resolve().then(() => require("./it-06b8d8a3.js")), "./translations/ja.json": () => Promise.resolve().then(() => require("./ja-e92e9903.js")), "./translations/ko.json": () => Promise.resolve().then(() => require("./ko-5148326d.js")), "./translations/ms.json": () => Promise.resolve().then(() => require("./ms-1e62b726.js")), "./translations/nl.json": () => Promise.resolve().then(() => require("./nl-66ef33aa.js")), "./translations/pl.json": () => Promise.resolve().then(() => require("./pl-7aa4933a.js")), "./translations/pt-BR.json": () => Promise.resolve().then(() => require("./pt-BR-820fcd20.js")), "./translations/pt.json": () => Promise.resolve().then(() => require("./pt-a470d4e6.js")), "./translations/ru.json": () => Promise.resolve().then(() => require("./ru-cd0d1ac9.js")), "./translations/sk.json": () => Promise.resolve().then(() => require("./sk-8334fbf7.js")), "./translations/sv.json": () => Promise.resolve().then(() => require("./sv-137a2f79.js")), "./translations/th.json": () => Promise.resolve().then(() => require("./th-7fe328ef.js")), "./translations/tr.json": () => Promise.resolve().then(() => require("./tr-eae92999.js")), "./translations/uk.json": () => Promise.resolve().then(() => require("./uk-0c33935a.js")), "./translations/vi.json": () => Promise.resolve().then(() => require("./vi-b5d581a1.js")), "./translations/zh-Hans.json": () => Promise.resolve().then(() => require("./zh-Hans-baae8c78.js")), "./translations/zh.json": () => Promise.resolve().then(() => require("./zh-9babf307.js")) }), `./translations/${locale}.json`).then(({ default: data }) => {
234
- return {
235
- data: helperPlugin.prefixPluginTranslations(data, "users-permissions"),
236
- locale
237
- };
238
- }).catch(() => {
239
- return {
240
- data: {},
241
- locale
242
- };
243
- });
244
- })
245
- );
246
- return Promise.resolve(importedTrads);
247
- }
248
- };
249
- exports.PERMISSIONS = PERMISSIONS;
250
- exports.getTrad = getTrad;
251
- exports.index = index;
252
- //# sourceMappingURL=index-a8e8faec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-a8e8faec.js","sources":["../../admin/src/constants.js","../../admin/src/pluginId.js","../../admin/src/utils/getTrad.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 pluginPkg from '../../package.json';\n\nconst pluginId = pluginPkg.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","// NOTE TO PLUGINS DEVELOPERS:\n// If you modify this file by adding new options to the plugin entry point\n// Here's the file: strapi/docs/3.0.0-beta.x/plugin-development/frontend-field-api.md\n// Here's the file: strapi/docs/3.0.0-beta.x/guides/registering-a-field-in-admin.md\n// Also the strapi-generate-plugins/files/admin/src/index.js needs to be updated\n// IF THE DOC IS NOT UPDATED THE PULL REQUEST WILL NOT BE MERGED\nimport { prefixPluginTranslations } from '@strapi/helper-plugin';\n\nimport pluginPkg from '../../package.json';\n\nimport { PERMISSIONS } from './constants';\nimport getTrad from './utils/getTrad';\n\nconst name = pluginPkg.strapi.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: `/settings/users-permissions/roles`,\n async Component() {\n const component = await import('./pages/Roles');\n\n return component;\n },\n permissions: PERMISSIONS.accessRoles,\n },\n {\n intlLabel: {\n id: getTrad('HeaderNav.link.providers'),\n defaultMessage: 'Providers',\n },\n id: 'providers',\n to: `/settings/users-permissions/providers`,\n async Component() {\n const component = await import('./pages/Providers');\n\n return component;\n },\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: `/settings/users-permissions/email-templates`,\n async Component() {\n const component = await import('./pages/EmailTemplates');\n\n return component;\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: `/settings/users-permissions/advanced-settings`,\n async Component() {\n const component = await import('./pages/AdvancedSettings');\n\n return component;\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":["prefixPluginTranslations"],"mappings":"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"}
@@ -1,319 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
- const designSystem = require("@strapi/design-system");
5
- const helperPlugin = require("@strapi/helper-plugin");
6
- const icons = require("@strapi/icons");
7
- const formik = require("formik");
8
- const reactIntl = require("react-intl");
9
- const reactQuery = require("react-query");
10
- const index = require("./index-a8e8faec.js");
11
- require("lodash/isEmpty");
12
- const yup = require("yup");
13
- function _interopNamespace(e) {
14
- if (e && e.__esModule)
15
- return e;
16
- const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
17
- if (e) {
18
- for (const k in e) {
19
- if (k !== "default") {
20
- const d = Object.getOwnPropertyDescriptor(e, k);
21
- Object.defineProperty(n, k, d.get ? d : {
22
- enumerable: true,
23
- get: () => e[k]
24
- });
25
- }
26
- }
27
- }
28
- n.default = e;
29
- return Object.freeze(n);
30
- }
31
- const yup__namespace = /* @__PURE__ */ _interopNamespace(yup);
32
- const layout = [
33
- {
34
- intlLabel: {
35
- id: index.getTrad("EditForm.inputToggle.label.email"),
36
- defaultMessage: "One account per email address"
37
- },
38
- description: {
39
- id: index.getTrad("EditForm.inputToggle.description.email"),
40
- defaultMessage: "Disallow the user to create multiple accounts using the same email address with different authentication providers."
41
- },
42
- name: "unique_email",
43
- type: "bool",
44
- size: {
45
- col: 12,
46
- xs: 12
47
- }
48
- },
49
- {
50
- intlLabel: {
51
- id: index.getTrad("EditForm.inputToggle.label.sign-up"),
52
- defaultMessage: "Enable sign-ups"
53
- },
54
- description: {
55
- id: index.getTrad("EditForm.inputToggle.description.sign-up"),
56
- defaultMessage: "When disabled (OFF), the registration process is forbidden. No one can subscribe anymore no matter the used provider."
57
- },
58
- name: "allow_register",
59
- type: "bool",
60
- size: {
61
- col: 12,
62
- xs: 12
63
- }
64
- },
65
- {
66
- intlLabel: {
67
- id: index.getTrad("EditForm.inputToggle.label.email-reset-password"),
68
- defaultMessage: "Reset password page"
69
- },
70
- description: {
71
- id: index.getTrad("EditForm.inputToggle.description.email-reset-password"),
72
- defaultMessage: "URL of your application's reset password page."
73
- },
74
- placeholder: {
75
- id: index.getTrad("EditForm.inputToggle.placeholder.email-reset-password"),
76
- defaultMessage: "ex: https://youtfrontend.com/reset-password"
77
- },
78
- name: "email_reset_password",
79
- type: "text",
80
- size: {
81
- col: 6,
82
- xs: 12
83
- }
84
- },
85
- {
86
- intlLabel: {
87
- id: index.getTrad("EditForm.inputToggle.label.email-confirmation"),
88
- defaultMessage: "Enable email confirmation"
89
- },
90
- description: {
91
- id: index.getTrad("EditForm.inputToggle.description.email-confirmation"),
92
- defaultMessage: "When enabled (ON), new registered users receive a confirmation email."
93
- },
94
- name: "email_confirmation",
95
- type: "bool",
96
- size: {
97
- col: 12,
98
- xs: 12
99
- }
100
- },
101
- {
102
- intlLabel: {
103
- id: index.getTrad("EditForm.inputToggle.label.email-confirmation-redirection"),
104
- defaultMessage: "Redirection url"
105
- },
106
- description: {
107
- id: index.getTrad("EditForm.inputToggle.description.email-confirmation-redirection"),
108
- defaultMessage: "After you confirmed your email, choose where you will be redirected."
109
- },
110
- placeholder: {
111
- id: index.getTrad("EditForm.inputToggle.placeholder.email-confirmation-redirection"),
112
- defaultMessage: "ex: https://youtfrontend.com/email-confirmation"
113
- },
114
- name: "email_confirmation_redirection",
115
- type: "text",
116
- size: {
117
- col: 6,
118
- xs: 12
119
- }
120
- }
121
- ];
122
- const URL_REGEX = new RegExp("(^$)|((.+:\\/\\/.*)(d*)\\/?(.*))");
123
- const schema = yup__namespace.object().shape({
124
- email_confirmation_redirection: yup__namespace.mixed().when("email_confirmation", {
125
- is: true,
126
- then: yup__namespace.string().matches(URL_REGEX).required(),
127
- otherwise: yup__namespace.string().nullable()
128
- }),
129
- email_reset_password: yup__namespace.string(helperPlugin.translatedErrors.string).matches(URL_REGEX, helperPlugin.translatedErrors.regex).nullable()
130
- });
131
- const ProtectedAdvancedSettingsPage = () => /* @__PURE__ */ jsxRuntime.jsx(helperPlugin.CheckPagePermissions, { permissions: index.PERMISSIONS.readAdvancedSettings, children: /* @__PURE__ */ jsxRuntime.jsx(AdvancedSettingsPage, {}) });
132
- const AdvancedSettingsPage = () => {
133
- const { formatMessage } = reactIntl.useIntl();
134
- const toggleNotification = helperPlugin.useNotification();
135
- const { lockApp, unlockApp } = helperPlugin.useOverlayBlocker();
136
- const { notifyStatus } = designSystem.useNotifyAT();
137
- const queryClient = reactQuery.useQueryClient();
138
- const { get, put } = helperPlugin.useFetchClient();
139
- const { formatAPIError } = helperPlugin.useAPIErrorHandler();
140
- helperPlugin.useFocusWhenNavigate();
141
- const {
142
- isLoading: isLoadingForPermissions,
143
- allowedActions: { canUpdate }
144
- } = helperPlugin.useRBAC({ update: index.PERMISSIONS.updateAdvancedSettings });
145
- const { isLoading: isLoadingData, data } = reactQuery.useQuery(
146
- ["users-permissions", "advanced"],
147
- async () => {
148
- const { data: data2 } = await get("/users-permissions/advanced");
149
- return data2;
150
- },
151
- {
152
- onSuccess() {
153
- notifyStatus(
154
- formatMessage({
155
- id: index.getTrad("Form.advancedSettings.data.loaded"),
156
- defaultMessage: "Advanced settings data has been loaded"
157
- })
158
- );
159
- },
160
- onError() {
161
- toggleNotification({
162
- type: "warning",
163
- message: { id: index.getTrad("notification.error"), defaultMessage: "An error occured" }
164
- });
165
- }
166
- }
167
- );
168
- const isLoading = isLoadingForPermissions || isLoadingData;
169
- const submitMutation = reactQuery.useMutation((body) => put("/users-permissions/advanced", body), {
170
- async onSuccess() {
171
- await queryClient.invalidateQueries(["users-permissions", "advanced"]);
172
- toggleNotification({
173
- type: "success",
174
- message: { id: index.getTrad("notification.success.saved"), defaultMessage: "Saved" }
175
- });
176
- unlockApp();
177
- },
178
- onError(error) {
179
- toggleNotification({
180
- type: "warning",
181
- message: formatAPIError(error)
182
- });
183
- unlockApp();
184
- },
185
- refetchActive: true
186
- });
187
- const { isLoading: isSubmittingForm } = submitMutation;
188
- const handleSubmit = async (body) => {
189
- lockApp();
190
- submitMutation.mutate({
191
- ...body,
192
- email_confirmation_redirection: body.email_confirmation ? body.email_confirmation_redirection : ""
193
- });
194
- };
195
- if (isLoading) {
196
- return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Main, { "aria-busy": "true", children: [
197
- /* @__PURE__ */ jsxRuntime.jsx(
198
- helperPlugin.SettingsPageTitle,
199
- {
200
- name: formatMessage({
201
- id: index.getTrad("HeaderNav.link.advancedSettings"),
202
- defaultMessage: "Advanced Settings"
203
- })
204
- }
205
- ),
206
- /* @__PURE__ */ jsxRuntime.jsx(
207
- designSystem.HeaderLayout,
208
- {
209
- title: formatMessage({
210
- id: index.getTrad("HeaderNav.link.advancedSettings"),
211
- defaultMessage: "Advanced Settings"
212
- })
213
- }
214
- ),
215
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.ContentLayout, { children: /* @__PURE__ */ jsxRuntime.jsx(helperPlugin.LoadingIndicatorPage, {}) })
216
- ] });
217
- }
218
- return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Main, { "aria-busy": isSubmittingForm, children: [
219
- /* @__PURE__ */ jsxRuntime.jsx(
220
- helperPlugin.SettingsPageTitle,
221
- {
222
- name: formatMessage({
223
- id: index.getTrad("HeaderNav.link.advancedSettings"),
224
- defaultMessage: "Advanced Settings"
225
- })
226
- }
227
- ),
228
- /* @__PURE__ */ jsxRuntime.jsx(
229
- formik.Formik,
230
- {
231
- onSubmit: handleSubmit,
232
- initialValues: data.settings,
233
- validateOnChange: false,
234
- validationSchema: schema,
235
- enableReinitialize: true,
236
- children: ({ errors, values, handleChange, isSubmitting, dirty }) => {
237
- return /* @__PURE__ */ jsxRuntime.jsxs(helperPlugin.Form, { children: [
238
- /* @__PURE__ */ jsxRuntime.jsx(
239
- designSystem.HeaderLayout,
240
- {
241
- title: formatMessage({
242
- id: index.getTrad("HeaderNav.link.advancedSettings"),
243
- defaultMessage: "Advanced Settings"
244
- }),
245
- primaryAction: /* @__PURE__ */ jsxRuntime.jsx(
246
- designSystem.Button,
247
- {
248
- loading: isSubmitting,
249
- type: "submit",
250
- disabled: canUpdate ? !dirty : !canUpdate,
251
- startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Check, {}),
252
- size: "S",
253
- children: formatMessage({ id: "global.save", defaultMessage: "Save" })
254
- }
255
- )
256
- }
257
- ),
258
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.ContentLayout, { children: /* @__PURE__ */ jsxRuntime.jsx(
259
- designSystem.Box,
260
- {
261
- background: "neutral0",
262
- hasRadius: true,
263
- shadow: "filterShadow",
264
- paddingTop: 6,
265
- paddingBottom: 6,
266
- paddingLeft: 7,
267
- paddingRight: 7,
268
- children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 4, children: [
269
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "delta", as: "h2", children: formatMessage({
270
- id: "global.settings",
271
- defaultMessage: "Settings"
272
- }) }),
273
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid, { gap: 6, children: [
274
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.GridItem, { col: 6, s: 12, children: /* @__PURE__ */ jsxRuntime.jsx(
275
- designSystem.Select,
276
- {
277
- label: formatMessage({
278
- id: index.getTrad("EditForm.inputSelect.label.role"),
279
- defaultMessage: "Default role for authenticated users"
280
- }),
281
- value: values.default_role,
282
- hint: formatMessage({
283
- id: index.getTrad("EditForm.inputSelect.description.role"),
284
- defaultMessage: "It will attach the new authenticated user to the selected role."
285
- }),
286
- onChange: (e) => handleChange({ target: { name: "default_role", value: e } }),
287
- children: data.roles.map((role) => {
288
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Option, { value: role.type, children: role.name }, role.type);
289
- })
290
- }
291
- ) }),
292
- layout.map((input) => {
293
- let value = values[input.name];
294
- if (!value) {
295
- value = input.type === "bool" ? false : "";
296
- }
297
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.GridItem, { ...input.size, children: /* @__PURE__ */ jsxRuntime.jsx(
298
- helperPlugin.GenericInput,
299
- {
300
- ...input,
301
- value,
302
- error: errors[input.name],
303
- disabled: input.name === "email_confirmation_redirection" && values.email_confirmation === false,
304
- onChange: handleChange
305
- }
306
- ) }, input.name);
307
- })
308
- ] })
309
- ] })
310
- }
311
- ) })
312
- ] });
313
- }
314
- }
315
- )
316
- ] });
317
- };
318
- exports.default = ProtectedAdvancedSettingsPage;
319
- //# sourceMappingURL=index-e4ba3b6d.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-e4ba3b6d.js","sources":["../../admin/src/pages/AdvancedSettings/utils/layout.js","../../admin/src/pages/AdvancedSettings/utils/schema.js","../../admin/src/pages/AdvancedSettings/index.js"],"sourcesContent":["import { getTrad } from '../../../utils';\n\nconst layout = [\n {\n intlLabel: {\n id: getTrad('EditForm.inputToggle.label.email'),\n defaultMessage: 'One account per email address',\n },\n description: {\n id: getTrad('EditForm.inputToggle.description.email'),\n defaultMessage:\n 'Disallow the user to create multiple accounts using the same email address with different authentication providers.',\n },\n name: 'unique_email',\n type: 'bool',\n size: {\n col: 12,\n xs: 12,\n },\n },\n {\n intlLabel: {\n id: getTrad('EditForm.inputToggle.label.sign-up'),\n defaultMessage: 'Enable sign-ups',\n },\n description: {\n id: getTrad('EditForm.inputToggle.description.sign-up'),\n defaultMessage:\n 'When disabled (OFF), the registration process is forbidden. No one can subscribe anymore no matter the used provider.',\n },\n name: 'allow_register',\n type: 'bool',\n size: {\n col: 12,\n xs: 12,\n },\n },\n {\n intlLabel: {\n id: getTrad('EditForm.inputToggle.label.email-reset-password'),\n defaultMessage: 'Reset password page',\n },\n description: {\n id: getTrad('EditForm.inputToggle.description.email-reset-password'),\n defaultMessage: \"URL of your application's reset password page.\",\n },\n placeholder: {\n id: getTrad('EditForm.inputToggle.placeholder.email-reset-password'),\n defaultMessage: 'ex: https://youtfrontend.com/reset-password',\n },\n name: 'email_reset_password',\n type: 'text',\n size: {\n col: 6,\n xs: 12,\n },\n },\n {\n intlLabel: {\n id: getTrad('EditForm.inputToggle.label.email-confirmation'),\n defaultMessage: 'Enable email confirmation',\n },\n description: {\n id: getTrad('EditForm.inputToggle.description.email-confirmation'),\n defaultMessage: 'When enabled (ON), new registered users receive a confirmation email.',\n },\n name: 'email_confirmation',\n type: 'bool',\n size: {\n col: 12,\n xs: 12,\n },\n },\n {\n intlLabel: {\n id: getTrad('EditForm.inputToggle.label.email-confirmation-redirection'),\n defaultMessage: 'Redirection url',\n },\n description: {\n id: getTrad('EditForm.inputToggle.description.email-confirmation-redirection'),\n defaultMessage: 'After you confirmed your email, choose where you will be redirected.',\n },\n placeholder: {\n id: getTrad('EditForm.inputToggle.placeholder.email-confirmation-redirection'),\n defaultMessage: 'ex: https://youtfrontend.com/email-confirmation',\n },\n name: 'email_confirmation_redirection',\n type: 'text',\n size: {\n col: 6,\n xs: 12,\n },\n },\n];\n\nexport default layout;\n","import { translatedErrors } from '@strapi/helper-plugin';\nimport * as yup from 'yup';\n\n// eslint-disable-next-line prefer-regex-literals\nconst URL_REGEX = new RegExp('(^$)|((.+:\\\\/\\\\/.*)(d*)\\\\/?(.*))');\n\nconst schema = yup.object().shape({\n email_confirmation_redirection: yup.mixed().when('email_confirmation', {\n is: true,\n then: yup.string().matches(URL_REGEX).required(),\n otherwise: yup.string().nullable(),\n }),\n email_reset_password: yup\n .string(translatedErrors.string)\n .matches(URL_REGEX, translatedErrors.regex)\n .nullable(),\n});\n\nexport default schema;\n","import React from 'react';\n\nimport {\n Box,\n Button,\n ContentLayout,\n Flex,\n Grid,\n GridItem,\n HeaderLayout,\n Main,\n Option,\n Select,\n Typography,\n useNotifyAT,\n} from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n Form,\n GenericInput,\n LoadingIndicatorPage,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFetchClient,\n useFocusWhenNavigate,\n useNotification,\n useOverlayBlocker,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { Check } from '@strapi/icons';\nimport { Formik } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery, useQueryClient } from 'react-query';\n\nimport { PERMISSIONS } from '../../constants';\nimport { getTrad } from '../../utils';\n\nimport layout from './utils/layout';\nimport schema from './utils/schema';\n\nconst ProtectedAdvancedSettingsPage = () => (\n <CheckPagePermissions permissions={PERMISSIONS.readAdvancedSettings}>\n <AdvancedSettingsPage />\n </CheckPagePermissions>\n);\n\nconst AdvancedSettingsPage = () => {\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const { lockApp, unlockApp } = useOverlayBlocker();\n const { notifyStatus } = useNotifyAT();\n const queryClient = useQueryClient();\n const { get, put } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n\n useFocusWhenNavigate();\n\n const {\n isLoading: isLoadingForPermissions,\n allowedActions: { canUpdate },\n } = useRBAC({ update: PERMISSIONS.updateAdvancedSettings });\n\n const { isLoading: isLoadingData, data } = useQuery(\n ['users-permissions', 'advanced'],\n async () => {\n const { data } = await get('/users-permissions/advanced');\n\n return data;\n },\n {\n onSuccess() {\n notifyStatus(\n formatMessage({\n id: getTrad('Form.advancedSettings.data.loaded'),\n defaultMessage: 'Advanced settings data has been loaded',\n })\n );\n },\n onError() {\n toggleNotification({\n type: 'warning',\n message: { id: getTrad('notification.error'), defaultMessage: 'An error occured' },\n });\n },\n }\n );\n\n const isLoading = isLoadingForPermissions || isLoadingData;\n\n const submitMutation = useMutation((body) => put('/users-permissions/advanced', body), {\n async onSuccess() {\n await queryClient.invalidateQueries(['users-permissions', 'advanced']);\n\n toggleNotification({\n type: 'success',\n message: { id: getTrad('notification.success.saved'), defaultMessage: 'Saved' },\n });\n\n unlockApp();\n },\n onError(error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n\n unlockApp();\n },\n refetchActive: true,\n });\n\n const { isLoading: isSubmittingForm } = submitMutation;\n\n const handleSubmit = async (body) => {\n lockApp();\n\n submitMutation.mutate({\n ...body,\n email_confirmation_redirection: body.email_confirmation\n ? body.email_confirmation_redirection\n : '',\n });\n };\n\n if (isLoading) {\n return (\n <Main aria-busy=\"true\">\n <SettingsPageTitle\n name={formatMessage({\n id: getTrad('HeaderNav.link.advancedSettings'),\n defaultMessage: 'Advanced Settings',\n })}\n />\n <HeaderLayout\n title={formatMessage({\n id: getTrad('HeaderNav.link.advancedSettings'),\n defaultMessage: 'Advanced Settings',\n })}\n />\n <ContentLayout>\n <LoadingIndicatorPage />\n </ContentLayout>\n </Main>\n );\n }\n\n return (\n <Main aria-busy={isSubmittingForm}>\n <SettingsPageTitle\n name={formatMessage({\n id: getTrad('HeaderNav.link.advancedSettings'),\n defaultMessage: 'Advanced Settings',\n })}\n />\n <Formik\n onSubmit={handleSubmit}\n initialValues={data.settings}\n validateOnChange={false}\n validationSchema={schema}\n enableReinitialize\n >\n {({ errors, values, handleChange, isSubmitting, dirty }) => {\n return (\n <Form>\n <HeaderLayout\n title={formatMessage({\n id: getTrad('HeaderNav.link.advancedSettings'),\n defaultMessage: 'Advanced Settings',\n })}\n primaryAction={\n <Button\n loading={isSubmitting}\n type=\"submit\"\n disabled={canUpdate ? !dirty : !canUpdate}\n startIcon={<Check />}\n size=\"S\"\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n />\n <ContentLayout>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid gap={6}>\n <GridItem col={6} s={12}>\n <Select\n label={formatMessage({\n id: getTrad('EditForm.inputSelect.label.role'),\n defaultMessage: 'Default role for authenticated users',\n })}\n value={values.default_role}\n hint={formatMessage({\n id: getTrad('EditForm.inputSelect.description.role'),\n defaultMessage:\n 'It will attach the new authenticated user to the selected role.',\n })}\n onChange={(e) =>\n handleChange({ target: { name: 'default_role', value: e } })\n }\n >\n {data.roles.map((role) => {\n return (\n <Option key={role.type} value={role.type}>\n {role.name}\n </Option>\n );\n })}\n </Select>\n </GridItem>\n {layout.map((input) => {\n let value = values[input.name];\n\n if (!value) {\n value = input.type === 'bool' ? false : '';\n }\n\n return (\n <GridItem key={input.name} {...input.size}>\n <GenericInput\n {...input}\n value={value}\n error={errors[input.name]}\n disabled={\n input.name === 'email_confirmation_redirection' &&\n values.email_confirmation === false\n }\n onChange={handleChange}\n />\n </GridItem>\n );\n })}\n </Grid>\n </Flex>\n </Box>\n </ContentLayout>\n </Form>\n );\n }}\n </Formik>\n </Main>\n );\n};\n\nexport default ProtectedAdvancedSettingsPage;\n"],"names":["getTrad","yup","translatedErrors","jsx","CheckPagePermissions","PERMISSIONS","useIntl","useNotification","useOverlayBlocker","useNotifyAT","useQueryClient","useFetchClient","useAPIErrorHandler","useFocusWhenNavigate","useRBAC","useQuery","data","useMutation","jsxs","Main","SettingsPageTitle","HeaderLayout","ContentLayout","LoadingIndicatorPage","Formik","Form","Button","Check","Box","Flex","Typography","Grid","GridItem","Select","Option","GenericInput"],"mappings":"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"}