diff --git a/packages/core/admin/admin/src/content-manager/pages/App/index.js b/packages/core/admin/admin/src/content-manager/pages/App/index.js index c22871f451..a3ae373014 100644 --- a/packages/core/admin/admin/src/content-manager/pages/App/index.js +++ b/packages/core/admin/admin/src/content-manager/pages/App/index.js @@ -12,6 +12,7 @@ import ModelsContext from '../../contexts/ModelsContext'; import CollectionTypeRecursivePath from '../CollectionTypeRecursivePath'; import ComponentSettingsView from '../ComponentSetttingsView'; import NoContentType from '../NoContentType'; +import NoPermissions from '../NoPermissions'; import SingleTypeRecursivePath from '../SingleTypeRecursivePath'; import LeftMenu from './LeftMenu'; import useModels from './useModels'; @@ -78,11 +79,9 @@ const App = () => { /> - {/* These pages must be defined */} -
TBD No rights to see the content types
} - /> + + + diff --git a/packages/core/admin/admin/src/content-manager/pages/NoPermissions/index.js b/packages/core/admin/admin/src/content-manager/pages/NoPermissions/index.js new file mode 100644 index 0000000000..56cf76bad4 --- /dev/null +++ b/packages/core/admin/admin/src/content-manager/pages/NoPermissions/index.js @@ -0,0 +1,28 @@ +import React from 'react'; +import { CustomContentLayout, useFocusWhenNavigate } from '@strapi/helper-plugin'; +import { Main } from '@strapi/parts/Main'; +import { HeaderLayout } from '@strapi/parts/Layout'; +import { useIntl } from 'react-intl'; +import { getTrad } from '../../utils'; + +const NoPermissions = () => { + const { formatMessage } = useIntl(); + useFocusWhenNavigate(); + + return ( +
+ + +
+ +
+ ); +}; + +export default NoPermissions; diff --git a/packages/core/admin/admin/src/content-manager/pages/NoPermissions/tests/index.test.js b/packages/core/admin/admin/src/content-manager/pages/NoPermissions/tests/index.test.js new file mode 100644 index 0000000000..76a2187fa7 --- /dev/null +++ b/packages/core/admin/admin/src/content-manager/pages/NoPermissions/tests/index.test.js @@ -0,0 +1,230 @@ +/** + * + * Tests for NoPermissions + * + */ + +import React from 'react'; +import { render } from '@testing-library/react'; +import { IntlProvider } from 'react-intl'; +import Theme from '../../../../components/Theme'; +import NoPermissions from '../index'; + +jest.mock('@strapi/helper-plugin', () => ({ + ...jest.requireActual('@strapi/helper-plugin'), + useFocusWhenNavigate: jest.fn(), +})); + +describe('', () => { + it('renders and matches the snapshot', () => { + const { + container: { firstChild }, + } = render( + + + + + + ); + + expect(firstChild).toMatchInlineSnapshot(` + .c13 { + font-weight: 500; + font-size: 1rem; + line-height: 1.25; + color: #666687; + } + + .c8 { + background: #ffffff; + padding: 64px; + border-radius: 4px; + box-shadow: 0px 1px 4px rgba(33,33,52,0.1); + } + + .c10 { + padding-bottom: 24px; + } + + .c12 { + padding-bottom: 16px; + } + + .c9 { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-align-items: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + text-align: center; + } + + .c11 svg { + height: 5.5rem; + } + + .c1 { + background: #f6f6f9; + padding-top: 56px; + padding-right: 56px; + padding-bottom: 56px; + padding-left: 56px; + } + + .c7 { + padding-right: 56px; + padding-left: 56px; + } + + .c2 { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-align-items: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + } + + .c3 { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-align-items: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + } + + .c4 { + font-weight: 600; + font-size: 2rem; + line-height: 1.25; + color: #32324d; + } + + .c5 { + font-weight: 400; + font-size: 0.875rem; + line-height: 1.43; + color: #666687; + } + + .c6 { + font-size: 1rem; + line-height: 1.5; + } + + .c0 { + outline: none; + } + +
+
+
+
+
+

+ Content +

+
+
+

+

+
+
+
+ +
+

+ You don't have the permissions to access that content +

+
+
+
+
+ `); + }); +});