From 45d00d89645ac07ddb85854d5e3b7db409d404d9 Mon Sep 17 00:00:00 2001 From: Jissin Sam Mathew Date: Mon, 6 Apr 2026 11:56:47 +0530 Subject: [PATCH] Add logout functionality in controller and datastore access AUTH003: Logout User - Added logout() method in ZenvyController and AuthenticationManagementService - Implemented logout handling in AuthenticationManagementService Smitha Mohan --- .../Trenser.Zenvy/controllers/ZenvyController.cpp | 1 + Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.cpp | 8 +++++++- Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.h | 1 + .../services/AuthenticationManagementService.cpp | 9 +++++++++ 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.cpp b/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.cpp index 4efe6f2..39d42dd 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.cpp @@ -8,6 +8,7 @@ AuthenticationContext ZenvyController::login(const std::string& email, const std void ZenvyController::logout() { + m_authenticationManagementService->logout(); } void ZenvyController::changePassword(const std::string& password) const diff --git a/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.cpp b/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.cpp index 71f6d56..16ddca1 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.cpp @@ -24,4 +24,10 @@ void DataStore::setAuthenticatedEmployee(std::shared_ptr authenticated employeeMap& DataStore::getEmployees() { return m_employees; -} \ No newline at end of file +} + +std::shared_ptr& DataStore::getAuthenticatedUser() +{ + return m_authenticatedEmployee; +} + diff --git a/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.h b/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.h index 750d741..5ecfb70 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.h +++ b/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.h @@ -36,6 +36,7 @@ public: DataStore(DataStore&&) = delete; DataStore& operator=(DataStore&&) = delete; employeeMap& getEmployees(); + std::shared_ptr& getAuthenticatedUser(); logMap& getLogs(); std::shared_ptr& getAuthenticatedEmployee(); void setAuthenticatedEmployee(std::shared_ptr < Employee>); diff --git a/Trenser.Zenvy/Trenser.Zenvy/services/AuthenticationManagementService.cpp b/Trenser.Zenvy/Trenser.Zenvy/services/AuthenticationManagementService.cpp index bf98c64..5c0511a 100644 --- a/Trenser.Zenvy/Trenser.Zenvy/services/AuthenticationManagementService.cpp +++ b/Trenser.Zenvy/Trenser.Zenvy/services/AuthenticationManagementService.cpp @@ -59,3 +59,12 @@ void AuthenticationManagementService::changePassword(const std::string& password throw std::runtime_error("User not found"); } } + +void AuthenticationManagementService::logout() { + if (m_dataStore.getAuthenticatedUser()) { + m_dataStore.getAuthenticatedUser() = nullptr; + } + else { + throw std::runtime_error("No user currently logged In..."); + } +} \ No newline at end of file