@strapi/plugin-users-permissions 5.10.4 → 5.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/admin/src/translations/uk.json +41 -4
- package/dist/admin/chunks/{index-BPiDUOGt.js → index--_o6btSC.js} +2 -2
- package/dist/admin/chunks/{index-BPiDUOGt.js.map → index--_o6btSC.js.map} +1 -1
- package/dist/admin/chunks/{index-DVNIct2-.mjs → index-BBjNJt_G.mjs} +2 -2
- package/dist/admin/chunks/{index-DVNIct2-.mjs.map → index-BBjNJt_G.mjs.map} +1 -1
- package/dist/admin/chunks/{index-Cu2GvTiT.mjs → index-BgAfLcWs.mjs} +2 -2
- package/dist/admin/chunks/{index-Cu2GvTiT.mjs.map → index-BgAfLcWs.mjs.map} +1 -1
- package/dist/admin/chunks/{index-COXjHxFm.mjs → index-CHTUC0LM.mjs} +2 -2
- package/dist/admin/chunks/{index-COXjHxFm.mjs.map → index-CHTUC0LM.mjs.map} +1 -1
- package/dist/admin/chunks/{index-B-Z_z_qb.mjs → index-CY5JZ38k.mjs} +6 -6
- package/dist/admin/chunks/{index-B-Z_z_qb.mjs.map → index-CY5JZ38k.mjs.map} +1 -1
- package/dist/admin/chunks/{index-BtYUb_br.js → index-Cu1VuLS3.js} +2 -2
- package/dist/admin/chunks/{index-BtYUb_br.js.map → index-Cu1VuLS3.js.map} +1 -1
- package/dist/admin/chunks/{index-B2MJiSOD.mjs → index-Cy-tPfRk.mjs} +2 -2
- package/dist/admin/chunks/{index-B2MJiSOD.mjs.map → index-Cy-tPfRk.mjs.map} +1 -1
- package/dist/admin/chunks/{index-DAclA-0k.js → index-DD-Z6c1S.js} +6 -6
- package/dist/admin/chunks/{index-DAclA-0k.js.map → index-DD-Z6c1S.js.map} +1 -1
- package/dist/admin/chunks/{index-CkYplz_3.js → index-DFnYIqrB.js} +2 -2
- package/dist/admin/chunks/{index-CkYplz_3.js.map → index-DFnYIqrB.js.map} +1 -1
- package/dist/admin/chunks/{index-D01zzG9y.js → index-DvubCYNe.js} +2 -2
- package/dist/admin/chunks/{index-D01zzG9y.js.map → index-DvubCYNe.js.map} +1 -1
- package/dist/admin/chunks/{uk-D8JHuzch.mjs → uk-DnrIlPwG.mjs} +42 -5
- package/dist/admin/chunks/uk-DnrIlPwG.mjs.map +1 -0
- package/dist/admin/chunks/{uk-CggQOx1l.js → uk-r5zXTAS7.js} +42 -5
- package/dist/admin/chunks/uk-r5zXTAS7.js.map +1 -0
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/package.json +6 -6
- package/dist/admin/chunks/uk-CggQOx1l.js.map +0 -1
- package/dist/admin/chunks/uk-D8JHuzch.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-D01zzG9y.js","sources":["../../../admin/src/contexts/UsersPermissionsContext/index.jsx","../../../admin/src/utils/formatPluginName.js","../../../admin/src/components/Permissions/init.js","../../../admin/src/components/Permissions/PermissionRow/CheckboxWrapper.jsx","../../../admin/src/components/Permissions/PermissionRow/SubCategory.jsx","../../../admin/src/components/Permissions/PermissionRow/index.jsx","../../../admin/src/components/Permissions/reducer.js","../../../admin/src/components/Permissions/index.jsx","../../../admin/src/components/BoundRoute/getMethodColor.js","../../../admin/src/components/BoundRoute/index.jsx","../../../admin/src/components/Policies/index.jsx","../../../admin/src/components/UsersPermissions/init.js","../../../admin/src/components/UsersPermissions/reducer.js","../../../admin/src/components/UsersPermissions/index.jsx","../../../admin/src/pages/Roles/constants.js","../../../admin/src/utils/cleanPermissions.js","../../../admin/src/pages/Roles/hooks/usePlugins.js","../../../admin/src/pages/Roles/pages/CreatePage.jsx","../../../admin/src/pages/Roles/pages/EditPage.jsx","../../../admin/src/pages/Roles/pages/ListPage/components/TableBody.jsx","../../../admin/src/pages/Roles/pages/ListPage/index.jsx","../../../admin/src/pages/Roles/index.jsx"],"sourcesContent":["import React, { createContext, useContext } from 'react';\n\nimport PropTypes from 'prop-types';\n\nconst UsersPermissions = createContext({});\n\nconst UsersPermissionsProvider = ({ children, value }) => {\n return <UsersPermissions.Provider value={value}>{children}</UsersPermissions.Provider>;\n};\n\nconst useUsersPermissions = () => useContext(UsersPermissions);\n\nUsersPermissionsProvider.propTypes = {\n children: PropTypes.node.isRequired,\n value: PropTypes.object.isRequired,\n};\n\nexport { UsersPermissions, UsersPermissionsProvider, useUsersPermissions };\n","import upperFirst from 'lodash/upperFirst';\n\nfunction formatPluginName(pluginSlug) {\n switch (pluginSlug) {\n case 'application':\n return 'Application';\n case 'plugin::content-manager':\n return 'Content manager';\n case 'plugin::content-type-builder':\n return 'Content types builder';\n case 'plugin::documentation':\n return 'Documentation';\n case 'plugin::email':\n return 'Email';\n case 'plugin::i18n':\n return 'i18n';\n case 'plugin::upload':\n return 'Upload';\n case 'plugin::users-permissions':\n return 'Users-permissions';\n default:\n return upperFirst(pluginSlug.replace('api::', '').replace('plugin::', ''));\n }\n}\n\nexport default formatPluginName;\n","const init = (initialState, permissions) => {\n const collapses = Object.keys(permissions)\n .sort()\n .map((name) => ({ name, isOpen: false }));\n\n return { ...initialState, collapses };\n};\n\nexport default init;\n","import { Box } from '@strapi/design-system';\nimport { styled, css } from 'styled-components';\n\nconst activeCheckboxWrapperStyles = css`\n background: ${(props) => props.theme.colors.primary100};\n\n #cog {\n opacity: 1;\n }\n`;\n\nconst CheckboxWrapper = styled(Box)`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n #cog {\n opacity: 0;\n path {\n fill: ${(props) => props.theme.colors.primary600};\n }\n }\n\n /* Show active style both on hover and when the action is selected */\n ${(props) => props.isActive && activeCheckboxWrapperStyles}\n &:hover {\n ${activeCheckboxWrapperStyles}\n }\n`;\n\nexport default CheckboxWrapper;\n","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 col={6} key={action.name} direction=\"column\" alignItems=\"stretch\">\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","import React, { useMemo } from 'react';\n\nimport { Box } from '@strapi/design-system';\nimport sortBy from 'lodash/sortBy';\nimport PropTypes from 'prop-types';\n\nimport SubCategory from './SubCategory';\n\nconst PermissionRow = ({ name, permissions }) => {\n const subCategories = useMemo(() => {\n return sortBy(\n Object.values(permissions.controllers).reduce((acc, curr, index) => {\n const currentName = `${name}.controllers.${Object.keys(permissions.controllers)[index]}`;\n const actions = sortBy(\n Object.keys(curr).reduce((acc, current) => {\n return [\n ...acc,\n {\n ...curr[current],\n label: current,\n name: `${currentName}.${current}`,\n },\n ];\n }, []),\n 'label'\n );\n\n return [\n ...acc,\n {\n actions,\n label: Object.keys(permissions.controllers)[index],\n name: currentName,\n },\n ];\n }, []),\n 'label'\n );\n }, [name, permissions]);\n\n return (\n <Box padding={6}>\n {subCategories.map((subCategory) => (\n <SubCategory key={subCategory.name} subCategory={subCategory} />\n ))}\n </Box>\n );\n};\n\nPermissionRow.propTypes = {\n name: PropTypes.string.isRequired,\n permissions: PropTypes.object.isRequired,\n};\n\nexport default PermissionRow;\n","import { produce } from 'immer';\n\nconst initialState = {\n collapses: [],\n};\n\nconst reducer = (state, action) =>\n // eslint-disable-next-line consistent-return\n produce(state, (draftState) => {\n switch (action.type) {\n case 'TOGGLE_COLLAPSE': {\n draftState.collapses = state.collapses.map((collapse, index) => {\n if (index === action.index) {\n return { ...collapse, isOpen: !collapse.isOpen };\n }\n\n return { ...collapse, isOpen: false };\n });\n\n break;\n }\n default:\n return draftState;\n }\n });\n\nexport { initialState, reducer };\n","import React, { useReducer } from 'react';\n\nimport { Accordion, Flex } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useUsersPermissions } from '../../contexts/UsersPermissionsContext';\nimport formatPluginName from '../../utils/formatPluginName';\n\nimport init from './init';\nimport PermissionRow from './PermissionRow';\nimport { initialState, reducer } from './reducer';\n\nconst Permissions = () => {\n const { modifiedData } = useUsersPermissions();\n const { formatMessage } = useIntl();\n const [{ collapses }] = useReducer(reducer, initialState, (state) => init(state, modifiedData));\n\n return (\n <Accordion.Root size=\"M\">\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n {collapses.map((collapse, index) => (\n <Accordion.Item key={collapse.name} value={collapse.name}>\n <Accordion.Header variant={index % 2 === 0 ? 'secondary' : undefined}>\n <Accordion.Trigger\n caretPosition=\"right\"\n description={formatMessage(\n {\n id: 'users-permissions.Plugin.permissions.plugins.description',\n defaultMessage: 'Define all allowed actions for the {name} plugin.',\n },\n { name: collapse.name }\n )}\n >\n {formatPluginName(collapse.name)}\n </Accordion.Trigger>\n </Accordion.Header>\n <Accordion.Content>\n <PermissionRow permissions={modifiedData[collapse.name]} name={collapse.name} />\n </Accordion.Content>\n </Accordion.Item>\n ))}\n </Flex>\n </Accordion.Root>\n );\n};\n\nexport default Permissions;\n","const getMethodColor = (verb) => {\n switch (verb) {\n case 'POST': {\n return {\n text: 'success600',\n border: 'success200',\n background: 'success100',\n };\n }\n case 'GET': {\n return {\n text: 'secondary600',\n border: 'secondary200',\n background: 'secondary100',\n };\n }\n case 'PUT': {\n return {\n text: 'warning600',\n border: 'warning200',\n background: 'warning100',\n };\n }\n case 'DELETE': {\n return {\n text: 'danger600',\n border: 'danger200',\n background: 'danger100',\n };\n }\n default: {\n return {\n text: 'neutral600',\n border: 'neutral200',\n background: 'neutral100',\n };\n }\n }\n};\n\nexport default getMethodColor;\n","import * as React from 'react';\n\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport map from 'lodash/map';\nimport tail from 'lodash/tail';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport getMethodColor from './getMethodColor';\n\nconst MethodBox = styled(Box)`\n margin: -1px;\n border-radius: ${({ theme }) => theme.spaces[1]} 0 0 ${({ theme }) => theme.spaces[1]};\n`;\n\nfunction BoundRoute({ route }) {\n const { formatMessage } = useIntl();\n\n const { method, handler: title, path } = route;\n const formattedRoute = path ? tail(path.split('/')) : [];\n const [controller = '', action = ''] = title ? title.split('.') : [];\n const colors = getMethodColor(route.method);\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'users-permissions.BoundRoute.title',\n defaultMessage: 'Bound route to',\n })}\n \n <span>{controller}</span>\n <Typography variant=\"delta\" textColor=\"primary600\">\n .{action}\n </Typography>\n </Typography>\n <Flex hasRadius background=\"neutral0\" borderColor=\"neutral200\" gap={0}>\n <MethodBox background={colors.background} borderColor={colors.border} padding={2}>\n <Typography fontWeight=\"bold\" textColor={colors.text}>\n {method}\n </Typography>\n </MethodBox>\n <Box paddingLeft={2} paddingRight={2}>\n {map(formattedRoute, (value) => (\n <Typography key={value} textColor={value.includes(':') ? 'neutral600' : 'neutral900'}>\n /{value}\n </Typography>\n ))}\n </Box>\n </Flex>\n </Flex>\n );\n}\n\nBoundRoute.defaultProps = {\n route: {\n handler: 'Nocontroller.error',\n method: 'GET',\n path: '/there-is-no-path',\n },\n};\n\nBoundRoute.propTypes = {\n route: PropTypes.shape({\n handler: PropTypes.string,\n method: PropTypes.string,\n path: PropTypes.string,\n }),\n};\n\nexport default BoundRoute;\n","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","const init = (state, permissions, routes) => {\n return {\n ...state,\n initialData: permissions,\n modifiedData: permissions,\n routes,\n };\n};\n\nexport default init;\n","/* eslint-disable consistent-return */\nimport { produce } from 'immer';\nimport get from 'lodash/get';\nimport set from 'lodash/set';\nimport take from 'lodash/take';\n\nexport const initialState = {\n initialData: {},\n modifiedData: {},\n routes: {},\n selectedAction: '',\n policies: [],\n};\n\nconst reducer = (state, action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'ON_CHANGE': {\n const keysLength = action.keys.length;\n const isChangingCheckbox = action.keys[keysLength - 1] === 'enabled';\n\n if (action.value && isChangingCheckbox) {\n const selectedAction = take(action.keys, keysLength - 1).join('.');\n draftState.selectedAction = selectedAction;\n }\n\n set(draftState, ['modifiedData', ...action.keys], action.value);\n break;\n }\n case 'ON_CHANGE_SELECT_ALL': {\n const pathToValue = ['modifiedData', ...action.keys];\n const oldValues = get(state, pathToValue, {});\n const updatedValues = Object.keys(oldValues).reduce((acc, current) => {\n acc[current] = { ...oldValues[current], enabled: action.value };\n\n return acc;\n }, {});\n\n set(draftState, pathToValue, updatedValues);\n\n break;\n }\n case 'ON_RESET': {\n draftState.modifiedData = state.initialData;\n break;\n }\n case 'ON_SUBMIT_SUCCEEDED': {\n draftState.initialData = state.modifiedData;\n break;\n }\n\n case 'SELECT_ACTION': {\n const { actionToSelect } = action;\n draftState.selectedAction = actionToSelect === state.selectedAction ? '' : actionToSelect;\n break;\n }\n default:\n return draftState;\n }\n });\n\nexport default reducer;\n","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","import { translatedErrors } from '@strapi/strapi/admin';\nimport * as yup from 'yup';\n\nexport const createRoleSchema = yup.object().shape({\n name: yup.string().required(translatedErrors.required.id),\n description: yup.string().required(translatedErrors.required.id),\n});\n","import isEmpty from 'lodash/isEmpty';\n\nconst cleanPermissions = (permissions) =>\n Object.keys(permissions).reduce((acc, current) => {\n const currentPermission = permissions[current].controllers;\n const cleanedControllers = Object.keys(currentPermission).reduce((acc2, curr) => {\n if (isEmpty(currentPermission[curr])) {\n return acc2;\n }\n\n acc2[curr] = currentPermission[curr];\n\n return acc2;\n }, {});\n\n if (isEmpty(cleanedControllers)) {\n return acc;\n }\n\n acc[current] = { controllers: cleanedControllers };\n\n return acc;\n }, {});\n\nexport default cleanPermissions;\n","import { useEffect } from 'react';\n\nimport { useAPIErrorHandler, useNotification, useFetchClient } from '@strapi/strapi/admin';\nimport { useQueries } from 'react-query';\n\nimport { cleanPermissions, getTrad } from '../../../utils';\n\nexport const usePlugins = () => {\n const { toggleNotification } = useNotification();\n const { get } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler(getTrad);\n\n const [\n {\n data: permissions,\n isLoading: isLoadingPermissions,\n error: permissionsError,\n refetch: refetchPermissions,\n },\n { data: routes, isLoading: isLoadingRoutes, error: routesError, refetch: refetchRoutes },\n ] = useQueries([\n {\n queryKey: ['users-permissions', 'permissions'],\n async queryFn() {\n const {\n data: { permissions },\n } = await get(`/users-permissions/permissions`);\n\n return permissions;\n },\n },\n {\n queryKey: ['users-permissions', 'routes'],\n async queryFn() {\n const {\n data: { routes },\n } = await get(`/users-permissions/routes`);\n\n return routes;\n },\n },\n ]);\n\n const refetchQueries = async () => {\n await Promise.all([refetchPermissions(), refetchRoutes()]);\n };\n\n useEffect(() => {\n if (permissionsError) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(permissionsError),\n });\n }\n }, [toggleNotification, permissionsError, formatAPIError]);\n\n useEffect(() => {\n if (routesError) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(routesError),\n });\n }\n }, [toggleNotification, routesError, formatAPIError]);\n\n const isLoading = isLoadingPermissions || isLoadingRoutes;\n\n return {\n // TODO: these return values need to be memoized, otherwise\n // they will create infinite rendering loops when used as\n // effect dependencies\n permissions: permissions ? cleanPermissions(permissions) : {},\n routes: routes ?? {},\n\n getData: refetchQueries,\n isLoading,\n };\n};\n","import * as React from 'react';\n\nimport {\n Button,\n Flex,\n Grid,\n Main,\n Textarea,\n TextInput,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { Page, useTracking, useNotification, useFetchClient, Layouts } from '@strapi/strapi/admin';\nimport { Formik, Form } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\nimport { useNavigate } from 'react-router-dom';\n\nimport UsersPermissions from '../../../components/UsersPermissions';\nimport { PERMISSIONS } from '../../../constants';\nimport getTrad from '../../../utils/getTrad';\nimport { createRoleSchema } from '../constants';\nimport { usePlugins } from '../hooks/usePlugins';\n\nexport const CreatePage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n const { isLoading: isLoadingPlugins, permissions, routes } = usePlugins();\n const { trackUsage } = useTracking();\n const permissionsRef = React.useRef();\n const { post } = useFetchClient();\n const mutation = useMutation((body) => post(`/users-permissions/roles`, body), {\n onError() {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n },\n\n onSuccess() {\n trackUsage('didCreateRole');\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('Settings.roles.created'),\n defaultMessage: 'Role created',\n }),\n });\n\n // Forcing redirecting since we don't have the id in the response\n navigate(-1);\n },\n });\n\n const handleCreateRoleSubmit = async (data) => {\n // TODO: refactor. Child -> parent component communication is evil;\n // We should either move the provider one level up or move the state\n // straight into redux.\n const permissions = permissionsRef.current.getPermissions();\n\n await mutation.mutate({ ...data, ...permissions, users: [] });\n };\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'Roles' }\n )}\n </Page.Title>\n <Formik\n enableReinitialize\n initialValues={{ name: '', description: '' }}\n onSubmit={handleCreateRoleSubmit}\n validationSchema={createRoleSchema}\n >\n {({ handleSubmit, values, handleChange, errors }) => (\n <Form noValidate onSubmit={handleSubmit}>\n <Layouts.Header\n primaryAction={\n !isLoadingPlugins && (\n <Button type=\"submit\" loading={mutation.isLoading} startIcon={<Check />}>\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n )\n }\n title={formatMessage({\n id: 'Settings.roles.create.title',\n defaultMessage: 'Create a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n />\n <Layouts.Content>\n <Flex\n background=\"neutral0\"\n direction=\"column\"\n alignItems=\"stretch\"\n gap={7}\n hasRadius\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n shadow=\"filterShadow\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\">\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('EditPage.form.roles'),\n defaultMessage: 'Role details',\n })}\n </Typography>\n\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={\n errors?.name\n ? formatMessage({ id: errors.name, defaultMessage: 'Name is required' })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput value={values.name || ''} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={\n errors?.description\n ? formatMessage({\n id: errors.description,\n defaultMessage: 'Description is required',\n })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea value={values.description || ''} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n\n {!isLoadingPlugins && (\n <UsersPermissions\n ref={permissionsRef}\n permissions={permissions}\n routes={routes}\n />\n )}\n </Flex>\n </Layouts.Content>\n </Form>\n )}\n </Formik>\n </Main>\n );\n};\n\nexport const ProtectedRolesCreatePage = () => (\n <Page.Protect permissions={PERMISSIONS.createRole}>\n <CreatePage />\n </Page.Protect>\n);\n","import * as React from 'react';\n\nimport {\n Main,\n Button,\n Flex,\n TextInput,\n Textarea,\n Typography,\n Grid,\n Field,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport {\n Page,\n BackButton,\n useAPIErrorHandler,\n useNotification,\n useFetchClient,\n Layouts,\n} from '@strapi/strapi/admin';\nimport { Formik, Form } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useQuery, useMutation } from 'react-query';\nimport { useMatch } from 'react-router-dom';\n\nimport UsersPermissions from '../../../components/UsersPermissions';\nimport { PERMISSIONS } from '../../../constants';\nimport getTrad from '../../../utils/getTrad';\nimport { createRoleSchema } from '../constants';\nimport { usePlugins } from '../hooks/usePlugins';\n\nexport const EditPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const {\n params: { id },\n } = useMatch(`/settings/users-permissions/roles/:id`);\n const { get } = useFetchClient();\n const { isLoading: isLoadingPlugins, routes } = usePlugins();\n const {\n data: role,\n isLoading: isLoadingRole,\n refetch: refetchRole,\n } = useQuery(['users-permissions', 'role', id], async () => {\n // TODO: why doesn't this endpoint follow the admin API conventions?\n const {\n data: { role },\n } = await get(`/users-permissions/roles/${id}`);\n\n return role;\n });\n\n const permissionsRef = React.useRef();\n const { put } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n const mutation = useMutation((body) => put(`/users-permissions/roles/${id}`, body), {\n onError(error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n },\n\n async onSuccess() {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('Settings.roles.created'),\n defaultMessage: 'Role edited',\n }),\n });\n\n await refetchRole();\n },\n });\n\n const handleEditRoleSubmit = async (data) => {\n const permissions = permissionsRef.current.getPermissions();\n\n await mutation.mutate({ ...data, ...permissions, users: [] });\n };\n\n if (isLoadingRole) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'Roles' }\n )}\n </Page.Title>\n <Formik\n enableReinitialize\n initialValues={{ name: role.name, description: role.description }}\n onSubmit={handleEditRoleSubmit}\n validationSchema={createRoleSchema}\n >\n {({ handleSubmit, values, handleChange, errors }) => (\n <Form noValidate onSubmit={handleSubmit}>\n <Layouts.Header\n primaryAction={\n !isLoadingPlugins ? (\n <Button\n disabled={role.code === 'strapi-super-admin'}\n type=\"submit\"\n loading={mutation.isLoading}\n startIcon={<Check />}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n ) : null\n }\n title={role.name}\n subtitle={role.description}\n navigationAction={<BackButton fallback=\"..\" />}\n />\n <Layouts.Content>\n <Flex\n background=\"neutral0\"\n direction=\"column\"\n alignItems=\"stretch\"\n gap={7}\n hasRadius\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n shadow=\"filterShadow\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('EditPage.form.roles'),\n defaultMessage: 'Role details',\n })}\n </Typography>\n\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={\n errors?.name\n ? formatMessage({\n id: errors.name,\n defaultMessage: 'Name is required',\n })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput value={values.name || ''} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={\n errors?.description\n ? formatMessage({\n id: errors.description,\n defaultMessage: 'Description is required',\n })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea value={values.description || ''} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n\n {!isLoadingPlugins && (\n <UsersPermissions\n ref={permissionsRef}\n permissions={role.permissions}\n routes={routes}\n />\n )}\n </Flex>\n </Layouts.Content>\n </Form>\n )}\n </Formik>\n </Main>\n );\n};\n\nexport const ProtectedRolesEditPage = () => (\n <Page.Protect permissions={PERMISSIONS.updateRole}>\n <EditPage />\n </Page.Protect>\n);\n","import * as React from 'react';\n\nimport { Flex, IconButton, Link, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, NavLink } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nconst EditLink = styled(Link)`\n align-items: center;\n height: 3.2rem;\n width: 3.2rem;\n display: flex;\n justify-content: center;\n padding: ${({ theme }) => `${theme.spaces[2]}`};\n\n svg {\n height: 1.6rem;\n width: 1.6rem;\n\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n\n &:hover,\n &:focus {\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral800};\n }\n }\n }\n`;\n\nconst TableBody = ({ sortedRoles, canDelete, canUpdate, setRoleToDelete, onDelete }) => {\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const [showConfirmDelete, setShowConfirmDelete] = onDelete;\n\n const checkCanDeleteRole = (role) =>\n canDelete && !['public', 'authenticated'].includes(role.type);\n\n const handleClickDelete = (id) => {\n setRoleToDelete(id);\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n return (\n <Tbody>\n {sortedRoles?.map((role) => (\n <Tr cursor=\"pointer\" key={role.name} onClick={() => navigate(role.id.toString())}>\n <Td width=\"20%\">\n <Typography>{role.name}</Typography>\n </Td>\n <Td width=\"50%\">\n <Typography>{role.description}</Typography>\n </Td>\n <Td width=\"30%\">\n <Typography>\n {formatMessage(\n {\n id: 'Roles.RoleRow.user-count',\n defaultMessage: '{number, plural, =0 {# user} one {# user} other {# users}}',\n },\n { number: role.nb_users }\n )}\n </Typography>\n </Td>\n <Td>\n <Flex justifyContent=\"end\" onClick={(e) => e.stopPropagation()}>\n {canUpdate ? (\n <EditLink\n tag={NavLink}\n to={role.id.toString()}\n aria-label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: `${role.name}` }\n )}\n >\n <Pencil />\n </EditLink>\n ) : null}\n\n {checkCanDeleteRole(role) && (\n <IconButton\n onClick={() => handleClickDelete(role.id.toString())}\n variant=\"ghost\"\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: `${role.name}` }\n )}\n >\n <Trash />\n </IconButton>\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n );\n};\n\nexport default TableBody;\n\nTableBody.defaultProps = {\n canDelete: false,\n canUpdate: false,\n};\n\nTableBody.propTypes = {\n onDelete: PropTypes.array.isRequired,\n setRoleToDelete: PropTypes.func.isRequired,\n sortedRoles: PropTypes.array.isRequired,\n canDelete: PropTypes.bool,\n canUpdate: PropTypes.bool,\n};\n","import React, { useState } from 'react';\n\nimport {\n Table,\n Th,\n Thead,\n Tr,\n Typography,\n useNotifyAT,\n VisuallyHidden,\n EmptyStateLayout,\n useCollator,\n useFilter,\n LinkButton,\n Dialog,\n} from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport {\n ConfirmDialog,\n useTracking,\n Page,\n SearchInput,\n useNotification,\n useQueryParams,\n useFetchClient,\n useRBAC,\n Layouts,\n} from '@strapi/strapi/admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery } from 'react-query';\nimport { NavLink } from 'react-router-dom';\n\nimport { PERMISSIONS } from '../../../../constants';\nimport { getTrad } from '../../../../utils';\n\nimport TableBody from './components/TableBody';\n\nexport const RolesListPage = () => {\n const { trackUsage } = useTracking();\n const { formatMessage, locale } = useIntl();\n const { toggleNotification } = useNotification();\n const { notifyStatus } = useNotifyAT();\n const [{ query }] = useQueryParams();\n const _q = query?._q || '';\n const [showConfirmDelete, setShowConfirmDelete] = useState(false);\n const [roleToDelete, setRoleToDelete] = useState();\n const { del, get } = useFetchClient();\n\n const {\n isLoading: isLoadingForPermissions,\n allowedActions: { canRead, canDelete, canCreate, canUpdate },\n } = useRBAC({\n create: PERMISSIONS.createRole,\n read: PERMISSIONS.readRoles,\n update: PERMISSIONS.updateRole,\n delete: PERMISSIONS.deleteRole,\n });\n\n const {\n isLoading: isLoadingForData,\n data: { roles },\n isFetching,\n refetch,\n } = useQuery('get-roles', () => fetchData(toggleNotification, formatMessage, notifyStatus), {\n initialData: {},\n enabled: canRead,\n });\n\n const { contains } = useFilter(locale, {\n sensitivity: 'base',\n });\n\n /**\n * @type {Intl.Collator}\n */\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const isLoading = isLoadingForData || isFetching || isLoadingForPermissions;\n\n const handleShowConfirmDelete = () => {\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const deleteData = async (id, formatMessage, toggleNotification) => {\n try {\n await del(`/users-permissions/roles/${id}`);\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n };\n\n const fetchData = async (toggleNotification, formatMessage, notifyStatus) => {\n try {\n const { data } = await get('/users-permissions/roles');\n notifyStatus('The roles have loaded successfully');\n\n return data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n\n throw new Error(err);\n }\n };\n\n const emptyLayout = {\n roles: {\n id: getTrad('Roles.empty'),\n defaultMessage: \"You don't have any roles yet.\",\n },\n search: {\n id: getTrad('Roles.empty.search'),\n defaultMessage: 'No roles match the search.',\n },\n };\n\n const pageTitle = formatMessage({\n id: 'global.roles',\n defaultMessage: 'Roles',\n });\n\n const deleteMutation = useMutation((id) => deleteData(id, formatMessage, toggleNotification), {\n async onSuccess() {\n await refetch();\n },\n });\n\n const handleConfirmDelete = async () => {\n await deleteMutation.mutateAsync(roleToDelete);\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const sortedRoles = (roles || [])\n .filter((role) => contains(role.name, _q) || contains(role.description, _q))\n .sort(\n (a, b) => formatter.compare(a.name, b.name) || formatter.compare(a.description, b.description)\n );\n\n const emptyContent = _q && !sortedRoles.length ? 'search' : 'roles';\n\n const colCount = 4;\n const rowCount = (roles?.length || 0) + 1;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Layouts.Root>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: pageTitle }\n )}\n </Page.Title>\n <Page.Main>\n <Layouts.Header\n title={formatMessage({\n id: 'global.roles',\n defaultMessage: 'Roles',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.list.description',\n defaultMessage: 'List of roles',\n })}\n primaryAction={\n canCreate ? (\n <LinkButton\n to=\"new\"\n tag={NavLink}\n onClick={() => trackUsage('willCreateRole')}\n startIcon={<Plus />}\n size=\"S\"\n >\n {formatMessage({\n id: getTrad('List.button.roles'),\n defaultMessage: 'Add new role',\n })}\n </LinkButton>\n ) : null\n }\n />\n\n <Layouts.Action\n startActions={\n <SearchInput\n label={formatMessage({\n id: 'app.component.search.label',\n defaultMessage: 'Search',\n })}\n />\n }\n />\n\n <Layouts.Content>\n {!canRead && <Page.NoPermissions />}\n {canRead && sortedRoles && sortedRoles?.length ? (\n <Table colCount={colCount} rowCount={rowCount}>\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({ id: 'global.name', defaultMessage: 'Name' })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'global.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <TableBody\n sortedRoles={sortedRoles}\n canDelete={canDelete}\n canUpdate={canUpdate}\n permissions={PERMISSIONS}\n setRoleToDelete={setRoleToDelete}\n onDelete={[showConfirmDelete, setShowConfirmDelete]}\n />\n </Table>\n ) : (\n <EmptyStateLayout content={formatMessage(emptyLayout[emptyContent])} />\n )}\n </Layouts.Content>\n <Dialog.Root open={showConfirmDelete} onOpenChange={handleShowConfirmDelete}>\n <ConfirmDialog onConfirm={handleConfirmDelete} />\n </Dialog.Root>\n </Page.Main>\n </Layouts.Root>\n );\n};\n\nexport const ProtectedRolesListPage = () => {\n return (\n <Page.Protect permissions={PERMISSIONS.accessRoles}>\n <RolesListPage />\n </Page.Protect>\n );\n};\n","import * as React from 'react';\n\nimport { Page } from '@strapi/strapi/admin';\nimport { Route, Routes } from 'react-router-dom';\n\nimport { PERMISSIONS } from '../../constants';\n\nimport { ProtectedRolesCreatePage } from './pages/CreatePage';\nimport { ProtectedRolesEditPage } from './pages/EditPage';\nimport { ProtectedRolesListPage } from './pages/ListPage';\n\nconst Roles = () => {\n return (\n <Page.Protect permissions={PERMISSIONS.accessRoles}>\n <Routes>\n <Route index element={<ProtectedRolesListPage />} />\n <Route path=\"new\" element={<ProtectedRolesCreatePage />} />\n <Route path=\":id\" element={<ProtectedRolesEditPage />} />\n </Routes>\n </Page.Protect>\n );\n};\n\nexport default Roles;\n"],"names":["UsersPermissions","createContext","UsersPermissionsProvider","children","value","_jsx","Provider","useUsersPermissions","useContext","propTypes","PropTypes","node","isRequired","object","formatPluginName","pluginSlug","upperFirst","replace","init","initialState","permissions","collapses","Object","keys","sort","map","name","isOpen","activeCheckboxWrapperStyles","css","props","theme","colors","primary100","CheckboxWrapper","styled","Box","primary600","isActive","Border","div","neutral150","SubCategory","subCategory","formatMessage","useIntl","onChange","onChangeSelectAll","onSelectedAction","selectedAction","modifiedData","currentScopedModifiedData","useMemo","get","hasAllActionsSelected","values","every","action","enabled","hasSomeActionsSelected","some","handleChangeSelectAll","useCallback","target","isActionSelected","actionName","_jsxs","Flex","justifyContent","alignItems","paddingRight","Typography","variant","textColor","label","paddingLeft","Checkbox","checked","onCheckedChange","id","defaultMessage","paddingTop","paddingBottom","Grid","Root","gap","style","flex","actions","Item","col","direction","padding","hasRadius","button","type","onClick","display","VisuallyHidden","tag","route","Cog","cursor","PermissionRow","subCategories","sortBy","controllers","reduce","acc","curr","index","currentName","current","string","reducer","state","produce","draftState","collapse","Permissions","useReducer","Accordion","size","Header","undefined","Trigger","caretPosition","description","Content","getMethodColor","verb","text","border","background","MethodBox","spaces","BoundRoute","method","handler","title","path","formattedRoute","tail","split","controller","span","borderColor","fontWeight","includes","defaultProps","shape","Policies","routes","without","controllerRoutes","pathResolved","slice","join","displayedRoutes","isEmpty","filter","o","endsWith","minHeight","key","initialData","policies","keysLength","length","isChangingCheckbox","take","set","pathToValue","oldValues","updatedValues","actionToSelect","forwardRef","ref","dispatch","useImperativeHandle","getPermissions","resetForm","setFormAfterSubmit","handleChange","handleSelectedAction","providerValue","shadow","getTrad","memo","createRoleSchema","yup","required","translatedErrors","cleanPermissions","currentPermission","cleanedControllers","acc2","usePlugins","toggleNotification","useNotification","useFetchClient","formatAPIError","useAPIErrorHandler","data","isLoading","isLoadingPermissions","error","permissionsError","refetch","refetchPermissions","isLoadingRoutes","routesError","refetchRoutes","useQueries","queryKey","queryFn","refetchQueries","Promise","all","useEffect","message","getData","CreatePage","navigate","useNavigate","isLoadingPlugins","trackUsage","useTracking","permissionsRef","React","useRef","post","mutation","useMutation","body","onError","onSuccess","handleCreateRoleSubmit","mutate","users","Main","Page","Title","Formik","enableReinitialize","initialValues","onSubmit","validationSchema","handleSubmit","errors","Form","noValidate","Layouts","primaryAction","Button","loading","startIcon","Check","subtitle","Field","Label","TextInput","Error","Textarea","ProtectedRolesCreatePage","Protect","PERMISSIONS","createRole","EditPage","params","useMatch","role","isLoadingRole","refetchRole","useQuery","put","handleEditRoleSubmit","Loading","disabled","code","navigationAction","BackButton","fallback","ProtectedRolesEditPage","updateRole","EditLink","Link","neutral500","neutral800","TableBody","sortedRoles","canDelete","canUpdate","setRoleToDelete","onDelete","showConfirmDelete","setShowConfirmDelete","checkCanDeleteRole","handleClickDelete","Tbody","Tr","toString","Td","width","number","nb_users","e","stopPropagation","NavLink","to","aria-label","Pencil","IconButton","Trash","array","func","bool","RolesListPage","locale","notifyStatus","useNotifyAT","query","useQueryParams","_q","useState","roleToDelete","del","isLoadingForPermissions","allowedActions","canRead","canCreate","useRBAC","create","read","readRoles","update","delete","deleteRole","isLoadingForData","roles","isFetching","fetchData","contains","useFilter","sensitivity","formatter","useCollator","handleShowConfirmDelete","deleteData","err","emptyLayout","search","pageTitle","deleteMutation","handleConfirmDelete","mutateAsync","a","b","compare","emptyContent","colCount","rowCount","LinkButton","Plus","Action","startActions","SearchInput","NoPermissions","Table","Thead","Th","EmptyStateLayout","content","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","ProtectedRolesListPage","accessRoles","Roles","Routes","Route","element"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-DvubCYNe.js","sources":["../../../admin/src/contexts/UsersPermissionsContext/index.jsx","../../../admin/src/utils/formatPluginName.js","../../../admin/src/components/Permissions/init.js","../../../admin/src/components/Permissions/PermissionRow/CheckboxWrapper.jsx","../../../admin/src/components/Permissions/PermissionRow/SubCategory.jsx","../../../admin/src/components/Permissions/PermissionRow/index.jsx","../../../admin/src/components/Permissions/reducer.js","../../../admin/src/components/Permissions/index.jsx","../../../admin/src/components/BoundRoute/getMethodColor.js","../../../admin/src/components/BoundRoute/index.jsx","../../../admin/src/components/Policies/index.jsx","../../../admin/src/components/UsersPermissions/init.js","../../../admin/src/components/UsersPermissions/reducer.js","../../../admin/src/components/UsersPermissions/index.jsx","../../../admin/src/pages/Roles/constants.js","../../../admin/src/utils/cleanPermissions.js","../../../admin/src/pages/Roles/hooks/usePlugins.js","../../../admin/src/pages/Roles/pages/CreatePage.jsx","../../../admin/src/pages/Roles/pages/EditPage.jsx","../../../admin/src/pages/Roles/pages/ListPage/components/TableBody.jsx","../../../admin/src/pages/Roles/pages/ListPage/index.jsx","../../../admin/src/pages/Roles/index.jsx"],"sourcesContent":["import React, { createContext, useContext } from 'react';\n\nimport PropTypes from 'prop-types';\n\nconst UsersPermissions = createContext({});\n\nconst UsersPermissionsProvider = ({ children, value }) => {\n return <UsersPermissions.Provider value={value}>{children}</UsersPermissions.Provider>;\n};\n\nconst useUsersPermissions = () => useContext(UsersPermissions);\n\nUsersPermissionsProvider.propTypes = {\n children: PropTypes.node.isRequired,\n value: PropTypes.object.isRequired,\n};\n\nexport { UsersPermissions, UsersPermissionsProvider, useUsersPermissions };\n","import upperFirst from 'lodash/upperFirst';\n\nfunction formatPluginName(pluginSlug) {\n switch (pluginSlug) {\n case 'application':\n return 'Application';\n case 'plugin::content-manager':\n return 'Content manager';\n case 'plugin::content-type-builder':\n return 'Content types builder';\n case 'plugin::documentation':\n return 'Documentation';\n case 'plugin::email':\n return 'Email';\n case 'plugin::i18n':\n return 'i18n';\n case 'plugin::upload':\n return 'Upload';\n case 'plugin::users-permissions':\n return 'Users-permissions';\n default:\n return upperFirst(pluginSlug.replace('api::', '').replace('plugin::', ''));\n }\n}\n\nexport default formatPluginName;\n","const init = (initialState, permissions) => {\n const collapses = Object.keys(permissions)\n .sort()\n .map((name) => ({ name, isOpen: false }));\n\n return { ...initialState, collapses };\n};\n\nexport default init;\n","import { Box } from '@strapi/design-system';\nimport { styled, css } from 'styled-components';\n\nconst activeCheckboxWrapperStyles = css`\n background: ${(props) => props.theme.colors.primary100};\n\n #cog {\n opacity: 1;\n }\n`;\n\nconst CheckboxWrapper = styled(Box)`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n #cog {\n opacity: 0;\n path {\n fill: ${(props) => props.theme.colors.primary600};\n }\n }\n\n /* Show active style both on hover and when the action is selected */\n ${(props) => props.isActive && activeCheckboxWrapperStyles}\n &:hover {\n ${activeCheckboxWrapperStyles}\n }\n`;\n\nexport default CheckboxWrapper;\n","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 col={6} key={action.name} direction=\"column\" alignItems=\"stretch\">\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","import React, { useMemo } from 'react';\n\nimport { Box } from '@strapi/design-system';\nimport sortBy from 'lodash/sortBy';\nimport PropTypes from 'prop-types';\n\nimport SubCategory from './SubCategory';\n\nconst PermissionRow = ({ name, permissions }) => {\n const subCategories = useMemo(() => {\n return sortBy(\n Object.values(permissions.controllers).reduce((acc, curr, index) => {\n const currentName = `${name}.controllers.${Object.keys(permissions.controllers)[index]}`;\n const actions = sortBy(\n Object.keys(curr).reduce((acc, current) => {\n return [\n ...acc,\n {\n ...curr[current],\n label: current,\n name: `${currentName}.${current}`,\n },\n ];\n }, []),\n 'label'\n );\n\n return [\n ...acc,\n {\n actions,\n label: Object.keys(permissions.controllers)[index],\n name: currentName,\n },\n ];\n }, []),\n 'label'\n );\n }, [name, permissions]);\n\n return (\n <Box padding={6}>\n {subCategories.map((subCategory) => (\n <SubCategory key={subCategory.name} subCategory={subCategory} />\n ))}\n </Box>\n );\n};\n\nPermissionRow.propTypes = {\n name: PropTypes.string.isRequired,\n permissions: PropTypes.object.isRequired,\n};\n\nexport default PermissionRow;\n","import { produce } from 'immer';\n\nconst initialState = {\n collapses: [],\n};\n\nconst reducer = (state, action) =>\n // eslint-disable-next-line consistent-return\n produce(state, (draftState) => {\n switch (action.type) {\n case 'TOGGLE_COLLAPSE': {\n draftState.collapses = state.collapses.map((collapse, index) => {\n if (index === action.index) {\n return { ...collapse, isOpen: !collapse.isOpen };\n }\n\n return { ...collapse, isOpen: false };\n });\n\n break;\n }\n default:\n return draftState;\n }\n });\n\nexport { initialState, reducer };\n","import React, { useReducer } from 'react';\n\nimport { Accordion, Flex } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useUsersPermissions } from '../../contexts/UsersPermissionsContext';\nimport formatPluginName from '../../utils/formatPluginName';\n\nimport init from './init';\nimport PermissionRow from './PermissionRow';\nimport { initialState, reducer } from './reducer';\n\nconst Permissions = () => {\n const { modifiedData } = useUsersPermissions();\n const { formatMessage } = useIntl();\n const [{ collapses }] = useReducer(reducer, initialState, (state) => init(state, modifiedData));\n\n return (\n <Accordion.Root size=\"M\">\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n {collapses.map((collapse, index) => (\n <Accordion.Item key={collapse.name} value={collapse.name}>\n <Accordion.Header variant={index % 2 === 0 ? 'secondary' : undefined}>\n <Accordion.Trigger\n caretPosition=\"right\"\n description={formatMessage(\n {\n id: 'users-permissions.Plugin.permissions.plugins.description',\n defaultMessage: 'Define all allowed actions for the {name} plugin.',\n },\n { name: collapse.name }\n )}\n >\n {formatPluginName(collapse.name)}\n </Accordion.Trigger>\n </Accordion.Header>\n <Accordion.Content>\n <PermissionRow permissions={modifiedData[collapse.name]} name={collapse.name} />\n </Accordion.Content>\n </Accordion.Item>\n ))}\n </Flex>\n </Accordion.Root>\n );\n};\n\nexport default Permissions;\n","const getMethodColor = (verb) => {\n switch (verb) {\n case 'POST': {\n return {\n text: 'success600',\n border: 'success200',\n background: 'success100',\n };\n }\n case 'GET': {\n return {\n text: 'secondary600',\n border: 'secondary200',\n background: 'secondary100',\n };\n }\n case 'PUT': {\n return {\n text: 'warning600',\n border: 'warning200',\n background: 'warning100',\n };\n }\n case 'DELETE': {\n return {\n text: 'danger600',\n border: 'danger200',\n background: 'danger100',\n };\n }\n default: {\n return {\n text: 'neutral600',\n border: 'neutral200',\n background: 'neutral100',\n };\n }\n }\n};\n\nexport default getMethodColor;\n","import * as React from 'react';\n\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport map from 'lodash/map';\nimport tail from 'lodash/tail';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport getMethodColor from './getMethodColor';\n\nconst MethodBox = styled(Box)`\n margin: -1px;\n border-radius: ${({ theme }) => theme.spaces[1]} 0 0 ${({ theme }) => theme.spaces[1]};\n`;\n\nfunction BoundRoute({ route }) {\n const { formatMessage } = useIntl();\n\n const { method, handler: title, path } = route;\n const formattedRoute = path ? tail(path.split('/')) : [];\n const [controller = '', action = ''] = title ? title.split('.') : [];\n const colors = getMethodColor(route.method);\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'users-permissions.BoundRoute.title',\n defaultMessage: 'Bound route to',\n })}\n \n <span>{controller}</span>\n <Typography variant=\"delta\" textColor=\"primary600\">\n .{action}\n </Typography>\n </Typography>\n <Flex hasRadius background=\"neutral0\" borderColor=\"neutral200\" gap={0}>\n <MethodBox background={colors.background} borderColor={colors.border} padding={2}>\n <Typography fontWeight=\"bold\" textColor={colors.text}>\n {method}\n </Typography>\n </MethodBox>\n <Box paddingLeft={2} paddingRight={2}>\n {map(formattedRoute, (value) => (\n <Typography key={value} textColor={value.includes(':') ? 'neutral600' : 'neutral900'}>\n /{value}\n </Typography>\n ))}\n </Box>\n </Flex>\n </Flex>\n );\n}\n\nBoundRoute.defaultProps = {\n route: {\n handler: 'Nocontroller.error',\n method: 'GET',\n path: '/there-is-no-path',\n },\n};\n\nBoundRoute.propTypes = {\n route: PropTypes.shape({\n handler: PropTypes.string,\n method: PropTypes.string,\n path: PropTypes.string,\n }),\n};\n\nexport default BoundRoute;\n","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","const init = (state, permissions, routes) => {\n return {\n ...state,\n initialData: permissions,\n modifiedData: permissions,\n routes,\n };\n};\n\nexport default init;\n","/* eslint-disable consistent-return */\nimport { produce } from 'immer';\nimport get from 'lodash/get';\nimport set from 'lodash/set';\nimport take from 'lodash/take';\n\nexport const initialState = {\n initialData: {},\n modifiedData: {},\n routes: {},\n selectedAction: '',\n policies: [],\n};\n\nconst reducer = (state, action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'ON_CHANGE': {\n const keysLength = action.keys.length;\n const isChangingCheckbox = action.keys[keysLength - 1] === 'enabled';\n\n if (action.value && isChangingCheckbox) {\n const selectedAction = take(action.keys, keysLength - 1).join('.');\n draftState.selectedAction = selectedAction;\n }\n\n set(draftState, ['modifiedData', ...action.keys], action.value);\n break;\n }\n case 'ON_CHANGE_SELECT_ALL': {\n const pathToValue = ['modifiedData', ...action.keys];\n const oldValues = get(state, pathToValue, {});\n const updatedValues = Object.keys(oldValues).reduce((acc, current) => {\n acc[current] = { ...oldValues[current], enabled: action.value };\n\n return acc;\n }, {});\n\n set(draftState, pathToValue, updatedValues);\n\n break;\n }\n case 'ON_RESET': {\n draftState.modifiedData = state.initialData;\n break;\n }\n case 'ON_SUBMIT_SUCCEEDED': {\n draftState.initialData = state.modifiedData;\n break;\n }\n\n case 'SELECT_ACTION': {\n const { actionToSelect } = action;\n draftState.selectedAction = actionToSelect === state.selectedAction ? '' : actionToSelect;\n break;\n }\n default:\n return draftState;\n }\n });\n\nexport default reducer;\n","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","import { translatedErrors } from '@strapi/strapi/admin';\nimport * as yup from 'yup';\n\nexport const createRoleSchema = yup.object().shape({\n name: yup.string().required(translatedErrors.required.id),\n description: yup.string().required(translatedErrors.required.id),\n});\n","import isEmpty from 'lodash/isEmpty';\n\nconst cleanPermissions = (permissions) =>\n Object.keys(permissions).reduce((acc, current) => {\n const currentPermission = permissions[current].controllers;\n const cleanedControllers = Object.keys(currentPermission).reduce((acc2, curr) => {\n if (isEmpty(currentPermission[curr])) {\n return acc2;\n }\n\n acc2[curr] = currentPermission[curr];\n\n return acc2;\n }, {});\n\n if (isEmpty(cleanedControllers)) {\n return acc;\n }\n\n acc[current] = { controllers: cleanedControllers };\n\n return acc;\n }, {});\n\nexport default cleanPermissions;\n","import { useEffect } from 'react';\n\nimport { useAPIErrorHandler, useNotification, useFetchClient } from '@strapi/strapi/admin';\nimport { useQueries } from 'react-query';\n\nimport { cleanPermissions, getTrad } from '../../../utils';\n\nexport const usePlugins = () => {\n const { toggleNotification } = useNotification();\n const { get } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler(getTrad);\n\n const [\n {\n data: permissions,\n isLoading: isLoadingPermissions,\n error: permissionsError,\n refetch: refetchPermissions,\n },\n { data: routes, isLoading: isLoadingRoutes, error: routesError, refetch: refetchRoutes },\n ] = useQueries([\n {\n queryKey: ['users-permissions', 'permissions'],\n async queryFn() {\n const {\n data: { permissions },\n } = await get(`/users-permissions/permissions`);\n\n return permissions;\n },\n },\n {\n queryKey: ['users-permissions', 'routes'],\n async queryFn() {\n const {\n data: { routes },\n } = await get(`/users-permissions/routes`);\n\n return routes;\n },\n },\n ]);\n\n const refetchQueries = async () => {\n await Promise.all([refetchPermissions(), refetchRoutes()]);\n };\n\n useEffect(() => {\n if (permissionsError) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(permissionsError),\n });\n }\n }, [toggleNotification, permissionsError, formatAPIError]);\n\n useEffect(() => {\n if (routesError) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(routesError),\n });\n }\n }, [toggleNotification, routesError, formatAPIError]);\n\n const isLoading = isLoadingPermissions || isLoadingRoutes;\n\n return {\n // TODO: these return values need to be memoized, otherwise\n // they will create infinite rendering loops when used as\n // effect dependencies\n permissions: permissions ? cleanPermissions(permissions) : {},\n routes: routes ?? {},\n\n getData: refetchQueries,\n isLoading,\n };\n};\n","import * as React from 'react';\n\nimport {\n Button,\n Flex,\n Grid,\n Main,\n Textarea,\n TextInput,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { Page, useTracking, useNotification, useFetchClient, Layouts } from '@strapi/strapi/admin';\nimport { Formik, Form } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\nimport { useNavigate } from 'react-router-dom';\n\nimport UsersPermissions from '../../../components/UsersPermissions';\nimport { PERMISSIONS } from '../../../constants';\nimport getTrad from '../../../utils/getTrad';\nimport { createRoleSchema } from '../constants';\nimport { usePlugins } from '../hooks/usePlugins';\n\nexport const CreatePage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n const { isLoading: isLoadingPlugins, permissions, routes } = usePlugins();\n const { trackUsage } = useTracking();\n const permissionsRef = React.useRef();\n const { post } = useFetchClient();\n const mutation = useMutation((body) => post(`/users-permissions/roles`, body), {\n onError() {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n },\n\n onSuccess() {\n trackUsage('didCreateRole');\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('Settings.roles.created'),\n defaultMessage: 'Role created',\n }),\n });\n\n // Forcing redirecting since we don't have the id in the response\n navigate(-1);\n },\n });\n\n const handleCreateRoleSubmit = async (data) => {\n // TODO: refactor. Child -> parent component communication is evil;\n // We should either move the provider one level up or move the state\n // straight into redux.\n const permissions = permissionsRef.current.getPermissions();\n\n await mutation.mutate({ ...data, ...permissions, users: [] });\n };\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'Roles' }\n )}\n </Page.Title>\n <Formik\n enableReinitialize\n initialValues={{ name: '', description: '' }}\n onSubmit={handleCreateRoleSubmit}\n validationSchema={createRoleSchema}\n >\n {({ handleSubmit, values, handleChange, errors }) => (\n <Form noValidate onSubmit={handleSubmit}>\n <Layouts.Header\n primaryAction={\n !isLoadingPlugins && (\n <Button type=\"submit\" loading={mutation.isLoading} startIcon={<Check />}>\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n )\n }\n title={formatMessage({\n id: 'Settings.roles.create.title',\n defaultMessage: 'Create a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n />\n <Layouts.Content>\n <Flex\n background=\"neutral0\"\n direction=\"column\"\n alignItems=\"stretch\"\n gap={7}\n hasRadius\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n shadow=\"filterShadow\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\">\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('EditPage.form.roles'),\n defaultMessage: 'Role details',\n })}\n </Typography>\n\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={\n errors?.name\n ? formatMessage({ id: errors.name, defaultMessage: 'Name is required' })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput value={values.name || ''} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={\n errors?.description\n ? formatMessage({\n id: errors.description,\n defaultMessage: 'Description is required',\n })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea value={values.description || ''} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n\n {!isLoadingPlugins && (\n <UsersPermissions\n ref={permissionsRef}\n permissions={permissions}\n routes={routes}\n />\n )}\n </Flex>\n </Layouts.Content>\n </Form>\n )}\n </Formik>\n </Main>\n );\n};\n\nexport const ProtectedRolesCreatePage = () => (\n <Page.Protect permissions={PERMISSIONS.createRole}>\n <CreatePage />\n </Page.Protect>\n);\n","import * as React from 'react';\n\nimport {\n Main,\n Button,\n Flex,\n TextInput,\n Textarea,\n Typography,\n Grid,\n Field,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport {\n Page,\n BackButton,\n useAPIErrorHandler,\n useNotification,\n useFetchClient,\n Layouts,\n} from '@strapi/strapi/admin';\nimport { Formik, Form } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useQuery, useMutation } from 'react-query';\nimport { useMatch } from 'react-router-dom';\n\nimport UsersPermissions from '../../../components/UsersPermissions';\nimport { PERMISSIONS } from '../../../constants';\nimport getTrad from '../../../utils/getTrad';\nimport { createRoleSchema } from '../constants';\nimport { usePlugins } from '../hooks/usePlugins';\n\nexport const EditPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const {\n params: { id },\n } = useMatch(`/settings/users-permissions/roles/:id`);\n const { get } = useFetchClient();\n const { isLoading: isLoadingPlugins, routes } = usePlugins();\n const {\n data: role,\n isLoading: isLoadingRole,\n refetch: refetchRole,\n } = useQuery(['users-permissions', 'role', id], async () => {\n // TODO: why doesn't this endpoint follow the admin API conventions?\n const {\n data: { role },\n } = await get(`/users-permissions/roles/${id}`);\n\n return role;\n });\n\n const permissionsRef = React.useRef();\n const { put } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n const mutation = useMutation((body) => put(`/users-permissions/roles/${id}`, body), {\n onError(error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n },\n\n async onSuccess() {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('Settings.roles.created'),\n defaultMessage: 'Role edited',\n }),\n });\n\n await refetchRole();\n },\n });\n\n const handleEditRoleSubmit = async (data) => {\n const permissions = permissionsRef.current.getPermissions();\n\n await mutation.mutate({ ...data, ...permissions, users: [] });\n };\n\n if (isLoadingRole) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'Roles' }\n )}\n </Page.Title>\n <Formik\n enableReinitialize\n initialValues={{ name: role.name, description: role.description }}\n onSubmit={handleEditRoleSubmit}\n validationSchema={createRoleSchema}\n >\n {({ handleSubmit, values, handleChange, errors }) => (\n <Form noValidate onSubmit={handleSubmit}>\n <Layouts.Header\n primaryAction={\n !isLoadingPlugins ? (\n <Button\n disabled={role.code === 'strapi-super-admin'}\n type=\"submit\"\n loading={mutation.isLoading}\n startIcon={<Check />}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n ) : null\n }\n title={role.name}\n subtitle={role.description}\n navigationAction={<BackButton fallback=\"..\" />}\n />\n <Layouts.Content>\n <Flex\n background=\"neutral0\"\n direction=\"column\"\n alignItems=\"stretch\"\n gap={7}\n hasRadius\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n shadow=\"filterShadow\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('EditPage.form.roles'),\n defaultMessage: 'Role details',\n })}\n </Typography>\n\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={\n errors?.name\n ? formatMessage({\n id: errors.name,\n defaultMessage: 'Name is required',\n })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput value={values.name || ''} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={\n errors?.description\n ? formatMessage({\n id: errors.description,\n defaultMessage: 'Description is required',\n })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea value={values.description || ''} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n\n {!isLoadingPlugins && (\n <UsersPermissions\n ref={permissionsRef}\n permissions={role.permissions}\n routes={routes}\n />\n )}\n </Flex>\n </Layouts.Content>\n </Form>\n )}\n </Formik>\n </Main>\n );\n};\n\nexport const ProtectedRolesEditPage = () => (\n <Page.Protect permissions={PERMISSIONS.updateRole}>\n <EditPage />\n </Page.Protect>\n);\n","import * as React from 'react';\n\nimport { Flex, IconButton, Link, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, NavLink } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nconst EditLink = styled(Link)`\n align-items: center;\n height: 3.2rem;\n width: 3.2rem;\n display: flex;\n justify-content: center;\n padding: ${({ theme }) => `${theme.spaces[2]}`};\n\n svg {\n height: 1.6rem;\n width: 1.6rem;\n\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n\n &:hover,\n &:focus {\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral800};\n }\n }\n }\n`;\n\nconst TableBody = ({ sortedRoles, canDelete, canUpdate, setRoleToDelete, onDelete }) => {\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const [showConfirmDelete, setShowConfirmDelete] = onDelete;\n\n const checkCanDeleteRole = (role) =>\n canDelete && !['public', 'authenticated'].includes(role.type);\n\n const handleClickDelete = (id) => {\n setRoleToDelete(id);\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n return (\n <Tbody>\n {sortedRoles?.map((role) => (\n <Tr cursor=\"pointer\" key={role.name} onClick={() => navigate(role.id.toString())}>\n <Td width=\"20%\">\n <Typography>{role.name}</Typography>\n </Td>\n <Td width=\"50%\">\n <Typography>{role.description}</Typography>\n </Td>\n <Td width=\"30%\">\n <Typography>\n {formatMessage(\n {\n id: 'Roles.RoleRow.user-count',\n defaultMessage: '{number, plural, =0 {# user} one {# user} other {# users}}',\n },\n { number: role.nb_users }\n )}\n </Typography>\n </Td>\n <Td>\n <Flex justifyContent=\"end\" onClick={(e) => e.stopPropagation()}>\n {canUpdate ? (\n <EditLink\n tag={NavLink}\n to={role.id.toString()}\n aria-label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: `${role.name}` }\n )}\n >\n <Pencil />\n </EditLink>\n ) : null}\n\n {checkCanDeleteRole(role) && (\n <IconButton\n onClick={() => handleClickDelete(role.id.toString())}\n variant=\"ghost\"\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: `${role.name}` }\n )}\n >\n <Trash />\n </IconButton>\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n );\n};\n\nexport default TableBody;\n\nTableBody.defaultProps = {\n canDelete: false,\n canUpdate: false,\n};\n\nTableBody.propTypes = {\n onDelete: PropTypes.array.isRequired,\n setRoleToDelete: PropTypes.func.isRequired,\n sortedRoles: PropTypes.array.isRequired,\n canDelete: PropTypes.bool,\n canUpdate: PropTypes.bool,\n};\n","import React, { useState } from 'react';\n\nimport {\n Table,\n Th,\n Thead,\n Tr,\n Typography,\n useNotifyAT,\n VisuallyHidden,\n EmptyStateLayout,\n useCollator,\n useFilter,\n LinkButton,\n Dialog,\n} from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport {\n ConfirmDialog,\n useTracking,\n Page,\n SearchInput,\n useNotification,\n useQueryParams,\n useFetchClient,\n useRBAC,\n Layouts,\n} from '@strapi/strapi/admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery } from 'react-query';\nimport { NavLink } from 'react-router-dom';\n\nimport { PERMISSIONS } from '../../../../constants';\nimport { getTrad } from '../../../../utils';\n\nimport TableBody from './components/TableBody';\n\nexport const RolesListPage = () => {\n const { trackUsage } = useTracking();\n const { formatMessage, locale } = useIntl();\n const { toggleNotification } = useNotification();\n const { notifyStatus } = useNotifyAT();\n const [{ query }] = useQueryParams();\n const _q = query?._q || '';\n const [showConfirmDelete, setShowConfirmDelete] = useState(false);\n const [roleToDelete, setRoleToDelete] = useState();\n const { del, get } = useFetchClient();\n\n const {\n isLoading: isLoadingForPermissions,\n allowedActions: { canRead, canDelete, canCreate, canUpdate },\n } = useRBAC({\n create: PERMISSIONS.createRole,\n read: PERMISSIONS.readRoles,\n update: PERMISSIONS.updateRole,\n delete: PERMISSIONS.deleteRole,\n });\n\n const {\n isLoading: isLoadingForData,\n data: { roles },\n isFetching,\n refetch,\n } = useQuery('get-roles', () => fetchData(toggleNotification, formatMessage, notifyStatus), {\n initialData: {},\n enabled: canRead,\n });\n\n const { contains } = useFilter(locale, {\n sensitivity: 'base',\n });\n\n /**\n * @type {Intl.Collator}\n */\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const isLoading = isLoadingForData || isFetching || isLoadingForPermissions;\n\n const handleShowConfirmDelete = () => {\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const deleteData = async (id, formatMessage, toggleNotification) => {\n try {\n await del(`/users-permissions/roles/${id}`);\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n };\n\n const fetchData = async (toggleNotification, formatMessage, notifyStatus) => {\n try {\n const { data } = await get('/users-permissions/roles');\n notifyStatus('The roles have loaded successfully');\n\n return data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n\n throw new Error(err);\n }\n };\n\n const emptyLayout = {\n roles: {\n id: getTrad('Roles.empty'),\n defaultMessage: \"You don't have any roles yet.\",\n },\n search: {\n id: getTrad('Roles.empty.search'),\n defaultMessage: 'No roles match the search.',\n },\n };\n\n const pageTitle = formatMessage({\n id: 'global.roles',\n defaultMessage: 'Roles',\n });\n\n const deleteMutation = useMutation((id) => deleteData(id, formatMessage, toggleNotification), {\n async onSuccess() {\n await refetch();\n },\n });\n\n const handleConfirmDelete = async () => {\n await deleteMutation.mutateAsync(roleToDelete);\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const sortedRoles = (roles || [])\n .filter((role) => contains(role.name, _q) || contains(role.description, _q))\n .sort(\n (a, b) => formatter.compare(a.name, b.name) || formatter.compare(a.description, b.description)\n );\n\n const emptyContent = _q && !sortedRoles.length ? 'search' : 'roles';\n\n const colCount = 4;\n const rowCount = (roles?.length || 0) + 1;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Layouts.Root>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: pageTitle }\n )}\n </Page.Title>\n <Page.Main>\n <Layouts.Header\n title={formatMessage({\n id: 'global.roles',\n defaultMessage: 'Roles',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.list.description',\n defaultMessage: 'List of roles',\n })}\n primaryAction={\n canCreate ? (\n <LinkButton\n to=\"new\"\n tag={NavLink}\n onClick={() => trackUsage('willCreateRole')}\n startIcon={<Plus />}\n size=\"S\"\n >\n {formatMessage({\n id: getTrad('List.button.roles'),\n defaultMessage: 'Add new role',\n })}\n </LinkButton>\n ) : null\n }\n />\n\n <Layouts.Action\n startActions={\n <SearchInput\n label={formatMessage({\n id: 'app.component.search.label',\n defaultMessage: 'Search',\n })}\n />\n }\n />\n\n <Layouts.Content>\n {!canRead && <Page.NoPermissions />}\n {canRead && sortedRoles && sortedRoles?.length ? (\n <Table colCount={colCount} rowCount={rowCount}>\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({ id: 'global.name', defaultMessage: 'Name' })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'global.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <TableBody\n sortedRoles={sortedRoles}\n canDelete={canDelete}\n canUpdate={canUpdate}\n permissions={PERMISSIONS}\n setRoleToDelete={setRoleToDelete}\n onDelete={[showConfirmDelete, setShowConfirmDelete]}\n />\n </Table>\n ) : (\n <EmptyStateLayout content={formatMessage(emptyLayout[emptyContent])} />\n )}\n </Layouts.Content>\n <Dialog.Root open={showConfirmDelete} onOpenChange={handleShowConfirmDelete}>\n <ConfirmDialog onConfirm={handleConfirmDelete} />\n </Dialog.Root>\n </Page.Main>\n </Layouts.Root>\n );\n};\n\nexport const ProtectedRolesListPage = () => {\n return (\n <Page.Protect permissions={PERMISSIONS.accessRoles}>\n <RolesListPage />\n </Page.Protect>\n );\n};\n","import * as React from 'react';\n\nimport { Page } from '@strapi/strapi/admin';\nimport { Route, Routes } from 'react-router-dom';\n\nimport { PERMISSIONS } from '../../constants';\n\nimport { ProtectedRolesCreatePage } from './pages/CreatePage';\nimport { ProtectedRolesEditPage } from './pages/EditPage';\nimport { ProtectedRolesListPage } from './pages/ListPage';\n\nconst Roles = () => {\n return (\n <Page.Protect permissions={PERMISSIONS.accessRoles}>\n <Routes>\n <Route index element={<ProtectedRolesListPage />} />\n <Route path=\"new\" element={<ProtectedRolesCreatePage />} />\n <Route path=\":id\" element={<ProtectedRolesEditPage />} />\n </Routes>\n </Page.Protect>\n );\n};\n\nexport default Roles;\n"],"names":["UsersPermissions","createContext","UsersPermissionsProvider","children","value","_jsx","Provider","useUsersPermissions","useContext","propTypes","PropTypes","node","isRequired","object","formatPluginName","pluginSlug","upperFirst","replace","init","initialState","permissions","collapses","Object","keys","sort","map","name","isOpen","activeCheckboxWrapperStyles","css","props","theme","colors","primary100","CheckboxWrapper","styled","Box","primary600","isActive","Border","div","neutral150","SubCategory","subCategory","formatMessage","useIntl","onChange","onChangeSelectAll","onSelectedAction","selectedAction","modifiedData","currentScopedModifiedData","useMemo","get","hasAllActionsSelected","values","every","action","enabled","hasSomeActionsSelected","some","handleChangeSelectAll","useCallback","target","isActionSelected","actionName","_jsxs","Flex","justifyContent","alignItems","paddingRight","Typography","variant","textColor","label","paddingLeft","Checkbox","checked","onCheckedChange","id","defaultMessage","paddingTop","paddingBottom","Grid","Root","gap","style","flex","actions","Item","col","direction","padding","hasRadius","button","type","onClick","display","VisuallyHidden","tag","route","Cog","cursor","PermissionRow","subCategories","sortBy","controllers","reduce","acc","curr","index","currentName","current","string","reducer","state","produce","draftState","collapse","Permissions","useReducer","Accordion","size","Header","undefined","Trigger","caretPosition","description","Content","getMethodColor","verb","text","border","background","MethodBox","spaces","BoundRoute","method","handler","title","path","formattedRoute","tail","split","controller","span","borderColor","fontWeight","includes","defaultProps","shape","Policies","routes","without","controllerRoutes","pathResolved","slice","join","displayedRoutes","isEmpty","filter","o","endsWith","minHeight","key","initialData","policies","keysLength","length","isChangingCheckbox","take","set","pathToValue","oldValues","updatedValues","actionToSelect","forwardRef","ref","dispatch","useImperativeHandle","getPermissions","resetForm","setFormAfterSubmit","handleChange","handleSelectedAction","providerValue","shadow","getTrad","memo","createRoleSchema","yup","required","translatedErrors","cleanPermissions","currentPermission","cleanedControllers","acc2","usePlugins","toggleNotification","useNotification","useFetchClient","formatAPIError","useAPIErrorHandler","data","isLoading","isLoadingPermissions","error","permissionsError","refetch","refetchPermissions","isLoadingRoutes","routesError","refetchRoutes","useQueries","queryKey","queryFn","refetchQueries","Promise","all","useEffect","message","getData","CreatePage","navigate","useNavigate","isLoadingPlugins","trackUsage","useTracking","permissionsRef","React","useRef","post","mutation","useMutation","body","onError","onSuccess","handleCreateRoleSubmit","mutate","users","Main","Page","Title","Formik","enableReinitialize","initialValues","onSubmit","validationSchema","handleSubmit","errors","Form","noValidate","Layouts","primaryAction","Button","loading","startIcon","Check","subtitle","Field","Label","TextInput","Error","Textarea","ProtectedRolesCreatePage","Protect","PERMISSIONS","createRole","EditPage","params","useMatch","role","isLoadingRole","refetchRole","useQuery","put","handleEditRoleSubmit","Loading","disabled","code","navigationAction","BackButton","fallback","ProtectedRolesEditPage","updateRole","EditLink","Link","neutral500","neutral800","TableBody","sortedRoles","canDelete","canUpdate","setRoleToDelete","onDelete","showConfirmDelete","setShowConfirmDelete","checkCanDeleteRole","handleClickDelete","Tbody","Tr","toString","Td","width","number","nb_users","e","stopPropagation","NavLink","to","aria-label","Pencil","IconButton","Trash","array","func","bool","RolesListPage","locale","notifyStatus","useNotifyAT","query","useQueryParams","_q","useState","roleToDelete","del","isLoadingForPermissions","allowedActions","canRead","canCreate","useRBAC","create","read","readRoles","update","delete","deleteRole","isLoadingForData","roles","isFetching","fetchData","contains","useFilter","sensitivity","formatter","useCollator","handleShowConfirmDelete","deleteData","err","emptyLayout","search","pageTitle","deleteMutation","handleConfirmDelete","mutateAsync","a","b","compare","emptyContent","colCount","rowCount","LinkButton","Plus","Action","startActions","SearchInput","NoPermissions","Table","Thead","Th","EmptyStateLayout","content","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","ProtectedRolesListPage","accessRoles","Roles","Routes","Route","element"],"mappings":"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"}
|
|
@@ -12,6 +12,16 @@ var uk = {
|
|
|
12
12
|
"EditForm.inputToggle.label.email-confirmation-redirection": "URL для перенаправлення",
|
|
13
13
|
"EditForm.inputToggle.label.email-reset-password": "Сторінка скидання пароля",
|
|
14
14
|
"EditForm.inputToggle.label.sign-up": "Увімкнути реєстрацію",
|
|
15
|
+
"EditForm.inputToggle.placeholder.email-confirmation-redirection": "наприклад: https://yourfrontend.com/email-confirmation-redirection",
|
|
16
|
+
"EditForm.inputToggle.placeholder.email-reset-password": "наприклад: https://yourfrontend.com/reset-password",
|
|
17
|
+
"EditPage.form.roles": "Деталі ролі",
|
|
18
|
+
"Email.template.data.loaded": "Шаблони електронної пошти завантажено",
|
|
19
|
+
"Email.template.email_confirmation": "Підтвердження електронної адреси",
|
|
20
|
+
"Email.template.form.edit.label": "Редагувати шаблон",
|
|
21
|
+
"Email.template.table.action.label": "дія",
|
|
22
|
+
"Email.template.table.icon.label": "іконка",
|
|
23
|
+
"Email.template.table.name.label": "назва",
|
|
24
|
+
"Form.advancedSettings.data.loaded": "Дані розширених налаштувань завантажено",
|
|
15
25
|
"HeaderNav.link.advancedSettings": "Розширені налаштування",
|
|
16
26
|
"HeaderNav.link.emailTemplates": "Шаблони листів",
|
|
17
27
|
"HeaderNav.link.providers": "Провайдери",
|
|
@@ -21,12 +31,14 @@ var uk = {
|
|
|
21
31
|
"Policies.header.hint": "Виберіть дії вашого додатку або дії плаґіну та натисніть на значок шестірні, щоб відобразити пов'язаний маршрут",
|
|
22
32
|
"Policies.header.title": "Розширені налашрування",
|
|
23
33
|
"PopUpForm.Email.email_templates.inputDescription": "Якщо ви не впевнені, як використовувати змінні, {link}",
|
|
34
|
+
"PopUpForm.Email.link.documentation": "перегляньте документацію.",
|
|
24
35
|
"PopUpForm.Email.options.from.email.label": "Email відправника",
|
|
25
36
|
"PopUpForm.Email.options.from.email.placeholder": "kai@doe.com",
|
|
26
37
|
"PopUpForm.Email.options.from.name.label": "Ім'я відправника",
|
|
27
|
-
"PopUpForm.Email.options.from.name.placeholder": "
|
|
38
|
+
"PopUpForm.Email.options.from.name.placeholder": "Тарас Шевченко",
|
|
28
39
|
"PopUpForm.Email.options.message.label": "Повідомлення",
|
|
29
40
|
"PopUpForm.Email.options.object.label": "Тема",
|
|
41
|
+
"PopUpForm.Email.options.object.placeholder": "Будь ласка, підтвердьте свою електронну адресу для %APP_NAME%",
|
|
30
42
|
"PopUpForm.Email.options.response_email.label": "Email для відповіді",
|
|
31
43
|
"PopUpForm.Email.options.response_email.placeholder": "kai@doe.com",
|
|
32
44
|
"PopUpForm.Providers.enabled.description": "Якщо вимкнуто, користувачі не зможуть вікористати цей провайдер.",
|
|
@@ -34,15 +46,40 @@ var uk = {
|
|
|
34
46
|
"PopUpForm.Providers.key.label": "Client ID",
|
|
35
47
|
"PopUpForm.Providers.key.placeholder": "TEXT",
|
|
36
48
|
"PopUpForm.Providers.redirectURL.front-end.label": "URL переадресації для вашего front-end додатку",
|
|
49
|
+
"PopUpForm.Providers.redirectURL.label": "URL -адреса для переадресації, щоб додати у ваші конфігурації програми {постачальник}",
|
|
37
50
|
"PopUpForm.Providers.secret.label": "Client Secret",
|
|
38
51
|
"PopUpForm.Providers.secret.placeholder": "TEXT",
|
|
39
52
|
"PopUpForm.Providers.subdomain.label": "Host URI (Subdomain)",
|
|
40
53
|
"PopUpForm.Providers.subdomain.placeholder": "my.subdomain.com",
|
|
41
|
-
"PopUpForm.header.edit.email-templates": "Редагування
|
|
54
|
+
"PopUpForm.header.edit.email-templates": "Редагування шаблону листів",
|
|
55
|
+
"PopUpForm.header.edit.providers": "Редагувати провайдера",
|
|
56
|
+
"Providers.data.loaded": "Провайдери завантажено",
|
|
57
|
+
"Providers.status": "Статус",
|
|
58
|
+
"Roles.empty": "У вас ще немає ролей.",
|
|
59
|
+
"Roles.empty.search": "Не знайдено ролей, що відповідають пошуку.",
|
|
60
|
+
"Settings.roles.deleted": "Роль видалено",
|
|
61
|
+
"Settings.roles.edited": "Роль редаговано",
|
|
62
|
+
"Settings.section-label": "Плаґін користувачів та дозволів",
|
|
63
|
+
"components.Input.error.validation.email": "Це неправильна електронна адреса",
|
|
64
|
+
"components.Input.error.validation.json": "Це не відповідає формату JSON",
|
|
65
|
+
"components.Input.error.validation.max": "Значення занадто велике.",
|
|
66
|
+
"components.Input.error.validation.maxLength": "Значення занадто довге.",
|
|
67
|
+
"components.Input.error.validation.min": "Значення занадто низьке.",
|
|
68
|
+
"components.Input.error.validation.minLength": "Значення занадто коротке.",
|
|
69
|
+
"components.Input.error.validation.minSupMax": "Не може бути більшим",
|
|
70
|
+
"components.Input.error.validation.regex": "Значення не відповідає регулярному виразу.",
|
|
71
|
+
"components.Input.error.validation.required": "Це значення є обов’язковим.",
|
|
72
|
+
"components.Input.error.validation.unique": "Це значення вже використовується.",
|
|
42
73
|
"notification.success.submit": "Налаштування оновлено",
|
|
43
|
-
"
|
|
44
|
-
"plugin.description.
|
|
74
|
+
"page.title": "Налаштування - Ролі",
|
|
75
|
+
"plugin.description.long": "Захистіть API за допомогою процесу аутентифікації на основі JWT. Цей плаґін також включає можливості ACL, які дозволяють керувати дозволами між групами користувачів.",
|
|
76
|
+
"plugin.description.short": "Захистіть API за допомогою процесу аутентифікації на основі JWT",
|
|
77
|
+
"plugin.name": "Плаґін користувачів та дозволів",
|
|
78
|
+
"popUpWarning.button.cancel": "Скасувати",
|
|
79
|
+
"popUpWarning.button.confirm": "Підтвердити",
|
|
80
|
+
"popUpWarning.title": "Будь ласка, підтвердіть",
|
|
81
|
+
"popUpWarning.warning.cancel": "Ви впевнені, що хочете скасувати свої зміни?"
|
|
45
82
|
};
|
|
46
83
|
|
|
47
84
|
export { uk as default };
|
|
48
|
-
//# sourceMappingURL=uk-
|
|
85
|
+
//# sourceMappingURL=uk-DnrIlPwG.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uk-DnrIlPwG.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|