82164e42c3
Changes: - Added authorization state tracking to authenticated sessions. - Revoked authorization immediately when an account-disabled event is received. - Added authorization validation before protected service operations. - Cleared authorization state on logout. Fixes #2078
36 lines
1.1 KiB
C++
36 lines
1.1 KiB
C++
/*
|
|
File: AuthenticationManagementService.h
|
|
Description: Header file declaring the AuthenticationManagementService class, which manages
|
|
user authentication, login, logout, password changes, and retrieval of the
|
|
authenticated user.
|
|
Author: Trenser
|
|
Date:19-May-2026
|
|
*/
|
|
|
|
#pragma once
|
|
#include <string>
|
|
#include <windows.h>
|
|
#include "EventManager.h"
|
|
#include "DataStore.h"
|
|
|
|
class User;
|
|
|
|
class AuthenticationManagementService
|
|
{
|
|
private:
|
|
static User* m_authenticatedUser;
|
|
static bool m_isAuthorized;
|
|
static EventManager m_eventManager;
|
|
static HANDLE m_accountDisabledEvent;
|
|
static HANDLE m_notificationsAvailableEvent;
|
|
DataStore& m_dataStore;
|
|
public:
|
|
AuthenticationManagementService() : m_dataStore(DataStore::getInstance()) {}
|
|
static void ensureAuthorization();
|
|
bool login(const std::string& username, const std::string& password);
|
|
void logout();
|
|
void changePassword(const std::string& newPassword);
|
|
User* getAuthenticatedUser();
|
|
void registerEvents(HANDLE accountDisabledEvent, HANDLE notificationAvailableEvent);
|
|
};
|