Ich habe vier verschiedene Layouts.Erlaube dem Benutzer nur auf sein Dashboard zuzugreifen
HomeLayout - Homepage
AdminLayout
UserLayout
AgentLayout
AdminLayout ist die Mutter für die Admin-bezogenen Seiten und UserLayout für Benutzer verwandt und so weiter. Ich habe Higher Order Component verwendet, um zu überprüfen, ob der Benutzer nicht authentifiziert ist, um sie zur Startseite umzuleiten. Es gibt noch eine andere Bedingung. Das heißt, wenn der Benutzer authentifiziert ist, aber wenn die Rolle des Benutzers nicht admin ist und der Benutzer versucht, auf AdminDashboard zuzugreifen, sollte er/sie zur Startseite und ähnlich wie andere weitergeleitet werden. Aber Agent kann auf UserDashboard zugreifen.
Die Rolle, die ich erhalten, ist in der Form
user_role = ['superadmin'] or ['enduser'] or ['agent'] or
['enduser', 'agent'].
Ein nicht andere Armaturenbrett außer Agent zugreifen sollen, können auch Mittel Armaturenbrett und Benutzer Armaturenbrett zuzugreifen. Für nicht authentifizierte Benutzer könnte ich zur Startseite umleiten, wenn zum Umlenken nicht authentifizierte Benutzer Armaturenbrett ohne loggin in
Der Code Zugriff funktioniert und ich habe folgendes Weg
const Redirection = prop => WrappedComponent => {
return class Redirection extends React.PureComponent {
render() {
const user_instance = JSON.parse(localStorage.getItem("user"));
if (!user_instance) {
return <Redirect to="/" />;
} else {
return <WrappedComponent {...this.props} />;
}
}
};
};
export default props => WrappedComponent =>
connect(null, mapDispatchToProps)(Redirection(props)(WrappedComponent));
AdminLayout
class AdminLayout extends React.Component {
render() {
return (
<div>
{this.props.children}
</div>
);
}
}
export default Redirection()(AdminLayout);
Die getan user_role ich bekomme von localStorage ist als