Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
AccountMgr.h
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6#ifndef SF_ACCMGR_H
7#define SF_ACCMGR_H
8
9#include "Common.h"
10#include "Platform/Singleton.h"
11#include "RBAC.h"
12
23
30
31#define MAX_ACCOUNT_STR 16
32#define MAX_EMAIL_STR 64
33
34namespace rbac
35{
36 typedef std::map<uint32, rbac::RBACPermission*> RBACPermissionsContainer;
37 typedef std::map<uint8, rbac::RBACPermissionContainer> RBACDefaultPermissionsContainer;
38}
39
41{
42 friend class Skyfire::Singleton<AccountMgr, Skyfire::NullMutex>;
43
44private:
45 AccountMgr();
46 ~AccountMgr();
47
48public:
49 AccountOpResult CreateAccount(std::string username, std::string password, std::string email);
50 static AccountOpResult DeleteAccount(uint32 accountId);
51 static AccountOpResult ChangeUsername(uint32 accountId, std::string newUsername, std::string newPassword);
52 static AccountOpResult ChangePassword(uint32 accountId, std::string newPassword);
53 static AccountOpResult ChangeEmail(uint32 accountId, std::string newEmail);
54 static AccountOpResult ChangeRegEmail(uint32 accountId, std::string newEmail);
55 static bool CheckPassword(uint32 accountId, std::string password);
56 static bool CheckEmail(uint32 accountId, std::string newEmail);
57
58 static uint32 GetId(std::string const& username);
59 static AccountTypes GetSecurity(uint32 accountId);
60 static AccountTypes GetSecurity(uint32 accountId, int32 realmId);
61 static bool GetName(uint32 accountId, std::string& name);
62 static bool GetEmail(uint32 accountId, std::string& email);
63 static uint32 GetCharactersCount(uint32 accountId);
64
65 static bool normalizeString(std::string& utf8String);
66 static bool IsPlayerAccount(AccountTypes gmlevel);
67 static bool IsAdminAccount(AccountTypes gmlevel);
68 static bool IsConsoleAccount(AccountTypes gmlevel);
69 static bool HasPermission(uint32 accountId, uint32 permission, uint32 realmId);
70
71 void UpdateAccountAccess(rbac::RBACData* rbac, uint32 accountId, uint8 securityLevel, int32 realmId);
72
73 void LoadRBAC();
74 rbac::RBACPermission const* GetRBACPermission(uint32 permission) const;
75
78
79private:
80 void ClearRBAC();
83};
84
85#define sAccountMgr Skyfire::Singleton<AccountMgr, Skyfire::NullMutex>::instance()
86#endif
AccountOpResult
Definition AccountMgr.h:14
PasswordChangeSecurity
Definition AccountMgr.h:25
@ PW_EMAIL
Definition AccountMgr.h:27
@ PW_RBAC
Definition AccountMgr.h:28
@ PW_NONE
Definition AccountMgr.h:26
AccountTypes
Definition Common.h:129
std::uint8_t uint8
Definition Define.h:79
std::uint32_t uint32
Definition Define.h:77
Role Based Access Control related classes definition.
static AccountOpResult ChangeRegEmail(uint32 accountId, std::string newEmail)
void LoadRBAC()
static AccountOpResult DeleteAccount(uint32 accountId)
static bool CheckPassword(uint32 accountId, std::string password)
rbac::RBACPermissionsContainer _permissions
Definition AccountMgr.h:81
static AccountOpResult ChangeEmail(uint32 accountId, std::string newEmail)
static AccountOpResult ChangeUsername(uint32 accountId, std::string newUsername, std::string newPassword)
static uint32 GetCharactersCount(uint32 accountId)
void UpdateAccountAccess(rbac::RBACData *rbac, uint32 accountId, uint8 securityLevel, int32 realmId)
static bool IsAdminAccount(AccountTypes gmlevel)
void ClearRBAC()
static AccountTypes GetSecurity(uint32 accountId)
static AccountOpResult ChangePassword(uint32 accountId, std::string newPassword)
static bool normalizeString(std::string &utf8String)
AccountOpResult CreateAccount(std::string username, std::string password, std::string email)
static uint32 GetId(std::string const &username)
rbac::RBACPermissionContainer const & GetRBACDefaultPermissions(uint8 secLevel)
static bool HasPermission(uint32 accountId, uint32 permission, uint32 realmId)
static bool GetEmail(uint32 accountId, std::string &email)
rbac::RBACDefaultPermissionsContainer _defaultPermissions
Definition AccountMgr.h:82
static bool IsConsoleAccount(AccountTypes gmlevel)
static bool IsPlayerAccount(AccountTypes gmlevel)
static bool CheckEmail(uint32 accountId, std::string newEmail)
rbac::RBACPermission const * GetRBACPermission(uint32 permission) const
static bool GetName(uint32 accountId, std::string &name)
rbac::RBACPermissionsContainer const & GetRBACPermissionList() const
Definition AccountMgr.h:76
std::map< uint32, rbac::RBACPermission * > RBACPermissionsContainer
Definition AccountMgr.h:36
std::map< uint8, rbac::RBACPermissionContainer > RBACDefaultPermissionsContainer
Definition AccountMgr.h:37
std::set< uint32 > RBACPermissionContainer
Definition RBAC.h:725