@strapi/plugin-users-permissions 0.0.0-next.ce8ed0c8aa03361c3009f41af96f742be028ffd9 → 0.0.0-next.cff45c3624b7624777a0c7a5446a72037c5b5395
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.
- package/admin/src/components/Permissions/PermissionRow/SubCategory.jsx +8 -1
- package/admin/src/components/Policies/index.jsx +1 -0
- package/admin/src/components/UsersPermissions/index.jsx +1 -0
- package/admin/src/pages/AdvancedSettings/index.jsx +1 -0
- package/admin/src/pages/EmailTemplates/components/EmailForm.jsx +2 -1
- package/admin/src/pages/Roles/pages/CreatePage.jsx +8 -3
- package/admin/src/pages/Roles/pages/EditPage.jsx +3 -2
- package/admin/src/pages/Roles/pages/ListPage/index.jsx +1 -0
- package/admin/src/translations/de.json +27 -2
- package/dist/admin/components/Permissions/PermissionRow/SubCategory.js +3 -1
- package/dist/admin/components/Permissions/PermissionRow/SubCategory.js.map +1 -1
- package/dist/admin/components/Permissions/PermissionRow/SubCategory.mjs +3 -1
- package/dist/admin/components/Permissions/PermissionRow/SubCategory.mjs.map +1 -1
- package/dist/admin/components/Policies/index.js +1 -0
- package/dist/admin/components/Policies/index.js.map +1 -1
- package/dist/admin/components/Policies/index.mjs +1 -0
- package/dist/admin/components/Policies/index.mjs.map +1 -1
- package/dist/admin/components/UsersPermissions/index.js +1 -0
- package/dist/admin/components/UsersPermissions/index.js.map +1 -1
- package/dist/admin/components/UsersPermissions/index.mjs +1 -0
- package/dist/admin/components/UsersPermissions/index.mjs.map +1 -1
- package/dist/admin/pages/AdvancedSettings/index.js +1 -0
- package/dist/admin/pages/AdvancedSettings/index.js.map +1 -1
- package/dist/admin/pages/AdvancedSettings/index.mjs +1 -0
- package/dist/admin/pages/AdvancedSettings/index.mjs.map +1 -1
- package/dist/admin/pages/EmailTemplates/components/EmailForm.js +2 -1
- package/dist/admin/pages/EmailTemplates/components/EmailForm.js.map +1 -1
- package/dist/admin/pages/EmailTemplates/components/EmailForm.mjs +2 -1
- package/dist/admin/pages/EmailTemplates/components/EmailForm.mjs.map +1 -1
- package/dist/admin/pages/Roles/pages/CreatePage.js +3 -0
- package/dist/admin/pages/Roles/pages/CreatePage.js.map +1 -1
- package/dist/admin/pages/Roles/pages/CreatePage.mjs +3 -0
- package/dist/admin/pages/Roles/pages/CreatePage.mjs.map +1 -1
- package/dist/admin/pages/Roles/pages/EditPage.js +3 -0
- package/dist/admin/pages/Roles/pages/EditPage.js.map +1 -1
- package/dist/admin/pages/Roles/pages/EditPage.mjs +3 -0
- package/dist/admin/pages/Roles/pages/EditPage.mjs.map +1 -1
- package/dist/admin/pages/Roles/pages/ListPage/index.js +1 -0
- package/dist/admin/pages/Roles/pages/ListPage/index.js.map +1 -1
- package/dist/admin/pages/Roles/pages/ListPage/index.mjs +1 -0
- package/dist/admin/pages/Roles/pages/ListPage/index.mjs.map +1 -1
- package/dist/admin/translations/de.json.js +27 -2
- package/dist/admin/translations/de.json.js.map +1 -1
- package/dist/admin/translations/de.json.mjs +27 -2
- package/dist/admin/translations/de.json.mjs.map +1 -1
- package/dist/server/controllers/auth.js +11 -11
- package/dist/server/controllers/auth.js.map +1 -1
- package/dist/server/controllers/auth.mjs +11 -11
- package/dist/server/controllers/auth.mjs.map +1 -1
- package/dist/server/services/users-permissions.js +8 -0
- package/dist/server/services/users-permissions.js.map +1 -1
- package/dist/server/services/users-permissions.mjs +8 -0
- package/dist/server/services/users-permissions.mjs.map +1 -1
- package/package.json +11 -11
- package/server/controllers/auth.js +13 -15
- package/server/services/users-permissions.js +2 -0
|
@@ -78,7 +78,14 @@ const SubCategory = ({ subCategory }) => {
|
|
|
78
78
|
const name = `${action.name}.enabled`;
|
|
79
79
|
|
|
80
80
|
return (
|
|
81
|
-
<Grid.Item
|
|
81
|
+
<Grid.Item
|
|
82
|
+
col={4}
|
|
83
|
+
xs={12}
|
|
84
|
+
s={6}
|
|
85
|
+
key={action.name}
|
|
86
|
+
direction="column"
|
|
87
|
+
alignItems="stretch"
|
|
88
|
+
>
|
|
82
89
|
<CheckboxWrapper isActive={isActionSelected(action.name)} padding={2} hasRadius>
|
|
83
90
|
<Checkbox
|
|
84
91
|
checked={get(modifiedData, name, false)}
|
|
@@ -93,7 +93,12 @@ export const CreatePage = () => {
|
|
|
93
93
|
<Layouts.Header
|
|
94
94
|
primaryAction={
|
|
95
95
|
!isLoadingPlugins && (
|
|
96
|
-
<Button
|
|
96
|
+
<Button
|
|
97
|
+
type="submit"
|
|
98
|
+
loading={mutation.isLoading}
|
|
99
|
+
startIcon={<Check />}
|
|
100
|
+
fullWidth
|
|
101
|
+
>
|
|
97
102
|
{formatMessage({
|
|
98
103
|
id: 'global.save',
|
|
99
104
|
defaultMessage: 'Save',
|
|
@@ -138,7 +143,7 @@ export const CreatePage = () => {
|
|
|
138
143
|
</Typography>
|
|
139
144
|
|
|
140
145
|
<Grid.Root gap={4}>
|
|
141
|
-
<Grid.Item col={6} direction="column" alignItems="stretch">
|
|
146
|
+
<Grid.Item col={6} xs={12} direction="column" alignItems="stretch">
|
|
142
147
|
<Field.Root
|
|
143
148
|
name="name"
|
|
144
149
|
error={
|
|
@@ -158,7 +163,7 @@ export const CreatePage = () => {
|
|
|
158
163
|
<Field.Error />
|
|
159
164
|
</Field.Root>
|
|
160
165
|
</Grid.Item>
|
|
161
|
-
<Grid.Item col={6} direction="column" alignItems="stretch">
|
|
166
|
+
<Grid.Item col={6} xs={12} direction="column" alignItems="stretch">
|
|
162
167
|
<Field.Root
|
|
163
168
|
name="description"
|
|
164
169
|
error={
|
|
@@ -109,6 +109,7 @@ export const EditPage = () => {
|
|
|
109
109
|
type="submit"
|
|
110
110
|
loading={mutation.isLoading}
|
|
111
111
|
startIcon={<Check />}
|
|
112
|
+
fullWidth
|
|
112
113
|
>
|
|
113
114
|
{formatMessage({
|
|
114
115
|
id: 'global.save',
|
|
@@ -148,7 +149,7 @@ export const EditPage = () => {
|
|
|
148
149
|
</Typography>
|
|
149
150
|
|
|
150
151
|
<Grid.Root gap={4}>
|
|
151
|
-
<Grid.Item col={6} direction="column" alignItems="stretch">
|
|
152
|
+
<Grid.Item col={6} xs={12} direction="column" alignItems="stretch">
|
|
152
153
|
<Field.Root
|
|
153
154
|
name="name"
|
|
154
155
|
error={
|
|
@@ -171,7 +172,7 @@ export const EditPage = () => {
|
|
|
171
172
|
<Field.Error />
|
|
172
173
|
</Field.Root>
|
|
173
174
|
</Grid.Item>
|
|
174
|
-
<Grid.Item col={6} direction="column" alignItems="stretch">
|
|
175
|
+
<Grid.Item col={6} xs={12} direction="column" alignItems="stretch">
|
|
175
176
|
<Field.Root
|
|
176
177
|
name="description"
|
|
177
178
|
error={
|
|
@@ -4,15 +4,25 @@
|
|
|
4
4
|
"EditForm.inputSelect.label.role": "Standardrolle für authentifizierte Benutzer",
|
|
5
5
|
"EditForm.inputToggle.description.email": "Verbiete das Anlegen verschiedener Accounts mit der gleichen E-Mail-Adresse bei unterschiedlichen Anmeldemethoden.",
|
|
6
6
|
"EditForm.inputToggle.description.email-confirmation": "Wenn aktiviert (ON) erhalten neu registrierte Benutzer eine Bestätigungs-E-Mail.",
|
|
7
|
-
"EditForm.inputToggle.description.email-confirmation-redirection": "
|
|
8
|
-
"EditForm.inputToggle.description.email-reset-password": "URL deiner Passwort-Zurücksetzen-Seite
|
|
7
|
+
"EditForm.inputToggle.description.email-confirmation-redirection": "Wähle wohin weitergeleitet wird, wenn die die E-Mail bestätigt wurde.",
|
|
8
|
+
"EditForm.inputToggle.description.email-reset-password": "URL deiner Passwort-Zurücksetzen-Seite",
|
|
9
9
|
"EditForm.inputToggle.description.sign-up": "Wenn deaktiviert (OFF), wird der Registrationsprozess unterbunden. Niemand kann sich mehr registrieren.",
|
|
10
10
|
"EditForm.inputToggle.label.email": "Ein Account pro E-Mail-Adresse",
|
|
11
11
|
"EditForm.inputToggle.label.email-confirmation": "Aktiviere E-Mail Benachrichtigungen",
|
|
12
12
|
"EditForm.inputToggle.label.email-confirmation-redirection": "Weiterleitungs-URL",
|
|
13
13
|
"EditForm.inputToggle.label.email-reset-password": "Passwort-Zurücksetzen-Seite",
|
|
14
14
|
"EditForm.inputToggle.label.sign-up": "Registration ermöglichen",
|
|
15
|
+
"EditForm.inputToggle.placeholder.email-confirmation-redirection": "z.B.: https://example.com/email-bestaetigung-weiterleitung",
|
|
16
|
+
"EditForm.inputToggle.placeholder.email-reset-password": "z.B.: https://example.com/passwort-zuruecksetzen",
|
|
17
|
+
"EditPage.form.roles": "Rollen-Details",
|
|
18
|
+
"Email.template.data.loaded": "E-Mail-Vorlagen wurden geladen",
|
|
15
19
|
"Email.template.email_confirmation": "Bestätigung der E-Mail-Addresse",
|
|
20
|
+
"Email.template.reset_password": "Passwort zurücksetzen",
|
|
21
|
+
"Email.template.form.edit.label": "Vorlage bearbeiten",
|
|
22
|
+
"Email.template.table.action.label": "Aktion",
|
|
23
|
+
"Email.template.table.icon.label": "Icon",
|
|
24
|
+
"Email.template.table.name.label": "Name",
|
|
25
|
+
"Form.advancedSettings.data.loaded": "Erweiterte Einstellungsdaten wurden geladen",
|
|
16
26
|
"HeaderNav.link.advancedSettings": "Erweiterte Einstellungen",
|
|
17
27
|
"HeaderNav.link.emailTemplates": "E-Mail-Templates",
|
|
18
28
|
"HeaderNav.link.providers": "Methoden",
|
|
@@ -44,10 +54,25 @@
|
|
|
44
54
|
"PopUpForm.Providers.subdomain.placeholder": "my.subdomain.com",
|
|
45
55
|
"PopUpForm.header.edit.email-templates": "E-Mail-Templates bearbeiten",
|
|
46
56
|
"PopUpForm.header.edit.providers": "Anbieter bearbeiten",
|
|
57
|
+
"Providers.data.loaded": "Anbieter wurden geladen",
|
|
58
|
+
"Providers.status": "Status",
|
|
59
|
+
"Roles.empty": "Du hast noch keine Rollen.",
|
|
60
|
+
"Roles.empty.search": "Keine Rollen entsprechen der Suche.",
|
|
47
61
|
"Settings.roles.deleted": "Rolle gelöscht",
|
|
48
62
|
"Settings.roles.edited": "Rolle bearbeitet",
|
|
49
63
|
"Settings.section-label": "Nutzer- & Berechtigungen-Plugin",
|
|
64
|
+
"components.Input.error.validation.email": "Das ist keine gültige E-Mail-Adresse",
|
|
65
|
+
"components.Input.error.validation.json": "Das entspricht nicht dem JSON-Format",
|
|
66
|
+
"components.Input.error.validation.max": "Der Wert ist zu hoch.",
|
|
67
|
+
"components.Input.error.validation.maxLength": "Der Wert ist zu lang.",
|
|
68
|
+
"components.Input.error.validation.min": "Der Wert ist zu niedrig.",
|
|
69
|
+
"components.Input.error.validation.minLength": "Der Wert ist zu kurz.",
|
|
70
|
+
"components.Input.error.validation.minSupMax": "Kann nicht größer sein",
|
|
71
|
+
"components.Input.error.validation.regex": "Der Wert entspricht nicht dem regulären Ausdruck.",
|
|
72
|
+
"components.Input.error.validation.required": "Dieser Wert ist erforderlich.",
|
|
73
|
+
"components.Input.error.validation.unique": "Dieser Wert wird bereits verwendet.",
|
|
50
74
|
"notification.success.submit": "Einstellungen aktualisiert",
|
|
75
|
+
"page.title": "Einstellungen - Rollen",
|
|
51
76
|
"plugin.description.long": "Beschütze deine API mit einem vollständigen Authentifikationsprozess basierend auf JWT. Zudem bietet dieses Plugin eine ACL-Strategie, die erlaubt, die Berechtigungen für Benutzergruppen festzulegen.",
|
|
52
77
|
"plugin.description.short": "Beschütze deine API mit einem vollständigen Authentifikationsprozess basierend auf JWT.",
|
|
53
78
|
"plugin.name": "Nutzer- & Berechtigungen-Plugin",
|
|
@@ -97,7 +97,9 @@ const SubCategory = ({ subCategory })=>{
|
|
|
97
97
|
children: subCategory.actions.map((action)=>{
|
|
98
98
|
const name = `${action.name}.enabled`;
|
|
99
99
|
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
|
|
100
|
-
col:
|
|
100
|
+
col: 4,
|
|
101
|
+
xs: 12,
|
|
102
|
+
s: 6,
|
|
101
103
|
direction: "column",
|
|
102
104
|
alignItems: "stretch",
|
|
103
105
|
children: /*#__PURE__*/ jsxRuntime.jsxs(CheckboxWrapper, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubCategory.js","sources":["../../../../../admin/src/components/Permissions/PermissionRow/SubCategory.jsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react';\n\nimport { Box, Checkbox, Flex, Typography, Grid, VisuallyHidden } from '@strapi/design-system';\nimport { Cog } from '@strapi/icons';\nimport get from 'lodash/get';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useUsersPermissions } from '../../../contexts/UsersPermissionsContext';\n\nimport CheckboxWrapper from './CheckboxWrapper';\n\nconst Border = styled.div`\n flex: 1;\n align-self: center;\n border-top: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\nconst SubCategory = ({ subCategory }) => {\n const { formatMessage } = useIntl();\n const { onChange, onChangeSelectAll, onSelectedAction, selectedAction, modifiedData } =\n useUsersPermissions();\n\n const currentScopedModifiedData = useMemo(() => {\n return get(modifiedData, subCategory.name, {});\n }, [modifiedData, subCategory]);\n\n const hasAllActionsSelected = useMemo(() => {\n return Object.values(currentScopedModifiedData).every((action) => action.enabled === true);\n }, [currentScopedModifiedData]);\n\n const hasSomeActionsSelected = useMemo(() => {\n return (\n Object.values(currentScopedModifiedData).some((action) => action.enabled === true) &&\n !hasAllActionsSelected\n );\n }, [currentScopedModifiedData, hasAllActionsSelected]);\n\n const handleChangeSelectAll = useCallback(\n ({ target: { name } }) => {\n onChangeSelectAll({ target: { name, value: !hasAllActionsSelected } });\n },\n [hasAllActionsSelected, onChangeSelectAll]\n );\n\n const isActionSelected = useCallback(\n (actionName) => {\n return selectedAction === actionName;\n },\n [selectedAction]\n );\n\n return (\n <Box>\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n <Box paddingRight={4}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {subCategory.label}\n </Typography>\n </Box>\n <Border />\n <Box paddingLeft={4}>\n <Checkbox\n name={subCategory.name}\n checked={hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected}\n onCheckedChange={(value) =>\n handleChangeSelectAll({ target: { name: subCategory.name, value } })\n }\n >\n {formatMessage({ id: 'app.utils.select-all', defaultMessage: 'Select all' })}\n </Checkbox>\n </Box>\n </Flex>\n <Flex paddingTop={6} paddingBottom={6}>\n <Grid.Root gap={2} style={{ flex: 1 }}>\n {subCategory.actions.map((action) => {\n const name = `${action.name}.enabled`;\n\n return (\n <Grid.Item
|
|
1
|
+
{"version":3,"file":"SubCategory.js","sources":["../../../../../admin/src/components/Permissions/PermissionRow/SubCategory.jsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react';\n\nimport { Box, Checkbox, Flex, Typography, Grid, VisuallyHidden } from '@strapi/design-system';\nimport { Cog } from '@strapi/icons';\nimport get from 'lodash/get';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useUsersPermissions } from '../../../contexts/UsersPermissionsContext';\n\nimport CheckboxWrapper from './CheckboxWrapper';\n\nconst Border = styled.div`\n flex: 1;\n align-self: center;\n border-top: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\nconst SubCategory = ({ subCategory }) => {\n const { formatMessage } = useIntl();\n const { onChange, onChangeSelectAll, onSelectedAction, selectedAction, modifiedData } =\n useUsersPermissions();\n\n const currentScopedModifiedData = useMemo(() => {\n return get(modifiedData, subCategory.name, {});\n }, [modifiedData, subCategory]);\n\n const hasAllActionsSelected = useMemo(() => {\n return Object.values(currentScopedModifiedData).every((action) => action.enabled === true);\n }, [currentScopedModifiedData]);\n\n const hasSomeActionsSelected = useMemo(() => {\n return (\n Object.values(currentScopedModifiedData).some((action) => action.enabled === true) &&\n !hasAllActionsSelected\n );\n }, [currentScopedModifiedData, hasAllActionsSelected]);\n\n const handleChangeSelectAll = useCallback(\n ({ target: { name } }) => {\n onChangeSelectAll({ target: { name, value: !hasAllActionsSelected } });\n },\n [hasAllActionsSelected, onChangeSelectAll]\n );\n\n const isActionSelected = useCallback(\n (actionName) => {\n return selectedAction === actionName;\n },\n [selectedAction]\n );\n\n return (\n <Box>\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n <Box paddingRight={4}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {subCategory.label}\n </Typography>\n </Box>\n <Border />\n <Box paddingLeft={4}>\n <Checkbox\n name={subCategory.name}\n checked={hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected}\n onCheckedChange={(value) =>\n handleChangeSelectAll({ target: { name: subCategory.name, value } })\n }\n >\n {formatMessage({ id: 'app.utils.select-all', defaultMessage: 'Select all' })}\n </Checkbox>\n </Box>\n </Flex>\n <Flex paddingTop={6} paddingBottom={6}>\n <Grid.Root gap={2} style={{ flex: 1 }}>\n {subCategory.actions.map((action) => {\n const name = `${action.name}.enabled`;\n\n return (\n <Grid.Item\n col={4}\n xs={12}\n s={6}\n key={action.name}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <CheckboxWrapper isActive={isActionSelected(action.name)} padding={2} hasRadius>\n <Checkbox\n checked={get(modifiedData, name, false)}\n name={name}\n onCheckedChange={(value) => onChange({ target: { name, value } })}\n >\n {action.label}\n </Checkbox>\n <button\n type=\"button\"\n onClick={() => onSelectedAction(action.name)}\n style={{ display: 'inline-flex', alignItems: 'center' }}\n >\n <VisuallyHidden tag=\"span\">\n {formatMessage(\n {\n id: 'app.utils.show-bound-route',\n defaultMessage: 'Show bound route for {route}',\n },\n {\n route: action.name,\n }\n )}\n </VisuallyHidden>\n <Cog id=\"cog\" cursor=\"pointer\" />\n </button>\n </CheckboxWrapper>\n </Grid.Item>\n );\n })}\n </Grid.Root>\n </Flex>\n </Box>\n );\n};\n\nSubCategory.propTypes = {\n subCategory: PropTypes.object.isRequired,\n};\n\nexport default SubCategory;\n"],"names":["Border","styled","div","theme","colors","neutral150","SubCategory","subCategory","formatMessage","useIntl","onChange","onChangeSelectAll","onSelectedAction","selectedAction","modifiedData","useUsersPermissions","currentScopedModifiedData","useMemo","get","name","hasAllActionsSelected","Object","values","every","action","enabled","hasSomeActionsSelected","some","handleChangeSelectAll","useCallback","target","value","isActionSelected","actionName","_jsxs","Box","Flex","justifyContent","alignItems","_jsx","paddingRight","Typography","variant","textColor","label","paddingLeft","Checkbox","checked","onCheckedChange","id","defaultMessage","paddingTop","paddingBottom","Grid","Root","gap","style","flex","actions","map","Item","col","xs","s","direction","CheckboxWrapper","isActive","padding","hasRadius","button","type","onClick","display","VisuallyHidden","tag","route","Cog","cursor","propTypes","PropTypes","object","isRequired"],"mappings":";;;;;;;;;;;;;AAaA,MAAMA,MAAAA,GAASC,uBAAOC,CAAAA,GAAG;;;wBAGD,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACC,UAAU,CAAC;AACjE,CAAC;AAED,MAAMC,WAAc,GAAA,CAAC,EAAEC,WAAW,EAAE,GAAA;IAClC,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,QAAQ,EAAEC,iBAAiB,EAAEC,gBAAgB,EAAEC,cAAc,EAAEC,YAAY,EAAE,GACnFC,yBAAAA,EAAAA;AAEF,IAAA,MAAMC,4BAA4BC,aAAQ,CAAA,IAAA;AACxC,QAAA,OAAOC,GAAIJ,CAAAA,YAAAA,EAAcP,WAAYY,CAAAA,IAAI,EAAE,EAAC,CAAA;KAC3C,EAAA;AAACL,QAAAA,YAAAA;AAAcP,QAAAA;AAAY,KAAA,CAAA;AAE9B,IAAA,MAAMa,wBAAwBH,aAAQ,CAAA,IAAA;QACpC,OAAOI,MAAAA,CAAOC,MAAM,CAACN,yBAA2BO,CAAAA,CAAAA,KAAK,CAAC,CAACC,MAAAA,GAAWA,MAAOC,CAAAA,OAAO,KAAK,IAAA,CAAA;KACpF,EAAA;AAACT,QAAAA;AAA0B,KAAA,CAAA;AAE9B,IAAA,MAAMU,yBAAyBT,aAAQ,CAAA,IAAA;AACrC,QAAA,OACEI,MAAOC,CAAAA,MAAM,CAACN,yBAAAA,CAAAA,CAA2BW,IAAI,CAAC,CAACH,MAAAA,GAAWA,MAAOC,CAAAA,OAAO,KAAK,IAAA,CAAA,IAC7E,CAACL,qBAAAA;KAEF,EAAA;AAACJ,QAAAA,yBAAAA;AAA2BI,QAAAA;AAAsB,KAAA,CAAA;IAErD,MAAMQ,qBAAAA,GAAwBC,kBAC5B,CAAC,EAAEC,QAAQ,EAAEX,IAAI,EAAE,EAAE,GAAA;QACnBR,iBAAkB,CAAA;YAAEmB,MAAQ,EAAA;AAAEX,gBAAAA,IAAAA;AAAMY,gBAAAA,KAAAA,EAAO,CAACX;AAAsB;AAAE,SAAA,CAAA;KAEtE,EAAA;AAACA,QAAAA,qBAAAA;AAAuBT,QAAAA;AAAkB,KAAA,CAAA;IAG5C,MAAMqB,gBAAAA,GAAmBH,kBACvB,CAACI,UAAAA,GAAAA;AACC,QAAA,OAAOpB,cAAmBoB,KAAAA,UAAAA;KAE5B,EAAA;AAACpB,QAAAA;AAAe,KAAA,CAAA;AAGlB,IAAA,qBACEqB,eAACC,CAAAA,gBAAAA,EAAAA;;0BACCD,eAACE,CAAAA,iBAAAA,EAAAA;gBAAKC,cAAe,EAAA,eAAA;gBAAgBC,UAAW,EAAA,QAAA;;kCAC9CC,cAACJ,CAAAA,gBAAAA,EAAAA;wBAAIK,YAAc,EAAA,CAAA;AACjB,wBAAA,QAAA,gBAAAD,cAACE,CAAAA,uBAAAA,EAAAA;4BAAWC,OAAQ,EAAA,OAAA;4BAAQC,SAAU,EAAA,YAAA;AACnCpC,4BAAAA,QAAAA,EAAAA,WAAAA,CAAYqC;;;kCAGjBL,cAACvC,CAAAA,MAAAA,EAAAA,EAAAA,CAAAA;kCACDuC,cAACJ,CAAAA,gBAAAA,EAAAA;wBAAIU,WAAa,EAAA,CAAA;AAChB,wBAAA,QAAA,gBAAAN,cAACO,CAAAA,qBAAAA,EAAAA;AACC3B,4BAAAA,IAAAA,EAAMZ,YAAYY,IAAI;AACtB4B,4BAAAA,OAAAA,EAASrB,yBAAyB,eAAkBN,GAAAA,qBAAAA;4BACpD4B,eAAiB,EAAA,CAACjB,QAChBH,qBAAsB,CAAA;oCAAEE,MAAQ,EAAA;AAAEX,wCAAAA,IAAAA,EAAMZ,YAAYY,IAAI;AAAEY,wCAAAA;AAAM;AAAE,iCAAA,CAAA;sCAGnEvB,aAAc,CAAA;gCAAEyC,EAAI,EAAA,sBAAA;gCAAwBC,cAAgB,EAAA;AAAa,6BAAA;;;;;0BAIhFX,cAACH,CAAAA,iBAAAA,EAAAA;gBAAKe,UAAY,EAAA,CAAA;gBAAGC,aAAe,EAAA,CAAA;wCAClCb,cAAA,CAACc,kBAAKC,IAAI,EAAA;oBAACC,GAAK,EAAA,CAAA;oBAAGC,KAAO,EAAA;wBAAEC,IAAM,EAAA;AAAE,qBAAA;AACjClD,oBAAAA,QAAAA,EAAAA,WAAAA,CAAYmD,OAAO,CAACC,GAAG,CAAC,CAACnC,MAAAA,GAAAA;AACxB,wBAAA,MAAML,OAAO,CAAGK,EAAAA,MAAAA,CAAOL,IAAI,CAAC,QAAQ,CAAC;wBAErC,qBACEoB,cAAA,CAACc,kBAAKO,IAAI,EAAA;4BACRC,GAAK,EAAA,CAAA;4BACLC,EAAI,EAAA,EAAA;4BACJC,CAAG,EAAA,CAAA;4BAEHC,SAAU,EAAA,QAAA;4BACV1B,UAAW,EAAA,SAAA;AAEX,4BAAA,QAAA,gBAAAJ,eAAC+B,CAAAA,eAAAA,EAAAA;gCAAgBC,QAAUlC,EAAAA,gBAAAA,CAAiBR,OAAOL,IAAI,CAAA;gCAAGgD,OAAS,EAAA,CAAA;gCAAGC,SAAS,EAAA,IAAA;;kDAC7E7B,cAACO,CAAAA,qBAAAA,EAAAA;wCACCC,OAAS7B,EAAAA,GAAAA,CAAIJ,cAAcK,IAAM,EAAA,KAAA,CAAA;wCACjCA,IAAMA,EAAAA,IAAAA;wCACN6B,eAAiB,EAAA,CAACjB,QAAUrB,QAAS,CAAA;gDAAEoB,MAAQ,EAAA;AAAEX,oDAAAA,IAAAA;AAAMY,oDAAAA;AAAM;AAAE,6CAAA,CAAA;AAE9DP,wCAAAA,QAAAA,EAAAA,MAAAA,CAAOoB;;kDAEVV,eAACmC,CAAAA,QAAAA,EAAAA;wCACCC,IAAK,EAAA,QAAA;wCACLC,OAAS,EAAA,IAAM3D,gBAAiBY,CAAAA,MAAAA,CAAOL,IAAI,CAAA;wCAC3CqC,KAAO,EAAA;4CAAEgB,OAAS,EAAA,aAAA;4CAAelC,UAAY,EAAA;AAAS,yCAAA;;0DAEtDC,cAACkC,CAAAA,2BAAAA,EAAAA;gDAAeC,GAAI,EAAA,MAAA;0DACjBlE,aACC,CAAA;oDACEyC,EAAI,EAAA,4BAAA;oDACJC,cAAgB,EAAA;iDAElB,EAAA;AACEyB,oDAAAA,KAAAA,EAAOnD,OAAOL;AAChB,iDAAA;;0DAGJoB,cAACqC,CAAAA,SAAAA,EAAAA;gDAAI3B,EAAG,EAAA,KAAA;gDAAM4B,MAAO,EAAA;;;;;;AA5BpBrD,yBAAAA,EAAAA,MAAAA,CAAOL,IAAI,CAAA;AAiCtB,qBAAA;;;;;AAKV;AAEAb,WAAAA,CAAYwE,SAAS,GAAG;IACtBvE,WAAawE,EAAAA,SAAAA,CAAUC,MAAM,CAACC;AAChC,CAAA;;;;"}
|
|
@@ -95,7 +95,9 @@ const SubCategory = ({ subCategory })=>{
|
|
|
95
95
|
children: subCategory.actions.map((action)=>{
|
|
96
96
|
const name = `${action.name}.enabled`;
|
|
97
97
|
return /*#__PURE__*/ jsx(Grid.Item, {
|
|
98
|
-
col:
|
|
98
|
+
col: 4,
|
|
99
|
+
xs: 12,
|
|
100
|
+
s: 6,
|
|
99
101
|
direction: "column",
|
|
100
102
|
alignItems: "stretch",
|
|
101
103
|
children: /*#__PURE__*/ jsxs(CheckboxWrapper, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubCategory.mjs","sources":["../../../../../admin/src/components/Permissions/PermissionRow/SubCategory.jsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react';\n\nimport { Box, Checkbox, Flex, Typography, Grid, VisuallyHidden } from '@strapi/design-system';\nimport { Cog } from '@strapi/icons';\nimport get from 'lodash/get';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useUsersPermissions } from '../../../contexts/UsersPermissionsContext';\n\nimport CheckboxWrapper from './CheckboxWrapper';\n\nconst Border = styled.div`\n flex: 1;\n align-self: center;\n border-top: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\nconst SubCategory = ({ subCategory }) => {\n const { formatMessage } = useIntl();\n const { onChange, onChangeSelectAll, onSelectedAction, selectedAction, modifiedData } =\n useUsersPermissions();\n\n const currentScopedModifiedData = useMemo(() => {\n return get(modifiedData, subCategory.name, {});\n }, [modifiedData, subCategory]);\n\n const hasAllActionsSelected = useMemo(() => {\n return Object.values(currentScopedModifiedData).every((action) => action.enabled === true);\n }, [currentScopedModifiedData]);\n\n const hasSomeActionsSelected = useMemo(() => {\n return (\n Object.values(currentScopedModifiedData).some((action) => action.enabled === true) &&\n !hasAllActionsSelected\n );\n }, [currentScopedModifiedData, hasAllActionsSelected]);\n\n const handleChangeSelectAll = useCallback(\n ({ target: { name } }) => {\n onChangeSelectAll({ target: { name, value: !hasAllActionsSelected } });\n },\n [hasAllActionsSelected, onChangeSelectAll]\n );\n\n const isActionSelected = useCallback(\n (actionName) => {\n return selectedAction === actionName;\n },\n [selectedAction]\n );\n\n return (\n <Box>\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n <Box paddingRight={4}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {subCategory.label}\n </Typography>\n </Box>\n <Border />\n <Box paddingLeft={4}>\n <Checkbox\n name={subCategory.name}\n checked={hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected}\n onCheckedChange={(value) =>\n handleChangeSelectAll({ target: { name: subCategory.name, value } })\n }\n >\n {formatMessage({ id: 'app.utils.select-all', defaultMessage: 'Select all' })}\n </Checkbox>\n </Box>\n </Flex>\n <Flex paddingTop={6} paddingBottom={6}>\n <Grid.Root gap={2} style={{ flex: 1 }}>\n {subCategory.actions.map((action) => {\n const name = `${action.name}.enabled`;\n\n return (\n <Grid.Item
|
|
1
|
+
{"version":3,"file":"SubCategory.mjs","sources":["../../../../../admin/src/components/Permissions/PermissionRow/SubCategory.jsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react';\n\nimport { Box, Checkbox, Flex, Typography, Grid, VisuallyHidden } from '@strapi/design-system';\nimport { Cog } from '@strapi/icons';\nimport get from 'lodash/get';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useUsersPermissions } from '../../../contexts/UsersPermissionsContext';\n\nimport CheckboxWrapper from './CheckboxWrapper';\n\nconst Border = styled.div`\n flex: 1;\n align-self: center;\n border-top: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\nconst SubCategory = ({ subCategory }) => {\n const { formatMessage } = useIntl();\n const { onChange, onChangeSelectAll, onSelectedAction, selectedAction, modifiedData } =\n useUsersPermissions();\n\n const currentScopedModifiedData = useMemo(() => {\n return get(modifiedData, subCategory.name, {});\n }, [modifiedData, subCategory]);\n\n const hasAllActionsSelected = useMemo(() => {\n return Object.values(currentScopedModifiedData).every((action) => action.enabled === true);\n }, [currentScopedModifiedData]);\n\n const hasSomeActionsSelected = useMemo(() => {\n return (\n Object.values(currentScopedModifiedData).some((action) => action.enabled === true) &&\n !hasAllActionsSelected\n );\n }, [currentScopedModifiedData, hasAllActionsSelected]);\n\n const handleChangeSelectAll = useCallback(\n ({ target: { name } }) => {\n onChangeSelectAll({ target: { name, value: !hasAllActionsSelected } });\n },\n [hasAllActionsSelected, onChangeSelectAll]\n );\n\n const isActionSelected = useCallback(\n (actionName) => {\n return selectedAction === actionName;\n },\n [selectedAction]\n );\n\n return (\n <Box>\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n <Box paddingRight={4}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {subCategory.label}\n </Typography>\n </Box>\n <Border />\n <Box paddingLeft={4}>\n <Checkbox\n name={subCategory.name}\n checked={hasSomeActionsSelected ? 'indeterminate' : hasAllActionsSelected}\n onCheckedChange={(value) =>\n handleChangeSelectAll({ target: { name: subCategory.name, value } })\n }\n >\n {formatMessage({ id: 'app.utils.select-all', defaultMessage: 'Select all' })}\n </Checkbox>\n </Box>\n </Flex>\n <Flex paddingTop={6} paddingBottom={6}>\n <Grid.Root gap={2} style={{ flex: 1 }}>\n {subCategory.actions.map((action) => {\n const name = `${action.name}.enabled`;\n\n return (\n <Grid.Item\n col={4}\n xs={12}\n s={6}\n key={action.name}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <CheckboxWrapper isActive={isActionSelected(action.name)} padding={2} hasRadius>\n <Checkbox\n checked={get(modifiedData, name, false)}\n name={name}\n onCheckedChange={(value) => onChange({ target: { name, value } })}\n >\n {action.label}\n </Checkbox>\n <button\n type=\"button\"\n onClick={() => onSelectedAction(action.name)}\n style={{ display: 'inline-flex', alignItems: 'center' }}\n >\n <VisuallyHidden tag=\"span\">\n {formatMessage(\n {\n id: 'app.utils.show-bound-route',\n defaultMessage: 'Show bound route for {route}',\n },\n {\n route: action.name,\n }\n )}\n </VisuallyHidden>\n <Cog id=\"cog\" cursor=\"pointer\" />\n </button>\n </CheckboxWrapper>\n </Grid.Item>\n );\n })}\n </Grid.Root>\n </Flex>\n </Box>\n );\n};\n\nSubCategory.propTypes = {\n subCategory: PropTypes.object.isRequired,\n};\n\nexport default SubCategory;\n"],"names":["Border","styled","div","theme","colors","neutral150","SubCategory","subCategory","formatMessage","useIntl","onChange","onChangeSelectAll","onSelectedAction","selectedAction","modifiedData","useUsersPermissions","currentScopedModifiedData","useMemo","get","name","hasAllActionsSelected","Object","values","every","action","enabled","hasSomeActionsSelected","some","handleChangeSelectAll","useCallback","target","value","isActionSelected","actionName","_jsxs","Box","Flex","justifyContent","alignItems","_jsx","paddingRight","Typography","variant","textColor","label","paddingLeft","Checkbox","checked","onCheckedChange","id","defaultMessage","paddingTop","paddingBottom","Grid","Root","gap","style","flex","actions","map","Item","col","xs","s","direction","CheckboxWrapper","isActive","padding","hasRadius","button","type","onClick","display","VisuallyHidden","tag","route","Cog","cursor","propTypes","PropTypes","object","isRequired"],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ const Policies = ()=>{
|
|
|
19
19
|
const displayedRoutes = isEmpty(controllerRoutes) ? [] : controllerRoutes.filter((o)=>o.handler.endsWith(pathResolved));
|
|
20
20
|
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
|
|
21
21
|
col: 5,
|
|
22
|
+
xs: 12,
|
|
22
23
|
background: "neutral150",
|
|
23
24
|
paddingTop: 6,
|
|
24
25
|
paddingBottom: 6,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../admin/src/components/Policies/index.jsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, Grid, Typography } from '@strapi/design-system';\nimport get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\nimport without from 'lodash/without';\nimport { useIntl } from 'react-intl';\n\nimport { useUsersPermissions } from '../../contexts/UsersPermissionsContext';\nimport BoundRoute from '../BoundRoute';\n\nconst Policies = () => {\n const { formatMessage } = useIntl();\n const { selectedAction, routes } = useUsersPermissions();\n\n const path = without(selectedAction.split('.'), 'controllers');\n const controllerRoutes = get(routes, path[0]);\n const pathResolved = path.slice(1).join('.');\n\n const displayedRoutes = isEmpty(controllerRoutes)\n ? []\n : controllerRoutes.filter((o) => o.handler.endsWith(pathResolved));\n\n return (\n <Grid.Item\n col={5}\n background=\"neutral150\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n style={{ minHeight: '100%' }}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n {selectedAction ? (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n {displayedRoutes.map((route, key) => (\n // eslint-disable-next-line react/no-array-index-key\n <BoundRoute key={key} route={route} />\n ))}\n </Flex>\n ) : (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'users-permissions.Policies.header.title',\n defaultMessage: 'Advanced settings',\n })}\n </Typography>\n <Typography tag=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: 'users-permissions.Policies.header.hint',\n defaultMessage:\n \"Select the application's actions or the plugin's actions and click on the cog icon to display the bound route\",\n })}\n </Typography>\n </Flex>\n )}\n </Grid.Item>\n );\n};\n\nexport default Policies;\n"],"names":["Policies","formatMessage","useIntl","selectedAction","routes","useUsersPermissions","path","without","split","controllerRoutes","get","pathResolved","slice","join","displayedRoutes","isEmpty","filter","o","handler","endsWith","_jsx","Grid","Item","col","background","paddingTop","paddingBottom","paddingLeft","paddingRight","style","minHeight","direction","alignItems","Flex","gap","map","route","key","BoundRoute","_jsxs","Typography","variant","tag","id","defaultMessage","textColor"],"mappings":";;;;;;;;;;;;AAWA,MAAMA,QAAW,GAAA,IAAA;IACf,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,EAAEC,cAAc,EAAEC,MAAM,EAAE,GAAGC,yBAAAA,EAAAA;AAEnC,IAAA,MAAMC,IAAOC,GAAAA,OAAAA,CAAQJ,cAAeK,CAAAA,KAAK,CAAC,GAAM,CAAA,EAAA,aAAA,CAAA;AAChD,IAAA,MAAMC,gBAAmBC,GAAAA,GAAAA,CAAIN,MAAQE,EAAAA,IAAI,CAAC,CAAE,CAAA,CAAA;AAC5C,IAAA,MAAMK,eAAeL,IAAKM,CAAAA,KAAK,CAAC,CAAA,CAAA,CAAGC,IAAI,CAAC,GAAA,CAAA;AAExC,IAAA,MAAMC,eAAkBC,GAAAA,OAAAA,CAAQN,gBAC5B,CAAA,GAAA,EAAE,GACFA,gBAAiBO,CAAAA,MAAM,CAAC,CAACC,CAAMA,GAAAA,CAAAA,CAAEC,OAAO,CAACC,QAAQ,CAACR,YAAAA,CAAAA,CAAAA;IAEtD,qBACES,cAAA,CAACC,kBAAKC,IAAI,EAAA;QACRC,GAAK,EAAA,CAAA;QACLC,UAAW,EAAA,YAAA;QACXC,UAAY,EAAA,CAAA;QACZC,aAAe,EAAA,CAAA;QACfC,WAAa,EAAA,CAAA;QACbC,YAAc,EAAA,CAAA;QACdC,KAAO,EAAA;YAAEC,SAAW,EAAA;AAAO,SAAA;QAC3BC,SAAU,EAAA,QAAA;QACVC,UAAW,EAAA,SAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../admin/src/components/Policies/index.jsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, Grid, Typography } from '@strapi/design-system';\nimport get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\nimport without from 'lodash/without';\nimport { useIntl } from 'react-intl';\n\nimport { useUsersPermissions } from '../../contexts/UsersPermissionsContext';\nimport BoundRoute from '../BoundRoute';\n\nconst Policies = () => {\n const { formatMessage } = useIntl();\n const { selectedAction, routes } = useUsersPermissions();\n\n const path = without(selectedAction.split('.'), 'controllers');\n const controllerRoutes = get(routes, path[0]);\n const pathResolved = path.slice(1).join('.');\n\n const displayedRoutes = isEmpty(controllerRoutes)\n ? []\n : controllerRoutes.filter((o) => o.handler.endsWith(pathResolved));\n\n return (\n <Grid.Item\n col={5}\n xs={12}\n background=\"neutral150\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n style={{ minHeight: '100%' }}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n {selectedAction ? (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n {displayedRoutes.map((route, key) => (\n // eslint-disable-next-line react/no-array-index-key\n <BoundRoute key={key} route={route} />\n ))}\n </Flex>\n ) : (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'users-permissions.Policies.header.title',\n defaultMessage: 'Advanced settings',\n })}\n </Typography>\n <Typography tag=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: 'users-permissions.Policies.header.hint',\n defaultMessage:\n \"Select the application's actions or the plugin's actions and click on the cog icon to display the bound route\",\n })}\n </Typography>\n </Flex>\n )}\n </Grid.Item>\n );\n};\n\nexport default Policies;\n"],"names":["Policies","formatMessage","useIntl","selectedAction","routes","useUsersPermissions","path","without","split","controllerRoutes","get","pathResolved","slice","join","displayedRoutes","isEmpty","filter","o","handler","endsWith","_jsx","Grid","Item","col","xs","background","paddingTop","paddingBottom","paddingLeft","paddingRight","style","minHeight","direction","alignItems","Flex","gap","map","route","key","BoundRoute","_jsxs","Typography","variant","tag","id","defaultMessage","textColor"],"mappings":";;;;;;;;;;;;AAWA,MAAMA,QAAW,GAAA,IAAA;IACf,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,EAAEC,cAAc,EAAEC,MAAM,EAAE,GAAGC,yBAAAA,EAAAA;AAEnC,IAAA,MAAMC,IAAOC,GAAAA,OAAAA,CAAQJ,cAAeK,CAAAA,KAAK,CAAC,GAAM,CAAA,EAAA,aAAA,CAAA;AAChD,IAAA,MAAMC,gBAAmBC,GAAAA,GAAAA,CAAIN,MAAQE,EAAAA,IAAI,CAAC,CAAE,CAAA,CAAA;AAC5C,IAAA,MAAMK,eAAeL,IAAKM,CAAAA,KAAK,CAAC,CAAA,CAAA,CAAGC,IAAI,CAAC,GAAA,CAAA;AAExC,IAAA,MAAMC,eAAkBC,GAAAA,OAAAA,CAAQN,gBAC5B,CAAA,GAAA,EAAE,GACFA,gBAAiBO,CAAAA,MAAM,CAAC,CAACC,CAAMA,GAAAA,CAAAA,CAAEC,OAAO,CAACC,QAAQ,CAACR,YAAAA,CAAAA,CAAAA;IAEtD,qBACES,cAAA,CAACC,kBAAKC,IAAI,EAAA;QACRC,GAAK,EAAA,CAAA;QACLC,EAAI,EAAA,EAAA;QACJC,UAAW,EAAA,YAAA;QACXC,UAAY,EAAA,CAAA;QACZC,aAAe,EAAA,CAAA;QACfC,WAAa,EAAA,CAAA;QACbC,YAAc,EAAA,CAAA;QACdC,KAAO,EAAA;YAAEC,SAAW,EAAA;AAAO,SAAA;QAC3BC,SAAU,EAAA,QAAA;QACVC,UAAW,EAAA,SAAA;AAEV9B,QAAAA,QAAAA,EAAAA,cAAAA,iBACCiB,cAACc,CAAAA,iBAAAA,EAAAA;YAAKF,SAAU,EAAA,QAAA;YAASC,UAAW,EAAA,SAAA;YAAUE,GAAK,EAAA,CAAA;AAChDrB,YAAAA,QAAAA,EAAAA,eAAAA,CAAgBsB,GAAG,CAAC,CAACC,KAAAA,EAAOC;8BAE3BlB,cAACmB,CAAAA,OAAAA,EAAAA;oBAAqBF,KAAOA,EAAAA;AAAZC,iBAAAA,EAAAA,GAAAA,CAAAA;2BAIrBE,eAACN,CAAAA,iBAAAA,EAAAA;YAAKF,SAAU,EAAA,QAAA;YAASC,UAAW,EAAA,SAAA;YAAUE,GAAK,EAAA,CAAA;;8BACjDf,cAACqB,CAAAA,uBAAAA,EAAAA;oBAAWC,OAAQ,EAAA,OAAA;oBAAQC,GAAI,EAAA,IAAA;8BAC7B1C,aAAc,CAAA;wBACb2C,EAAI,EAAA,yCAAA;wBACJC,cAAgB,EAAA;AAClB,qBAAA;;8BAEFzB,cAACqB,CAAAA,uBAAAA,EAAAA;oBAAWE,GAAI,EAAA,GAAA;oBAAIG,SAAU,EAAA,YAAA;8BAC3B7C,aAAc,CAAA;wBACb2C,EAAI,EAAA,wCAAA;wBACJC,cACE,EAAA;AACJ,qBAAA;;;;;AAMZ;;;;"}
|
|
@@ -17,6 +17,7 @@ const Policies = ()=>{
|
|
|
17
17
|
const displayedRoutes = isEmpty(controllerRoutes) ? [] : controllerRoutes.filter((o)=>o.handler.endsWith(pathResolved));
|
|
18
18
|
return /*#__PURE__*/ jsx(Grid.Item, {
|
|
19
19
|
col: 5,
|
|
20
|
+
xs: 12,
|
|
20
21
|
background: "neutral150",
|
|
21
22
|
paddingTop: 6,
|
|
22
23
|
paddingBottom: 6,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../admin/src/components/Policies/index.jsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, Grid, Typography } from '@strapi/design-system';\nimport get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\nimport without from 'lodash/without';\nimport { useIntl } from 'react-intl';\n\nimport { useUsersPermissions } from '../../contexts/UsersPermissionsContext';\nimport BoundRoute from '../BoundRoute';\n\nconst Policies = () => {\n const { formatMessage } = useIntl();\n const { selectedAction, routes } = useUsersPermissions();\n\n const path = without(selectedAction.split('.'), 'controllers');\n const controllerRoutes = get(routes, path[0]);\n const pathResolved = path.slice(1).join('.');\n\n const displayedRoutes = isEmpty(controllerRoutes)\n ? []\n : controllerRoutes.filter((o) => o.handler.endsWith(pathResolved));\n\n return (\n <Grid.Item\n col={5}\n background=\"neutral150\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n style={{ minHeight: '100%' }}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n {selectedAction ? (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n {displayedRoutes.map((route, key) => (\n // eslint-disable-next-line react/no-array-index-key\n <BoundRoute key={key} route={route} />\n ))}\n </Flex>\n ) : (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'users-permissions.Policies.header.title',\n defaultMessage: 'Advanced settings',\n })}\n </Typography>\n <Typography tag=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: 'users-permissions.Policies.header.hint',\n defaultMessage:\n \"Select the application's actions or the plugin's actions and click on the cog icon to display the bound route\",\n })}\n </Typography>\n </Flex>\n )}\n </Grid.Item>\n );\n};\n\nexport default Policies;\n"],"names":["Policies","formatMessage","useIntl","selectedAction","routes","useUsersPermissions","path","without","split","controllerRoutes","get","pathResolved","slice","join","displayedRoutes","isEmpty","filter","o","handler","endsWith","_jsx","Grid","Item","col","background","paddingTop","paddingBottom","paddingLeft","paddingRight","style","minHeight","direction","alignItems","Flex","gap","map","route","key","BoundRoute","_jsxs","Typography","variant","tag","id","defaultMessage","textColor"],"mappings":";;;;;;;;;;AAWA,MAAMA,QAAW,GAAA,IAAA;IACf,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAM,EAAEC,cAAc,EAAEC,MAAM,EAAE,GAAGC,mBAAAA,EAAAA;AAEnC,IAAA,MAAMC,IAAOC,GAAAA,OAAAA,CAAQJ,cAAeK,CAAAA,KAAK,CAAC,GAAM,CAAA,EAAA,aAAA,CAAA;AAChD,IAAA,MAAMC,gBAAmBC,GAAAA,GAAAA,CAAIN,MAAQE,EAAAA,IAAI,CAAC,CAAE,CAAA,CAAA;AAC5C,IAAA,MAAMK,eAAeL,IAAKM,CAAAA,KAAK,CAAC,CAAA,CAAA,CAAGC,IAAI,CAAC,GAAA,CAAA;AAExC,IAAA,MAAMC,eAAkBC,GAAAA,OAAAA,CAAQN,gBAC5B,CAAA,GAAA,EAAE,GACFA,gBAAiBO,CAAAA,MAAM,CAAC,CAACC,CAAMA,GAAAA,CAAAA,CAAEC,OAAO,CAACC,QAAQ,CAACR,YAAAA,CAAAA,CAAAA;IAEtD,qBACES,GAAA,CAACC,KAAKC,IAAI,EAAA;QACRC,GAAK,EAAA,CAAA;QACLC,UAAW,EAAA,YAAA;QACXC,UAAY,EAAA,CAAA;QACZC,aAAe,EAAA,CAAA;QACfC,WAAa,EAAA,CAAA;QACbC,YAAc,EAAA,CAAA;QACdC,KAAO,EAAA;YAAEC,SAAW,EAAA;AAAO,SAAA;QAC3BC,SAAU,EAAA,QAAA;QACVC,UAAW,EAAA,SAAA;
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../admin/src/components/Policies/index.jsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, Grid, Typography } from '@strapi/design-system';\nimport get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\nimport without from 'lodash/without';\nimport { useIntl } from 'react-intl';\n\nimport { useUsersPermissions } from '../../contexts/UsersPermissionsContext';\nimport BoundRoute from '../BoundRoute';\n\nconst Policies = () => {\n const { formatMessage } = useIntl();\n const { selectedAction, routes } = useUsersPermissions();\n\n const path = without(selectedAction.split('.'), 'controllers');\n const controllerRoutes = get(routes, path[0]);\n const pathResolved = path.slice(1).join('.');\n\n const displayedRoutes = isEmpty(controllerRoutes)\n ? []\n : controllerRoutes.filter((o) => o.handler.endsWith(pathResolved));\n\n return (\n <Grid.Item\n col={5}\n xs={12}\n background=\"neutral150\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n style={{ minHeight: '100%' }}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n {selectedAction ? (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n {displayedRoutes.map((route, key) => (\n // eslint-disable-next-line react/no-array-index-key\n <BoundRoute key={key} route={route} />\n ))}\n </Flex>\n ) : (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'users-permissions.Policies.header.title',\n defaultMessage: 'Advanced settings',\n })}\n </Typography>\n <Typography tag=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: 'users-permissions.Policies.header.hint',\n defaultMessage:\n \"Select the application's actions or the plugin's actions and click on the cog icon to display the bound route\",\n })}\n </Typography>\n </Flex>\n )}\n </Grid.Item>\n );\n};\n\nexport default Policies;\n"],"names":["Policies","formatMessage","useIntl","selectedAction","routes","useUsersPermissions","path","without","split","controllerRoutes","get","pathResolved","slice","join","displayedRoutes","isEmpty","filter","o","handler","endsWith","_jsx","Grid","Item","col","xs","background","paddingTop","paddingBottom","paddingLeft","paddingRight","style","minHeight","direction","alignItems","Flex","gap","map","route","key","BoundRoute","_jsxs","Typography","variant","tag","id","defaultMessage","textColor"],"mappings":";;;;;;;;;;AAWA,MAAMA,QAAW,GAAA,IAAA;IACf,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAM,EAAEC,cAAc,EAAEC,MAAM,EAAE,GAAGC,mBAAAA,EAAAA;AAEnC,IAAA,MAAMC,IAAOC,GAAAA,OAAAA,CAAQJ,cAAeK,CAAAA,KAAK,CAAC,GAAM,CAAA,EAAA,aAAA,CAAA;AAChD,IAAA,MAAMC,gBAAmBC,GAAAA,GAAAA,CAAIN,MAAQE,EAAAA,IAAI,CAAC,CAAE,CAAA,CAAA;AAC5C,IAAA,MAAMK,eAAeL,IAAKM,CAAAA,KAAK,CAAC,CAAA,CAAA,CAAGC,IAAI,CAAC,GAAA,CAAA;AAExC,IAAA,MAAMC,eAAkBC,GAAAA,OAAAA,CAAQN,gBAC5B,CAAA,GAAA,EAAE,GACFA,gBAAiBO,CAAAA,MAAM,CAAC,CAACC,CAAMA,GAAAA,CAAAA,CAAEC,OAAO,CAACC,QAAQ,CAACR,YAAAA,CAAAA,CAAAA;IAEtD,qBACES,GAAA,CAACC,KAAKC,IAAI,EAAA;QACRC,GAAK,EAAA,CAAA;QACLC,EAAI,EAAA,EAAA;QACJC,UAAW,EAAA,YAAA;QACXC,UAAY,EAAA,CAAA;QACZC,aAAe,EAAA,CAAA;QACfC,WAAa,EAAA,CAAA;QACbC,YAAc,EAAA,CAAA;QACdC,KAAO,EAAA;YAAEC,SAAW,EAAA;AAAO,SAAA;QAC3BC,SAAU,EAAA,QAAA;QACVC,UAAW,EAAA,SAAA;AAEV9B,QAAAA,QAAAA,EAAAA,cAAAA,iBACCiB,GAACc,CAAAA,IAAAA,EAAAA;YAAKF,SAAU,EAAA,QAAA;YAASC,UAAW,EAAA,SAAA;YAAUE,GAAK,EAAA,CAAA;AAChDrB,YAAAA,QAAAA,EAAAA,eAAAA,CAAgBsB,GAAG,CAAC,CAACC,KAAAA,EAAOC;8BAE3BlB,GAACmB,CAAAA,UAAAA,EAAAA;oBAAqBF,KAAOA,EAAAA;AAAZC,iBAAAA,EAAAA,GAAAA,CAAAA;2BAIrBE,IAACN,CAAAA,IAAAA,EAAAA;YAAKF,SAAU,EAAA,QAAA;YAASC,UAAW,EAAA,SAAA;YAAUE,GAAK,EAAA,CAAA;;8BACjDf,GAACqB,CAAAA,UAAAA,EAAAA;oBAAWC,OAAQ,EAAA,OAAA;oBAAQC,GAAI,EAAA,IAAA;8BAC7B1C,aAAc,CAAA;wBACb2C,EAAI,EAAA,yCAAA;wBACJC,cAAgB,EAAA;AAClB,qBAAA;;8BAEFzB,GAACqB,CAAAA,UAAAA,EAAAA;oBAAWE,GAAI,EAAA,GAAA;oBAAIG,SAAU,EAAA,YAAA;8BAC3B7C,aAAc,CAAA;wBACb2C,EAAI,EAAA,wCAAA;wBACJC,cACE,EAAA;AACJ,qBAAA;;;;;AAMZ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../admin/src/components/UsersPermissions/index.jsx"],"sourcesContent":["import React, { forwardRef, memo, useImperativeHandle, useReducer } from 'react';\n\nimport { Flex, Grid, Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { UsersPermissionsProvider } from '../../contexts/UsersPermissionsContext';\nimport getTrad from '../../utils/getTrad';\nimport Permissions from '../Permissions';\nimport Policies from '../Policies';\n\nimport init from './init';\nimport reducer, { initialState } from './reducer';\n\nconst UsersPermissions = forwardRef(({ permissions, routes }, ref) => {\n const { formatMessage } = useIntl();\n const [state, dispatch] = useReducer(reducer, initialState, (state) =>\n init(state, permissions, routes)\n );\n\n useImperativeHandle(ref, () => ({\n getPermissions() {\n return {\n permissions: state.modifiedData,\n };\n },\n resetForm() {\n dispatch({ type: 'ON_RESET' });\n },\n setFormAfterSubmit() {\n dispatch({ type: 'ON_SUBMIT_SUCCEEDED' });\n },\n }));\n\n const handleChange = ({ target: { name, value } }) =>\n dispatch({\n type: 'ON_CHANGE',\n keys: name.split('.'),\n value: value === 'empty__string_value' ? '' : value,\n });\n\n const handleChangeSelectAll = ({ target: { name, value } }) =>\n dispatch({\n type: 'ON_CHANGE_SELECT_ALL',\n keys: name.split('.'),\n value,\n });\n\n const handleSelectedAction = (actionToSelect) =>\n dispatch({\n type: 'SELECT_ACTION',\n actionToSelect,\n });\n\n const providerValue = {\n ...state,\n onChange: handleChange,\n onChangeSelectAll: handleChangeSelectAll,\n onSelectedAction: handleSelectedAction,\n };\n\n return (\n <UsersPermissionsProvider value={providerValue}>\n <Grid.Root gap={0} shadow=\"filterShadow\" hasRadius background=\"neutral0\">\n <Grid.Item\n col={7}\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('Plugins.header.title'),\n defaultMessage: 'Permissions',\n })}\n </Typography>\n <Typography tag=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('Plugins.header.description'),\n defaultMessage: 'Only actions bound by a route are listed below.',\n })}\n </Typography>\n </Flex>\n <Permissions />\n </Flex>\n </Grid.Item>\n <Policies />\n </Grid.Root>\n </UsersPermissionsProvider>\n );\n});\n\nUsersPermissions.propTypes = {\n permissions: PropTypes.object.isRequired,\n routes: PropTypes.object.isRequired,\n};\n\nexport default memo(UsersPermissions);\n"],"names":["UsersPermissions","forwardRef","permissions","routes","ref","formatMessage","useIntl","state","dispatch","useReducer","reducer","initialState","init","useImperativeHandle","getPermissions","modifiedData","resetForm","type","setFormAfterSubmit","handleChange","target","name","value","keys","split","handleChangeSelectAll","handleSelectedAction","actionToSelect","providerValue","onChange","onChangeSelectAll","onSelectedAction","_jsx","UsersPermissionsProvider","_jsxs","Grid","Root","gap","shadow","hasRadius","background","Item","col","paddingTop","paddingBottom","paddingLeft","paddingRight","direction","alignItems","Flex","Typography","variant","tag","id","getTrad","defaultMessage","textColor","Permissions","Policies","propTypes","PropTypes","object","isRequired","memo"],"mappings":";;;;;;;;;;;;;;AAcA,MAAMA,gBAAAA,iBAAmBC,iBAAW,CAAC,EAAEC,WAAW,EAAEC,MAAM,EAAE,EAAEC,GAAAA,GAAAA;IAC5D,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,CAACC,KAAOC,EAAAA,QAAAA,CAAS,GAAGC,gBAAAA,CAAWC,eAASC,EAAAA,oBAAAA,EAAc,CAACJ,KAAAA,GAC3DK,IAAKL,CAAAA,KAAAA,EAAOL,WAAaC,EAAAA,MAAAA,CAAAA,CAAAA;IAG3BU,yBAAoBT,CAAAA,GAAAA,EAAK,KAAO;AAC9BU,YAAAA,cAAAA,CAAAA,GAAAA;gBACE,OAAO;AACLZ,oBAAAA,WAAAA,EAAaK,MAAMQ;AACrB,iBAAA;AACF,aAAA;AACAC,YAAAA,SAAAA,CAAAA,GAAAA;gBACER,QAAS,CAAA;oBAAES,IAAM,EAAA;AAAW,iBAAA,CAAA;AAC9B,aAAA;AACAC,YAAAA,kBAAAA,CAAAA,GAAAA;gBACEV,QAAS,CAAA;oBAAES,IAAM,EAAA;AAAsB,iBAAA,CAAA;AACzC;SACF,CAAA,CAAA;IAEA,MAAME,YAAAA,GAAe,CAAC,EAAEC,MAAQ,EAAA,EAAEC,IAAI,EAAEC,KAAK,EAAE,EAAE,GAC/Cd,QAAS,CAAA;YACPS,IAAM,EAAA,WAAA;YACNM,IAAMF,EAAAA,IAAAA,CAAKG,KAAK,CAAC,GAAA,CAAA;YACjBF,KAAOA,EAAAA,KAAAA,KAAU,wBAAwB,EAAKA,GAAAA;AAChD,SAAA,CAAA;IAEF,MAAMG,qBAAAA,GAAwB,CAAC,EAAEL,MAAQ,EAAA,EAAEC,IAAI,EAAEC,KAAK,EAAE,EAAE,GACxDd,QAAS,CAAA;YACPS,IAAM,EAAA,sBAAA;YACNM,IAAMF,EAAAA,IAAAA,CAAKG,KAAK,CAAC,GAAA,CAAA;AACjBF,YAAAA;AACF,SAAA,CAAA;IAEF,MAAMI,oBAAAA,GAAuB,CAACC,cAAAA,GAC5BnB,QAAS,CAAA;YACPS,IAAM,EAAA,eAAA;AACNU,YAAAA;AACF,SAAA,CAAA;AAEF,IAAA,MAAMC,aAAgB,GAAA;AACpB,QAAA,GAAGrB,KAAK;QACRsB,QAAUV,EAAAA,YAAAA;QACVW,iBAAmBL,EAAAA,qBAAAA;QACnBM,gBAAkBL,EAAAA;AACpB,KAAA;AAEA,IAAA,qBACEM,cAACC,CAAAA,8BAAAA,EAAAA;QAAyBX,KAAOM,EAAAA,aAAAA;gCAC/BM,eAAA,CAACC,kBAAKC,IAAI,EAAA;YAACC,GAAK,EAAA,CAAA;YAAGC,MAAO,EAAA,cAAA;YAAeC,SAAS,EAAA,IAAA;YAACC,UAAW,EAAA,UAAA;;AAC5D,8BAAAR,cAAA,CAACG,kBAAKM,IAAI,EAAA;oBACRC,GAAK,EAAA,CAAA;oBACLC,UAAY,EAAA,CAAA;oBACZC,aAAe,EAAA,CAAA;oBACfC,WAAa,EAAA,CAAA;oBACbC,YAAc,EAAA,CAAA;oBACdC,SAAU,EAAA,QAAA;oBACVC,UAAW,EAAA,SAAA;AAEX,oBAAA,QAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../admin/src/components/UsersPermissions/index.jsx"],"sourcesContent":["import React, { forwardRef, memo, useImperativeHandle, useReducer } from 'react';\n\nimport { Flex, Grid, Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { UsersPermissionsProvider } from '../../contexts/UsersPermissionsContext';\nimport getTrad from '../../utils/getTrad';\nimport Permissions from '../Permissions';\nimport Policies from '../Policies';\n\nimport init from './init';\nimport reducer, { initialState } from './reducer';\n\nconst UsersPermissions = forwardRef(({ permissions, routes }, ref) => {\n const { formatMessage } = useIntl();\n const [state, dispatch] = useReducer(reducer, initialState, (state) =>\n init(state, permissions, routes)\n );\n\n useImperativeHandle(ref, () => ({\n getPermissions() {\n return {\n permissions: state.modifiedData,\n };\n },\n resetForm() {\n dispatch({ type: 'ON_RESET' });\n },\n setFormAfterSubmit() {\n dispatch({ type: 'ON_SUBMIT_SUCCEEDED' });\n },\n }));\n\n const handleChange = ({ target: { name, value } }) =>\n dispatch({\n type: 'ON_CHANGE',\n keys: name.split('.'),\n value: value === 'empty__string_value' ? '' : value,\n });\n\n const handleChangeSelectAll = ({ target: { name, value } }) =>\n dispatch({\n type: 'ON_CHANGE_SELECT_ALL',\n keys: name.split('.'),\n value,\n });\n\n const handleSelectedAction = (actionToSelect) =>\n dispatch({\n type: 'SELECT_ACTION',\n actionToSelect,\n });\n\n const providerValue = {\n ...state,\n onChange: handleChange,\n onChangeSelectAll: handleChangeSelectAll,\n onSelectedAction: handleSelectedAction,\n };\n\n return (\n <UsersPermissionsProvider value={providerValue}>\n <Grid.Root gap={0} shadow=\"filterShadow\" hasRadius background=\"neutral0\">\n <Grid.Item\n col={7}\n xs={12}\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('Plugins.header.title'),\n defaultMessage: 'Permissions',\n })}\n </Typography>\n <Typography tag=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('Plugins.header.description'),\n defaultMessage: 'Only actions bound by a route are listed below.',\n })}\n </Typography>\n </Flex>\n <Permissions />\n </Flex>\n </Grid.Item>\n <Policies />\n </Grid.Root>\n </UsersPermissionsProvider>\n );\n});\n\nUsersPermissions.propTypes = {\n permissions: PropTypes.object.isRequired,\n routes: PropTypes.object.isRequired,\n};\n\nexport default memo(UsersPermissions);\n"],"names":["UsersPermissions","forwardRef","permissions","routes","ref","formatMessage","useIntl","state","dispatch","useReducer","reducer","initialState","init","useImperativeHandle","getPermissions","modifiedData","resetForm","type","setFormAfterSubmit","handleChange","target","name","value","keys","split","handleChangeSelectAll","handleSelectedAction","actionToSelect","providerValue","onChange","onChangeSelectAll","onSelectedAction","_jsx","UsersPermissionsProvider","_jsxs","Grid","Root","gap","shadow","hasRadius","background","Item","col","xs","paddingTop","paddingBottom","paddingLeft","paddingRight","direction","alignItems","Flex","Typography","variant","tag","id","getTrad","defaultMessage","textColor","Permissions","Policies","propTypes","PropTypes","object","isRequired","memo"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../admin/src/components/UsersPermissions/index.jsx"],"sourcesContent":["import React, { forwardRef, memo, useImperativeHandle, useReducer } from 'react';\n\nimport { Flex, Grid, Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { UsersPermissionsProvider } from '../../contexts/UsersPermissionsContext';\nimport getTrad from '../../utils/getTrad';\nimport Permissions from '../Permissions';\nimport Policies from '../Policies';\n\nimport init from './init';\nimport reducer, { initialState } from './reducer';\n\nconst UsersPermissions = forwardRef(({ permissions, routes }, ref) => {\n const { formatMessage } = useIntl();\n const [state, dispatch] = useReducer(reducer, initialState, (state) =>\n init(state, permissions, routes)\n );\n\n useImperativeHandle(ref, () => ({\n getPermissions() {\n return {\n permissions: state.modifiedData,\n };\n },\n resetForm() {\n dispatch({ type: 'ON_RESET' });\n },\n setFormAfterSubmit() {\n dispatch({ type: 'ON_SUBMIT_SUCCEEDED' });\n },\n }));\n\n const handleChange = ({ target: { name, value } }) =>\n dispatch({\n type: 'ON_CHANGE',\n keys: name.split('.'),\n value: value === 'empty__string_value' ? '' : value,\n });\n\n const handleChangeSelectAll = ({ target: { name, value } }) =>\n dispatch({\n type: 'ON_CHANGE_SELECT_ALL',\n keys: name.split('.'),\n value,\n });\n\n const handleSelectedAction = (actionToSelect) =>\n dispatch({\n type: 'SELECT_ACTION',\n actionToSelect,\n });\n\n const providerValue = {\n ...state,\n onChange: handleChange,\n onChangeSelectAll: handleChangeSelectAll,\n onSelectedAction: handleSelectedAction,\n };\n\n return (\n <UsersPermissionsProvider value={providerValue}>\n <Grid.Root gap={0} shadow=\"filterShadow\" hasRadius background=\"neutral0\">\n <Grid.Item\n col={7}\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('Plugins.header.title'),\n defaultMessage: 'Permissions',\n })}\n </Typography>\n <Typography tag=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('Plugins.header.description'),\n defaultMessage: 'Only actions bound by a route are listed below.',\n })}\n </Typography>\n </Flex>\n <Permissions />\n </Flex>\n </Grid.Item>\n <Policies />\n </Grid.Root>\n </UsersPermissionsProvider>\n );\n});\n\nUsersPermissions.propTypes = {\n permissions: PropTypes.object.isRequired,\n routes: PropTypes.object.isRequired,\n};\n\nexport default memo(UsersPermissions);\n"],"names":["UsersPermissions","forwardRef","permissions","routes","ref","formatMessage","useIntl","state","dispatch","useReducer","reducer","initialState","init","useImperativeHandle","getPermissions","modifiedData","resetForm","type","setFormAfterSubmit","handleChange","target","name","value","keys","split","handleChangeSelectAll","handleSelectedAction","actionToSelect","providerValue","onChange","onChangeSelectAll","onSelectedAction","_jsx","UsersPermissionsProvider","_jsxs","Grid","Root","gap","shadow","hasRadius","background","Item","col","paddingTop","paddingBottom","paddingLeft","paddingRight","direction","alignItems","Flex","Typography","variant","tag","id","getTrad","defaultMessage","textColor","Permissions","Policies","propTypes","PropTypes","object","isRequired","memo"],"mappings":";;;;;;;;;;;;AAcA,MAAMA,gBAAAA,iBAAmBC,WAAW,CAAC,EAAEC,WAAW,EAAEC,MAAM,EAAE,EAAEC,GAAAA,GAAAA;IAC5D,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,CAACC,KAAOC,EAAAA,QAAAA,CAAS,GAAGC,UAAAA,CAAWC,OAASC,EAAAA,YAAAA,EAAc,CAACJ,KAAAA,GAC3DK,IAAKL,CAAAA,KAAAA,EAAOL,WAAaC,EAAAA,MAAAA,CAAAA,CAAAA;IAG3BU,mBAAoBT,CAAAA,GAAAA,EAAK,KAAO;AAC9BU,YAAAA,cAAAA,CAAAA,GAAAA;gBACE,OAAO;AACLZ,oBAAAA,WAAAA,EAAaK,MAAMQ;AACrB,iBAAA;AACF,aAAA;AACAC,YAAAA,SAAAA,CAAAA,GAAAA;gBACER,QAAS,CAAA;oBAAES,IAAM,EAAA;AAAW,iBAAA,CAAA;AAC9B,aAAA;AACAC,YAAAA,kBAAAA,CAAAA,GAAAA;gBACEV,QAAS,CAAA;oBAAES,IAAM,EAAA;AAAsB,iBAAA,CAAA;AACzC;SACF,CAAA,CAAA;IAEA,MAAME,YAAAA,GAAe,CAAC,EAAEC,MAAQ,EAAA,EAAEC,IAAI,EAAEC,KAAK,EAAE,EAAE,GAC/Cd,QAAS,CAAA;YACPS,IAAM,EAAA,WAAA;YACNM,IAAMF,EAAAA,IAAAA,CAAKG,KAAK,CAAC,GAAA,CAAA;YACjBF,KAAOA,EAAAA,KAAAA,KAAU,wBAAwB,EAAKA,GAAAA;AAChD,SAAA,CAAA;IAEF,MAAMG,qBAAAA,GAAwB,CAAC,EAAEL,MAAQ,EAAA,EAAEC,IAAI,EAAEC,KAAK,EAAE,EAAE,GACxDd,QAAS,CAAA;YACPS,IAAM,EAAA,sBAAA;YACNM,IAAMF,EAAAA,IAAAA,CAAKG,KAAK,CAAC,GAAA,CAAA;AACjBF,YAAAA;AACF,SAAA,CAAA;IAEF,MAAMI,oBAAAA,GAAuB,CAACC,cAAAA,GAC5BnB,QAAS,CAAA;YACPS,IAAM,EAAA,eAAA;AACNU,YAAAA;AACF,SAAA,CAAA;AAEF,IAAA,MAAMC,aAAgB,GAAA;AACpB,QAAA,GAAGrB,KAAK;QACRsB,QAAUV,EAAAA,YAAAA;QACVW,iBAAmBL,EAAAA,qBAAAA;QACnBM,gBAAkBL,EAAAA;AACpB,KAAA;AAEA,IAAA,qBACEM,GAACC,CAAAA,wBAAAA,EAAAA;QAAyBX,KAAOM,EAAAA,aAAAA;gCAC/BM,IAAA,CAACC,KAAKC,IAAI,EAAA;YAACC,GAAK,EAAA,CAAA;YAAGC,MAAO,EAAA,cAAA;YAAeC,SAAS,EAAA,IAAA;YAACC,UAAW,EAAA,UAAA;;AAC5D,8BAAAR,GAAA,CAACG,KAAKM,IAAI,EAAA;oBACRC,GAAK,EAAA,CAAA;oBACLC,UAAY,EAAA,CAAA;oBACZC,aAAe,EAAA,CAAA;oBACfC,WAAa,EAAA,CAAA;oBACbC,YAAc,EAAA,CAAA;oBACdC,SAAU,EAAA,QAAA;oBACVC,UAAW,EAAA,SAAA;AAEX,oBAAA,QAAA,
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../admin/src/components/UsersPermissions/index.jsx"],"sourcesContent":["import React, { forwardRef, memo, useImperativeHandle, useReducer } from 'react';\n\nimport { Flex, Grid, Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { UsersPermissionsProvider } from '../../contexts/UsersPermissionsContext';\nimport getTrad from '../../utils/getTrad';\nimport Permissions from '../Permissions';\nimport Policies from '../Policies';\n\nimport init from './init';\nimport reducer, { initialState } from './reducer';\n\nconst UsersPermissions = forwardRef(({ permissions, routes }, ref) => {\n const { formatMessage } = useIntl();\n const [state, dispatch] = useReducer(reducer, initialState, (state) =>\n init(state, permissions, routes)\n );\n\n useImperativeHandle(ref, () => ({\n getPermissions() {\n return {\n permissions: state.modifiedData,\n };\n },\n resetForm() {\n dispatch({ type: 'ON_RESET' });\n },\n setFormAfterSubmit() {\n dispatch({ type: 'ON_SUBMIT_SUCCEEDED' });\n },\n }));\n\n const handleChange = ({ target: { name, value } }) =>\n dispatch({\n type: 'ON_CHANGE',\n keys: name.split('.'),\n value: value === 'empty__string_value' ? '' : value,\n });\n\n const handleChangeSelectAll = ({ target: { name, value } }) =>\n dispatch({\n type: 'ON_CHANGE_SELECT_ALL',\n keys: name.split('.'),\n value,\n });\n\n const handleSelectedAction = (actionToSelect) =>\n dispatch({\n type: 'SELECT_ACTION',\n actionToSelect,\n });\n\n const providerValue = {\n ...state,\n onChange: handleChange,\n onChangeSelectAll: handleChangeSelectAll,\n onSelectedAction: handleSelectedAction,\n };\n\n return (\n <UsersPermissionsProvider value={providerValue}>\n <Grid.Root gap={0} shadow=\"filterShadow\" hasRadius background=\"neutral0\">\n <Grid.Item\n col={7}\n xs={12}\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('Plugins.header.title'),\n defaultMessage: 'Permissions',\n })}\n </Typography>\n <Typography tag=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('Plugins.header.description'),\n defaultMessage: 'Only actions bound by a route are listed below.',\n })}\n </Typography>\n </Flex>\n <Permissions />\n </Flex>\n </Grid.Item>\n <Policies />\n </Grid.Root>\n </UsersPermissionsProvider>\n );\n});\n\nUsersPermissions.propTypes = {\n permissions: PropTypes.object.isRequired,\n routes: PropTypes.object.isRequired,\n};\n\nexport default memo(UsersPermissions);\n"],"names":["UsersPermissions","forwardRef","permissions","routes","ref","formatMessage","useIntl","state","dispatch","useReducer","reducer","initialState","init","useImperativeHandle","getPermissions","modifiedData","resetForm","type","setFormAfterSubmit","handleChange","target","name","value","keys","split","handleChangeSelectAll","handleSelectedAction","actionToSelect","providerValue","onChange","onChangeSelectAll","onSelectedAction","_jsx","UsersPermissionsProvider","_jsxs","Grid","Root","gap","shadow","hasRadius","background","Item","col","xs","paddingTop","paddingBottom","paddingLeft","paddingRight","direction","alignItems","Flex","Typography","variant","tag","id","getTrad","defaultMessage","textColor","Permissions","Policies","propTypes","PropTypes","object","isRequired","memo"],"mappings":";;;;;;;;;;;;AAcA,MAAMA,gBAAAA,iBAAmBC,WAAW,CAAC,EAAEC,WAAW,EAAEC,MAAM,EAAE,EAAEC,GAAAA,GAAAA;IAC5D,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,CAACC,KAAOC,EAAAA,QAAAA,CAAS,GAAGC,UAAAA,CAAWC,OAASC,EAAAA,YAAAA,EAAc,CAACJ,KAAAA,GAC3DK,IAAKL,CAAAA,KAAAA,EAAOL,WAAaC,EAAAA,MAAAA,CAAAA,CAAAA;IAG3BU,mBAAoBT,CAAAA,GAAAA,EAAK,KAAO;AAC9BU,YAAAA,cAAAA,CAAAA,GAAAA;gBACE,OAAO;AACLZ,oBAAAA,WAAAA,EAAaK,MAAMQ;AACrB,iBAAA;AACF,aAAA;AACAC,YAAAA,SAAAA,CAAAA,GAAAA;gBACER,QAAS,CAAA;oBAAES,IAAM,EAAA;AAAW,iBAAA,CAAA;AAC9B,aAAA;AACAC,YAAAA,kBAAAA,CAAAA,GAAAA;gBACEV,QAAS,CAAA;oBAAES,IAAM,EAAA;AAAsB,iBAAA,CAAA;AACzC;SACF,CAAA,CAAA;IAEA,MAAME,YAAAA,GAAe,CAAC,EAAEC,MAAQ,EAAA,EAAEC,IAAI,EAAEC,KAAK,EAAE,EAAE,GAC/Cd,QAAS,CAAA;YACPS,IAAM,EAAA,WAAA;YACNM,IAAMF,EAAAA,IAAAA,CAAKG,KAAK,CAAC,GAAA,CAAA;YACjBF,KAAOA,EAAAA,KAAAA,KAAU,wBAAwB,EAAKA,GAAAA;AAChD,SAAA,CAAA;IAEF,MAAMG,qBAAAA,GAAwB,CAAC,EAAEL,MAAQ,EAAA,EAAEC,IAAI,EAAEC,KAAK,EAAE,EAAE,GACxDd,QAAS,CAAA;YACPS,IAAM,EAAA,sBAAA;YACNM,IAAMF,EAAAA,IAAAA,CAAKG,KAAK,CAAC,GAAA,CAAA;AACjBF,YAAAA;AACF,SAAA,CAAA;IAEF,MAAMI,oBAAAA,GAAuB,CAACC,cAAAA,GAC5BnB,QAAS,CAAA;YACPS,IAAM,EAAA,eAAA;AACNU,YAAAA;AACF,SAAA,CAAA;AAEF,IAAA,MAAMC,aAAgB,GAAA;AACpB,QAAA,GAAGrB,KAAK;QACRsB,QAAUV,EAAAA,YAAAA;QACVW,iBAAmBL,EAAAA,qBAAAA;QACnBM,gBAAkBL,EAAAA;AACpB,KAAA;AAEA,IAAA,qBACEM,GAACC,CAAAA,wBAAAA,EAAAA;QAAyBX,KAAOM,EAAAA,aAAAA;gCAC/BM,IAAA,CAACC,KAAKC,IAAI,EAAA;YAACC,GAAK,EAAA,CAAA;YAAGC,MAAO,EAAA,cAAA;YAAeC,SAAS,EAAA,IAAA;YAACC,UAAW,EAAA,UAAA;;AAC5D,8BAAAR,GAAA,CAACG,KAAKM,IAAI,EAAA;oBACRC,GAAK,EAAA,CAAA;oBACLC,EAAI,EAAA,EAAA;oBACJC,UAAY,EAAA,CAAA;oBACZC,aAAe,EAAA,CAAA;oBACfC,WAAa,EAAA,CAAA;oBACbC,YAAc,EAAA,CAAA;oBACdC,SAAU,EAAA,QAAA;oBACVC,UAAW,EAAA,SAAA;AAEX,oBAAA,QAAA,gBAAAf,IAACgB,CAAAA,IAAAA,EAAAA;wBAAKF,SAAU,EAAA,QAAA;wBAASC,UAAW,EAAA,SAAA;wBAAUZ,GAAK,EAAA,CAAA;;0CACjDH,IAACgB,CAAAA,IAAAA,EAAAA;gCAAKF,SAAU,EAAA,QAAA;gCAASC,UAAW,EAAA,SAAA;gCAAUZ,GAAK,EAAA,CAAA;;kDACjDL,GAACmB,CAAAA,UAAAA,EAAAA;wCAAWC,OAAQ,EAAA,OAAA;wCAAQC,GAAI,EAAA,IAAA;kDAC7BhD,aAAc,CAAA;AACbiD,4CAAAA,EAAAA,EAAIC,OAAQ,CAAA,sBAAA,CAAA;4CACZC,cAAgB,EAAA;AAClB,yCAAA;;kDAEFxB,GAACmB,CAAAA,UAAAA,EAAAA;wCAAWE,GAAI,EAAA,GAAA;wCAAII,SAAU,EAAA,YAAA;kDAC3BpD,aAAc,CAAA;AACbiD,4CAAAA,EAAAA,EAAIC,OAAQ,CAAA,4BAAA,CAAA;4CACZC,cAAgB,EAAA;AAClB,yCAAA;;;;0CAGJxB,GAAC0B,CAAAA,WAAAA,EAAAA,EAAAA;;;;8BAGL1B,GAAC2B,CAAAA,QAAAA,EAAAA,EAAAA;;;;AAIT,CAAA,CAAA;AAEA3D,gBAAAA,CAAiB4D,SAAS,GAAG;IAC3B1D,WAAa2D,EAAAA,SAAAA,CAAUC,MAAM,CAACC,UAAU;IACxC5D,MAAQ0D,EAAAA,SAAAA,CAAUC,MAAM,CAACC;AAC3B,CAAA;AAEA,yBAAA,cAAeC,KAAKhE,gBAAkB,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../admin/src/pages/AdvancedSettings/index.jsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Typography, useNotifyAT } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport {\n useAPIErrorHandler,\n Page,\n Form,\n InputRenderer,\n useNotification,\n useFetchClient,\n useRBAC,\n Layouts,\n} from '@strapi/strapi/admin';\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 <Page.Protect permissions={PERMISSIONS.readAdvancedSettings}>\n <AdvancedSettingsPage />\n </Page.Protect>\n);\n\nconst AdvancedSettingsPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { notifyStatus } = useNotifyAT();\n const queryClient = useQueryClient();\n const { get, put } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\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: 'danger',\n message: formatMessage({\n id: getTrad('notification.error'),\n defaultMessage: 'An error occured',\n }),\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: formatMessage({\n id: getTrad('notification.success.saved'),\n defaultMessage: 'Saved',\n }),\n });\n },\n onError(error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n },\n refetchActive: true,\n });\n\n const { isLoading: isSubmittingForm } = submitMutation;\n\n const handleSubmit = async (body) => {\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 <Page.Loading />;\n }\n\n return (\n <Page.Main aria-busy={isSubmittingForm}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: getTrad('HeaderNav.link.advancedSettings'),\n defaultMessage: 'Advanced Settings',\n }),\n }\n )}\n </Page.Title>\n <Form onSubmit={handleSubmit} initialValues={data.settings} validationSchema={schema}>\n {({ values, isSubmitting, modified }) => {\n return (\n <>\n <Layouts.Header\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={!modified || !canUpdate}\n startIcon={<Check />}\n size=\"S\"\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n />\n <Layouts.Content>\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\" tag=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid.Root gap={6}>\n {[\n {\n label: {\n id: getTrad('EditForm.inputSelect.label.role'),\n defaultMessage: 'Default role for authenticated users',\n },\n hint: {\n id: getTrad('EditForm.inputSelect.description.role'),\n defaultMessage:\n 'It will attach the new authenticated user to the selected role.',\n },\n options: data.roles.map((role) => ({\n label: role.name,\n value: role.type,\n })),\n name: 'default_role',\n size: 6,\n type: 'enumeration',\n },\n ...layout,\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={\n field.name === 'email_confirmation_redirection' &&\n values.email_confirmation === false\n }\n label={formatMessage(field.label)}\n hint={field.hint ? formatMessage(field.hint) : undefined}\n placeholder={\n field.placeholder ? formatMessage(field.placeholder) : undefined\n }\n />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Flex>\n </Box>\n </Layouts.Content>\n </>\n );\n }}\n </Form>\n </Page.Main>\n );\n};\n\nexport { ProtectedAdvancedSettingsPage, AdvancedSettingsPage };\n"],"names":["ProtectedAdvancedSettingsPage","_jsx","Page","Protect","permissions","PERMISSIONS","readAdvancedSettings","AdvancedSettingsPage","formatMessage","useIntl","toggleNotification","useNotification","notifyStatus","useNotifyAT","queryClient","useQueryClient","get","put","useFetchClient","formatAPIError","useAPIErrorHandler","isLoading","isLoadingForPermissions","allowedActions","canUpdate","useRBAC","update","updateAdvancedSettings","isLoadingData","data","useQuery","onSuccess","id","getTrad","defaultMessage","onError","type","message","submitMutation","useMutation","body","invalidateQueries","error","refetchActive","isSubmittingForm","handleSubmit","mutate","email_confirmation_redirection","email_confirmation","Loading","_jsxs","Main","aria-busy","Title","name","Form","onSubmit","initialValues","settings","validationSchema","schema","values","isSubmitting","modified","_Fragment","Layouts","Header","title","primaryAction","Button","loading","disabled","startIcon","Check","size","Content","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Flex","direction","alignItems","gap","Typography","variant","tag","Grid","Root","label","hint","options","roles","map","role","value","layout","field","Item","col","InputRenderer","undefined","placeholder"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../admin/src/pages/AdvancedSettings/index.jsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Typography, useNotifyAT } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport {\n useAPIErrorHandler,\n Page,\n Form,\n InputRenderer,\n useNotification,\n useFetchClient,\n useRBAC,\n Layouts,\n} from '@strapi/strapi/admin';\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 <Page.Protect permissions={PERMISSIONS.readAdvancedSettings}>\n <AdvancedSettingsPage />\n </Page.Protect>\n);\n\nconst AdvancedSettingsPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { notifyStatus } = useNotifyAT();\n const queryClient = useQueryClient();\n const { get, put } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\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: 'danger',\n message: formatMessage({\n id: getTrad('notification.error'),\n defaultMessage: 'An error occured',\n }),\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: formatMessage({\n id: getTrad('notification.success.saved'),\n defaultMessage: 'Saved',\n }),\n });\n },\n onError(error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n },\n refetchActive: true,\n });\n\n const { isLoading: isSubmittingForm } = submitMutation;\n\n const handleSubmit = async (body) => {\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 <Page.Loading />;\n }\n\n return (\n <Page.Main aria-busy={isSubmittingForm}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: getTrad('HeaderNav.link.advancedSettings'),\n defaultMessage: 'Advanced Settings',\n }),\n }\n )}\n </Page.Title>\n <Form onSubmit={handleSubmit} initialValues={data.settings} validationSchema={schema}>\n {({ values, isSubmitting, modified }) => {\n return (\n <>\n <Layouts.Header\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={!modified || !canUpdate}\n startIcon={<Check />}\n size=\"S\"\n fullWidth\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n />\n <Layouts.Content>\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\" tag=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid.Root gap={6}>\n {[\n {\n label: {\n id: getTrad('EditForm.inputSelect.label.role'),\n defaultMessage: 'Default role for authenticated users',\n },\n hint: {\n id: getTrad('EditForm.inputSelect.description.role'),\n defaultMessage:\n 'It will attach the new authenticated user to the selected role.',\n },\n options: data.roles.map((role) => ({\n label: role.name,\n value: role.type,\n })),\n name: 'default_role',\n size: 6,\n type: 'enumeration',\n },\n ...layout,\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={\n field.name === 'email_confirmation_redirection' &&\n values.email_confirmation === false\n }\n label={formatMessage(field.label)}\n hint={field.hint ? formatMessage(field.hint) : undefined}\n placeholder={\n field.placeholder ? formatMessage(field.placeholder) : undefined\n }\n />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Flex>\n </Box>\n </Layouts.Content>\n </>\n );\n }}\n </Form>\n </Page.Main>\n );\n};\n\nexport { ProtectedAdvancedSettingsPage, AdvancedSettingsPage };\n"],"names":["ProtectedAdvancedSettingsPage","_jsx","Page","Protect","permissions","PERMISSIONS","readAdvancedSettings","AdvancedSettingsPage","formatMessage","useIntl","toggleNotification","useNotification","notifyStatus","useNotifyAT","queryClient","useQueryClient","get","put","useFetchClient","formatAPIError","useAPIErrorHandler","isLoading","isLoadingForPermissions","allowedActions","canUpdate","useRBAC","update","updateAdvancedSettings","isLoadingData","data","useQuery","onSuccess","id","getTrad","defaultMessage","onError","type","message","submitMutation","useMutation","body","invalidateQueries","error","refetchActive","isSubmittingForm","handleSubmit","mutate","email_confirmation_redirection","email_confirmation","Loading","_jsxs","Main","aria-busy","Title","name","Form","onSubmit","initialValues","settings","validationSchema","schema","values","isSubmitting","modified","_Fragment","Layouts","Header","title","primaryAction","Button","loading","disabled","startIcon","Check","size","fullWidth","Content","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Flex","direction","alignItems","gap","Typography","variant","tag","Grid","Root","label","hint","options","roles","map","role","value","layout","field","Item","col","InputRenderer","undefined","placeholder"],"mappings":"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"}
|