diff --git a/packages/strapi-admin/admin/src/containers/AdminPage/index.js b/packages/strapi-admin/admin/src/containers/AdminPage/index.js index efd635ce80..3b76e6f005 100644 --- a/packages/strapi-admin/admin/src/containers/AdminPage/index.js +++ b/packages/strapi-admin/admin/src/containers/AdminPage/index.js @@ -60,6 +60,18 @@ export class AdminPage extends React.Component { // eslint-disable-line react/pr } } + componentWillUpdate(nextProps) { + if (includes(nextProps.location.pathname, 'plugins') && nextProps.location.pathname !== '/list-plugins') { + const appPlugins = Object.keys(nextProps.plugins.toJS()); + const pluginPath = nextProps.location.pathname.split('/')[2]; + const shouldRedirect = appPlugins.filter(el => el === pluginPath).length === 0; + + if (shouldRedirect) { + this.props.history.push('/404'); + } + } + } + checkLogin = (props) => { if (props.hasUserPlugin && this.isUrlProtected(props) && !auth.getToken()) { const endPoint = this.hasAdminUser(props) ? 'login': 'register'; @@ -122,6 +134,7 @@ export class AdminPage extends React.Component { // eslint-disable-line react/pr +