e5787dfb98
Changes: - Added SharedMemory module for file-backed memory-mapped storage - Added MappingInfo, FileHeader, RecordState and TrackedRecord infrastructure - Replaced CSV-based serialization with binary struct serialization - Added DataStore initialization and shutdown lifecycle management - Added datastore mutex synchronization for multi-process access - Added shared-memory mapping configuration for all datastore entities - Added generic loadRecords and saveRecords template infrastructure - Added automatic datastore directory creation and .dat file storage - Updated configuration to use binary datastore files and initial capacities - Added enum underlying types for serialization compatibility - Added password masking support for login, registration and password change flows - Added Visual Studio project configuration for shared-memory components - Prepared datastore for multi-process shared-memory persistence
37 lines
1.3 KiB
C++
37 lines
1.3 KiB
C++
/*
|
|
File: UserManagementService.h
|
|
Description: Header file declaring the UserManagementService class, which manages
|
|
user creation, updates, retrieval, removal, notifications, and ensures
|
|
the existence of an admin account.
|
|
Author: Trenser
|
|
Date:19-May-2026
|
|
*/
|
|
|
|
#pragma once
|
|
#include <string>
|
|
#include "Map.h"
|
|
#include "Enums.h"
|
|
#include "DataStore.h"
|
|
|
|
class User;
|
|
class Notification;
|
|
|
|
class UserManagementService
|
|
{
|
|
private:
|
|
DataStore& m_dataStore;
|
|
public:
|
|
UserManagementService() : m_dataStore(DataStore::getInstance()) {}
|
|
void createUser(const std::string& username, const std::string& name, const std::string& password, const std::string& email, const std::string& phone, util::UserType type);
|
|
void updateUserDetails(const std::string& userID, const std::string& email, const std::string& phone);
|
|
util::Map<std::string, User*> getUsers();
|
|
util::Map<std::string, User*> getUsers(util::UserType type);
|
|
User* getUser (const std::string& userID);
|
|
void removeUser(const std::string& userID);
|
|
util::Vector<Notification*> getUserNotifications(const std::string& userID);
|
|
void deleteNotification(const std::string& notificationID, const std::string& userID);
|
|
void ensureAdminExists();
|
|
void loadUsers();
|
|
void saveUsers();
|
|
};
|