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