diff --git a/packages/volto/src/helpers/Api/Api.js b/packages/volto/src/helpers/Api/Api.js index 44e6a89123..8fdd02af66 100644 --- a/packages/volto/src/helpers/Api/Api.js +++ b/packages/volto/src/helpers/Api/Api.js @@ -126,7 +126,6 @@ class Api { url: err.response.headers.location, }); } - return err ? reject(err) : resolve(response.body || response.text); }); }); diff --git a/packages/volto/src/protected-routes.jsx b/packages/volto/src/protected-routes.jsx new file mode 100644 index 0000000000..58dd6b0b84 --- /dev/null +++ b/packages/volto/src/protected-routes.jsx @@ -0,0 +1,24 @@ +import { useSelector } from 'react-redux'; +import { Route, Redirect } from 'react-router-dom'; + +export const ProtectedRoutes = ({ component: Component, ...rest }) => { + const token = useSelector((state) => state.userSession.token); + + return ( + + token ? ( + + ) : ( + + ) + } + /> + ); +}; diff --git a/packages/volto/src/routes.js b/packages/volto/src/routes.js index ba9208213a..cd1a08f75e 100644 --- a/packages/volto/src/routes.js +++ b/packages/volto/src/routes.js @@ -56,6 +56,7 @@ import App from '@plone/volto/components/theme/App/App'; import View from '@plone/volto/components/theme/View/View'; import config from '@plone/volto/registry'; +import { ProtectedRoutes } from './protected-routes'; /** * Default routes array. @@ -232,7 +233,10 @@ export const defaultRoutes = [ }, { path: '/controlpanel/:id', - component: Controlpanel, + component: (props) => ( + // eslint-disable-next-line + + ), }, { path: '/change-password',