/
farado
/
farado-binara
Обзор
Документация
Войти
/
farado
/
farado-binara
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
develop
src/retejo/ui/ui_logout_handler.cpp
56 строк
2 KB
Ostapenko Alexey
[retejo] Доработка средств редактирования пользователя.
19 мар 2024, 18:02
19 мар 2024, 18:02
bb835a3
Код
Авторство
О чём код?
#include <crow/http_response.h> #include "common/api/client.h" #include "common/log/crow_logger.hpp" #include "common/log/log.h" #include "common/more/uuid.h" #include "common/helpers/container_helper.hpp" #include "common/helpers/crow_helper.h" #include "ui_controller.h" #include "ui_logout_handler.h" namespace Ui { void LogoutHandler::setup(crow::App<>& crowApplication, UiController* controller) { CROW_ROUTE(crowApplication, "/logout") .methods("GET"_method)( [controller](const crow::request& request) { const Uuids::Uuid sessionUuid = Common::currentSessionUuid(request); const auto session = controller->session(sessionUuid); if (!session) { // TODO: Обработать попытку выйти с несуществующей сессией. crow::response response = Common::redirect("/"); Common::setSessionUuid(response, Uuids::nilUuid()); return response; } const auto user = session->user(); const std::string userLogin = (user) ? user->login() : ""; // TODO: Что-то сделать с logoutResult. const auto logoutResult = controller->datenaroGate()->logout( sessionUuid, userLogin ); controller->delSession(sessionUuid); LOG_INFO << userLogin << " | " << "Успешный выход из системы."; crow::response response = Common::redirect("/"); Common::setSessionUuid(response, Uuids::nilUuid()); return response; } ); } } // namespace Ui