Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
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
13
enum class
AccountOpResult
14
{
15
AOR_OK
,
16
AOR_NAME_TOO_LONG
,
17
AOR_PASS_TOO_LONG
,
18
AOR_EMAIL_TOO_LONG
,
19
AOR_NAME_ALREADY_EXIST
,
20
AOR_NAME_NOT_EXIST
,
21
AOR_DB_INTERNAL_ERROR
22
};
23
24
enum
PasswordChangeSecurity
25
{
26
PW_NONE
,
27
PW_EMAIL
,
28
PW_RBAC
29
};
30
31
#define MAX_ACCOUNT_STR 16
32
#define MAX_EMAIL_STR 64
33
34
namespace
rbac
35
{
36
typedef
std::map<uint32, rbac::RBACPermission*>
RBACPermissionsContainer
;
37
typedef
std::map<uint8, rbac::RBACPermissionContainer>
RBACDefaultPermissionsContainer
;
38
}
39
40
class
AccountMgr
41
{
42
friend
class
Skyfire::Singleton
<
AccountMgr
,
Skyfire
::NullMutex>;
43
44
private
:
45
AccountMgr
();
46
~
AccountMgr
();
47
48
public
:
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
76
rbac::RBACPermissionsContainer
const&
GetRBACPermissionList
() const {
return
_permissions
; }
77
rbac::RBACPermissionContainer
const
&
GetRBACDefaultPermissions
(
uint8
secLevel);
78
79
private
:
80
void
ClearRBAC
();
81
rbac::RBACPermissionsContainer
_permissions
;
82
rbac::RBACDefaultPermissionsContainer
_defaultPermissions
;
83
};
84
85
#define sAccountMgr Skyfire::Singleton<AccountMgr, Skyfire::NullMutex>::instance()
86
#endif
AccountOpResult
AccountOpResult
Definition
AccountMgr.h:14
AccountOpResult::AOR_DB_INTERNAL_ERROR
@ AOR_DB_INTERNAL_ERROR
Definition
AccountMgr.h:21
AccountOpResult::AOR_EMAIL_TOO_LONG
@ AOR_EMAIL_TOO_LONG
Definition
AccountMgr.h:18
AccountOpResult::AOR_PASS_TOO_LONG
@ AOR_PASS_TOO_LONG
Definition
AccountMgr.h:17
AccountOpResult::AOR_OK
@ AOR_OK
Definition
AccountMgr.h:15
AccountOpResult::AOR_NAME_ALREADY_EXIST
@ AOR_NAME_ALREADY_EXIST
Definition
AccountMgr.h:19
AccountOpResult::AOR_NAME_TOO_LONG
@ AOR_NAME_TOO_LONG
Definition
AccountMgr.h:16
AccountOpResult::AOR_NAME_NOT_EXIST
@ AOR_NAME_NOT_EXIST
Definition
AccountMgr.h:20
PasswordChangeSecurity
PasswordChangeSecurity
Definition
AccountMgr.h:25
PW_EMAIL
@ PW_EMAIL
Definition
AccountMgr.h:27
PW_RBAC
@ PW_RBAC
Definition
AccountMgr.h:28
PW_NONE
@ PW_NONE
Definition
AccountMgr.h:26
Common.h
AccountTypes
AccountTypes
Definition
Common.h:129
uint8
std::uint8_t uint8
Definition
Define.h:79
uint32
std::uint32_t uint32
Definition
Define.h:77
RBAC.h
Role Based Access Control related classes definition.
Singleton.h
AccountMgr::ChangeRegEmail
static AccountOpResult ChangeRegEmail(uint32 accountId, std::string newEmail)
Definition
AccountMgr.cpp:217
AccountMgr::LoadRBAC
void LoadRBAC()
Definition
AccountMgr.cpp:381
AccountMgr::DeleteAccount
static AccountOpResult DeleteAccount(uint32 accountId)
Definition
AccountMgr.cpp:61
AccountMgr::CheckPassword
static bool CheckPassword(uint32 accountId, std::string password)
Definition
AccountMgr.cpp:298
AccountMgr::_permissions
rbac::RBACPermissionsContainer _permissions
Definition
AccountMgr.h:81
AccountMgr::ChangeEmail
static AccountOpResult ChangeEmail(uint32 accountId, std::string newEmail)
Definition
AccountMgr.cpp:194
AccountMgr::ChangeUsername
static AccountOpResult ChangeUsername(uint32 accountId, std::string newUsername, std::string newPassword)
Definition
AccountMgr.cpp:133
AccountMgr::GetCharactersCount
static uint32 GetCharactersCount(uint32 accountId)
Definition
AccountMgr.cpp:338
AccountMgr::UpdateAccountAccess
void UpdateAccountAccess(rbac::RBACData *rbac, uint32 accountId, uint8 securityLevel, int32 realmId)
Definition
AccountMgr.cpp:465
AccountMgr::IsAdminAccount
static bool IsAdminAccount(AccountTypes gmlevel)
Definition
AccountMgr.cpp:371
AccountMgr::ClearRBAC
void ClearRBAC()
Definition
AccountMgr.cpp:523
AccountMgr::GetSecurity
static AccountTypes GetSecurity(uint32 accountId)
Definition
AccountMgr.cpp:249
AccountMgr::ChangePassword
static AccountOpResult ChangePassword(uint32 accountId, std::string newPassword)
Definition
AccountMgr.cpp:169
AccountMgr::normalizeString
static bool normalizeString(std::string &utf8String)
Definition
AccountMgr.cpp:348
AccountMgr::CreateAccount
AccountOpResult CreateAccount(std::string username, std::string password, std::string email)
Definition
AccountMgr.cpp:23
AccountMgr::GetId
static uint32 GetId(std::string const &username)
Definition
AccountMgr.cpp:240
AccountMgr::GetRBACDefaultPermissions
rbac::RBACPermissionContainer const & GetRBACDefaultPermissions(uint8 secLevel)
Definition
AccountMgr.cpp:532
AccountMgr::HasPermission
static bool HasPermission(uint32 accountId, uint32 permission, uint32 realmId)
Definition
AccountMgr.cpp:506
AccountMgr::GetEmail
static bool GetEmail(uint32 accountId, std::string &email)
Definition
AccountMgr.cpp:283
AccountMgr::_defaultPermissions
rbac::RBACDefaultPermissionsContainer _defaultPermissions
Definition
AccountMgr.h:82
AccountMgr::IsConsoleAccount
static bool IsConsoleAccount(AccountTypes gmlevel)
Definition
AccountMgr.cpp:376
AccountMgr::IsPlayerAccount
static bool IsPlayerAccount(AccountTypes gmlevel)
Definition
AccountMgr.cpp:366
AccountMgr::CheckEmail
static bool CheckEmail(uint32 accountId, std::string newEmail)
Definition
AccountMgr.cpp:321
AccountMgr::GetRBACPermission
rbac::RBACPermission const * GetRBACPermission(uint32 permission) const
Definition
AccountMgr.cpp:496
AccountMgr::AccountMgr
AccountMgr()
Definition
AccountMgr.cpp:16
AccountMgr::GetName
static bool GetName(uint32 accountId, std::string &name)
Definition
AccountMgr.cpp:268
AccountMgr::GetRBACPermissionList
rbac::RBACPermissionsContainer const & GetRBACPermissionList() const
Definition
AccountMgr.h:76
Skyfire::Singleton
Definition
Singleton.h:15
rbac::RBACPermission
Definition
RBAC.h:728
Skyfire
Definition
AuthPatchTransfer.h:12
rbac
Definition
AccountMgr.h:35
rbac::RBACPermissionsContainer
std::map< uint32, rbac::RBACPermission * > RBACPermissionsContainer
Definition
AccountMgr.h:36
rbac::RBACDefaultPermissionsContainer
std::map< uint8, rbac::RBACPermissionContainer > RBACDefaultPermissionsContainer
Definition
AccountMgr.h:37
rbac::RBACPermissionContainer
std::set< uint32 > RBACPermissionContainer
Definition
RBAC.h:725
src
server
game
Accounts
AccountMgr.h
Generated on
for Project SkyFire Core by
1.17.0