visus-plus/web-app/src/App/AdminRoute.jsx
andrei dc47e4b003 feat: auth Добавлена поддержка сессий пользователей
Добавлена функциональность управления сессиями пользователей, включая создание сессий при входе, получение списка активных сессий, деактивацию отдельных сессий и деактивацию всех сессий пользователя.
2025-07-03 09:16:19 +05:00

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;