From a5736b923075701cf42e4723fafe751e384b5386 Mon Sep 17 00:00:00 2001 From: Shyam Raghuwanshi Date: Mon, 10 Feb 2025 11:48:03 +0530 Subject: [PATCH 1/2] Protected Pages Show Blank Screen Instead of Redirecting to Login --- packages/volto/src/helpers/Api/Api.js | 4 +++- packages/volto/src/protected-routes.jsx | 24 ++++++++++++++++++++++++ packages/volto/src/routes.js | 6 +++++- 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 packages/volto/src/protected-routes.jsx diff --git a/packages/volto/src/helpers/Api/Api.js b/packages/volto/src/helpers/Api/Api.js index 44e6a89123..c046997169 100644 --- a/packages/volto/src/helpers/Api/Api.js +++ b/packages/volto/src/helpers/Api/Api.js @@ -126,7 +126,9 @@ class Api { url: err.response.headers.location, }); } - + if (response.status === 401) { + window.location.href = '/login'; + } 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', From f807ba6735525cfcc209fa6954e0af4bf8217736 Mon Sep 17 00:00:00 2001 From: Shyam Raghuwanshi Date: Tue, 11 Feb 2025 13:20:50 +0530 Subject: [PATCH 2/2] fix --- packages/volto/src/helpers/Api/Api.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/volto/src/helpers/Api/Api.js b/packages/volto/src/helpers/Api/Api.js index c046997169..8fdd02af66 100644 --- a/packages/volto/src/helpers/Api/Api.js +++ b/packages/volto/src/helpers/Api/Api.js @@ -126,9 +126,6 @@ class Api { url: err.response.headers.location, }); } - if (response.status === 401) { - window.location.href = '/login'; - } return err ? reject(err) : resolve(response.body || response.text); }); });