4つのレイアウトがあります。ダッシュボードにのみアクセスできるようにする
HomeLayout - ホームページ
AdminLayout
UserLayout
AgentLayout
AdminLayoutは、ユーザーのための管理に関連するページとUserLayoutの親であります関連するなど。 ユーザーが認証されていないかどうかを確認するためにHigher Order Componentを使用して、それらをホームページにリダイレクトしました。もう一つの条件もあります。つまり、ユーザーは認証されていますが、ユーザーの役割がadminではなく、ユーザーがAdminDashboardにアクセスしようとすると、ユーザーはホームページにリダイレクトされ、他のユーザーと同じようにリダイレクトされます。しかし、エージェントはUserDashboardにアクセスできます。
私が得る役割は、1つのエージェントを除いて、他のダッシュボードにアクセスしてはならない
user_role = ['superadmin'] or ['enduser'] or ['agent'] or
['enduser', 'agent'].
があまりにエージェントダッシュボードやユーザーダッシュボードにアクセスできる形態です。 logginせずにダッシュボードにアクセスする際に認証されていないユーザーのために私はホームページにリダイレクトすることができ
に認証されていないユーザーにリダイレクトするためのコードが働いていると私は次のよう
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);
私がlocalstorageから得たuser_roleは、JSON.parse(localStorage.getItem("user"))['userInfo]['user_role']