@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.
Files changed (30) hide show
  1. package/admin/src/translations/uk.json +41 -4
  2. package/dist/admin/chunks/{index-BPiDUOGt.js → index--_o6btSC.js} +2 -2
  3. package/dist/admin/chunks/{index-BPiDUOGt.js.map → index--_o6btSC.js.map} +1 -1
  4. package/dist/admin/chunks/{index-DVNIct2-.mjs → index-BBjNJt_G.mjs} +2 -2
  5. package/dist/admin/chunks/{index-DVNIct2-.mjs.map → index-BBjNJt_G.mjs.map} +1 -1
  6. package/dist/admin/chunks/{index-Cu2GvTiT.mjs → index-BgAfLcWs.mjs} +2 -2
  7. package/dist/admin/chunks/{index-Cu2GvTiT.mjs.map → index-BgAfLcWs.mjs.map} +1 -1
  8. package/dist/admin/chunks/{index-COXjHxFm.mjs → index-CHTUC0LM.mjs} +2 -2
  9. package/dist/admin/chunks/{index-COXjHxFm.mjs.map → index-CHTUC0LM.mjs.map} +1 -1
  10. package/dist/admin/chunks/{index-B-Z_z_qb.mjs → index-CY5JZ38k.mjs} +6 -6
  11. package/dist/admin/chunks/{index-B-Z_z_qb.mjs.map → index-CY5JZ38k.mjs.map} +1 -1
  12. package/dist/admin/chunks/{index-BtYUb_br.js → index-Cu1VuLS3.js} +2 -2
  13. package/dist/admin/chunks/{index-BtYUb_br.js.map → index-Cu1VuLS3.js.map} +1 -1
  14. package/dist/admin/chunks/{index-B2MJiSOD.mjs → index-Cy-tPfRk.mjs} +2 -2
  15. package/dist/admin/chunks/{index-B2MJiSOD.mjs.map → index-Cy-tPfRk.mjs.map} +1 -1
  16. package/dist/admin/chunks/{index-DAclA-0k.js → index-DD-Z6c1S.js} +6 -6
  17. package/dist/admin/chunks/{index-DAclA-0k.js.map → index-DD-Z6c1S.js.map} +1 -1
  18. package/dist/admin/chunks/{index-CkYplz_3.js → index-DFnYIqrB.js} +2 -2
  19. package/dist/admin/chunks/{index-CkYplz_3.js.map → index-DFnYIqrB.js.map} +1 -1
  20. package/dist/admin/chunks/{index-D01zzG9y.js → index-DvubCYNe.js} +2 -2
  21. package/dist/admin/chunks/{index-D01zzG9y.js.map → index-DvubCYNe.js.map} +1 -1
  22. package/dist/admin/chunks/{uk-D8JHuzch.mjs → uk-DnrIlPwG.mjs} +42 -5
  23. package/dist/admin/chunks/uk-DnrIlPwG.mjs.map +1 -0
  24. package/dist/admin/chunks/{uk-CggQOx1l.js → uk-r5zXTAS7.js} +42 -5
  25. package/dist/admin/chunks/uk-r5zXTAS7.js.map +1 -0
  26. package/dist/admin/index.js +1 -1
  27. package/dist/admin/index.mjs +1 -1
  28. package/package.json +6 -6
  29. package/dist/admin/chunks/uk-CggQOx1l.js.map +0 -1
  30. package/dist/admin/chunks/uk-D8JHuzch.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index-Cu2GvTiT.mjs","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 &nbsp;\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-BgAfLcWs.mjs","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 &nbsp;\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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"}
@@ -9,7 +9,7 @@ import { useIntl } from 'react-intl';
9
9
  import { useQueryClient, useQuery, useMutation } from 'react-query';
10
10
  import { Formik, Form } from 'formik';
11
11
  import PropTypes from 'prop-types';
12
- import { g as getTrad, P as PERMISSIONS } from './index-B-Z_z_qb.mjs';
12
+ import { g as getTrad, P as PERMISSIONS } from './index-CY5JZ38k.mjs';
13
13
  import 'lodash/isEmpty';
14
14
  import * as yup from 'yup';
15
15
 
@@ -715,4 +715,4 @@ const ProtectedProvidersPage = ()=>/*#__PURE__*/ jsx(Page.Protect, {
715
715
  });
716
716
 
717
717
  export { ProvidersPage, ProtectedProvidersPage as default };
718
- //# sourceMappingURL=index-COXjHxFm.mjs.map
718
+ //# sourceMappingURL=index-CHTUC0LM.mjs.map