Добавлена функциональность управления сессиями пользователей, включая создание сессий при входе, получение списка активных сессий, деактивацию отдельных сессий и деактивацию всех сессий пользователя.
34 lines
830 B
JavaScript
34 lines
830 B
JavaScript
import {Navigate, Outlet} from "react-router-dom";
|
|
import {useGetAuthenticatedUserDataQuery} from "../Api/usersApi.js";
|
|
import LoadingIndicator from "../Components/Widgets/LoadingIndicator/LoadingIndicator.jsx";
|
|
import {Result} from "antd";
|
|
|
|
const AdminRoute = () => {
|
|
const {
|
|
data: user,
|
|
isLoading: isUserLoading,
|
|
isError: isUserError,
|
|
} = useGetAuthenticatedUserDataQuery(undefined, {
|
|
pollingInterval: 20000,
|
|
});
|
|
|
|
if (isUserLoading) {
|
|
return <LoadingIndicator/>;
|
|
}
|
|
|
|
if (isUserError) {
|
|
return <Navigate to="/login"/>;
|
|
}
|
|
|
|
if (!user) {
|
|
return <Navigate to="/login"/>;
|
|
}
|
|
|
|
if (!user.role || user.role.title !== "Администратор") {
|
|
return <Navigate to="/"/>;
|
|
}
|
|
|
|
return <Outlet/>;
|
|
};
|
|
|
|
export default AdminRoute; |