![]() |
TrinityCore
|
#include <RBAC.h>
Public Member Functions | |||||
| RBACData (uint32 id, std::string const &name, int32 realmId, uint8 secLevel=255) | |||||
| RBACData (RBACData const &other) | |||||
| RBACData (RBACData &&other) noexcept | |||||
| RBACData & | operator= (RBACData const &right) | ||||
| RBACData & | operator= (RBACData &&right) noexcept | ||||
| ~RBACData () | |||||
| std::string const & | GetName () const | ||||
| Gets the Name of the Object. | |||||
| uint32 | GetId () const | ||||
| Gets the Id of the Object. | |||||
HasPermission | |||||
Checks if certain action is allowed Checks if certain action can be performed.
Example Usage: | |||||
| bool | HasPermission (uint32 permission) const | ||||
| RBACPermissionContainer const & | GetPermissions () const | ||||
| Returns all the granted permissions (after computation) | |||||
| RBACPermissionContainer const & | GetGrantedPermissions () const | ||||
| Returns all the granted permissions. | |||||
| RBACPermissionContainer const & | GetDeniedPermissions () const | ||||
| Returns all the denied permissions. | |||||
GrantRole | |||||
Grants a permission Grants a permission to the account. If realm is 0 or the permission can not be added No save to db action will be performed. Fails if permission Id does not exists or permission already granted or denied
Example Usage: // previously defined "RBACData* rbac" with proper initialization
uint32 permissionId = 2;
Definition AccountMgr.h:49 | |||||
| RBACCommandResult | GrantPermission (uint32 permissionId, int32 realmId=0) | ||||
DenyPermission | |||||
Denies a permission Denied a permission to the account. If realm is 0 or the permission can not be added No save to db action will be performed. Fails if permission Id does not exists or permission already granted or denied
Example Usage: // previously defined "RBACData* rbac" with proper initialization
uint32 permissionId = 2;
| |||||
| RBACCommandResult | DenyPermission (uint32 permissionId, int32 realmId=0) | ||||
Private Member Functions | |
CalculateNewPermissions | |
Calculates new permissions Calculates new permissions after some change The calculation is done Granted - Denied:
| |
| void | CalculateNewPermissions () |
| int32 | GetRealmId () const |
| bool | HasGrantedPermission (uint32 permissionId) const |
| Checks if a permission is granted. | |
| bool | HasDeniedPermission (uint32 permissionId) const |
| Checks if a permission is denied. | |
| void | AddGrantedPermission (uint32 permissionId) |
| Adds a new granted permission. | |
| void | RemoveGrantedPermission (uint32 permissionId) |
| Removes a granted permission. | |
| void | AddDeniedPermission (uint32 permissionId) |
| Adds a new denied permission. | |
| void | RemoveDeniedPermission (uint32 permissionId) |
| Removes a denied permission. | |
| void | AddPermissions (RBACPermissionContainer const &permsFrom, RBACPermissionContainer &permsTo) |
| Adds a list of permissions to another list. | |
| void | RemovePermissions (RBACPermissionContainer &permsFrom, RBACPermissionContainer const &permsToRemove) |
| Removes a list of permissions from another list. | |
ExpandPermissions | |||
Adds the list of linked permissions to the original list Given a list of permissions, gets all the inherited permissions
| |||
| uint32 | _id | ||
| std::string | _name | ||
| |||
| int32 | _realmId | ||
| |||
| uint8 | _secLevel | ||
| |||
| RBACPermissionContainer | _grantedPerms | ||
| |||
| RBACPermissionContainer | _deniedPerms | ||
| |||
| RBACPermissionContainer | _globalPerms | ||
| |||
| void | ExpandPermissions (RBACPermissionContainer &permissions) | ||
RevokePermission | |||||
Removes a permission Removes a permission from the account. If realm is 0 or the permission can not be removed No save to db action will be performed. Any delete operation will always affect "all realms (-1)" in addition to the realm specified Fails if permission not present
Example Usage: // previously defined "RBACData* rbac" with proper initialization
uint32 permissionId = 2;
| |||||
| RBACCommandResult | RevokePermission (uint32 permissionId, int32 realmId=0) | ||||
| void | LoadFromDB () | ||||
| Loads all permissions assigned to current account. | |||||
| QueryCallback | LoadFromDBAsync () | ||||
| void | LoadFromDBCallback (PreparedQueryResult result) | ||||
| void | SetSecurityLevel (uint8 id) | ||||
| Sets security level. | |||||
| uint8 | GetSecurityLevel () const | ||||
| Returns the security level assigned. | |||||
| void | SavePermission (uint32 role, bool granted, int32 realm) | ||||
| Saves a permission to DB, Granted or Denied. | |||||
| void | ClearData () | ||||
| Clears roles, groups and permissions - Used for reload. | |||||
|
default |
|
defaultnoexcept |
|
default |
|
inlineprivate |
Adds a new denied permission.
Definition at line 992 of file RBAC.h.
Referenced by DenyPermission().
|
inlineprivate |
Adds a new granted permission.
Definition at line 980 of file RBAC.h.
Referenced by GrantPermission().
|
private |
|
private |
Definition at line 236 of file RBAC.cpp.
References _globalPerms, ExpandPermissions(), GetDeniedPermissions(), GetGrantedPermissions(), GetId(), GetName(), RemovePermissions(), and TC_LOG_TRACE.
Referenced by DenyPermission(), GrantPermission(), LoadFromDBCallback(), and RevokePermission().
|
private |
Clears roles, groups and permissions - Used for reload.
Definition at line 288 of file RBAC.cpp.
References _deniedPerms, _globalPerms, and _grantedPerms.
Referenced by LoadFromDB(), and LoadFromDBAsync().
| RBACCommandResult rbac::RBACData::DenyPermission | ( | uint32 | permissionId, |
| int32 | realmId = 0 |
||
| ) |
Definition at line 100 of file RBAC.cpp.
References AddDeniedPermission(), CalculateNewPermissions(), GetId(), GetName(), HasDeniedPermission(), HasGrantedPermission(), rbac::RBAC_CANT_ADD_ALREADY_ADDED, rbac::RBAC_ID_DOES_NOT_EXISTS, rbac::RBAC_IN_GRANTED_LIST, rbac::RBAC_OK, sAccountMgr, SavePermission(), and TC_LOG_TRACE.
Referenced by rbac_commandscript::HandleRBACPermDenyCommand(), and LoadFromDBCallback().
|
private |
Definition at line 260 of file RBAC.cpp.
References rbac::GetDebugPermissionString(), rbac::RBACPermission::GetLinkedPermissions(), sAccountMgr, and TC_LOG_DEBUG.
Referenced by CalculateNewPermissions().
|
inline |
Returns all the denied permissions.
Definition at line 856 of file RBAC.h.
Referenced by CalculateNewPermissions(), and rbac_commandscript::HandleRBACPermListCommand().
|
inline |
Returns all the granted permissions.
Definition at line 854 of file RBAC.h.
Referenced by CalculateNewPermissions(), and rbac_commandscript::HandleRBACPermListCommand().
|
inline |
Gets the Id of the Object.
Definition at line 827 of file RBAC.h.
Referenced by CalculateNewPermissions(), DenyPermission(), GrantPermission(), rbac_commandscript::HandleRBACPermListCommand(), WorldSession::HasPermission(), WorldSession::InvalidateRBACData(), LoadFromDB(), LoadFromDBAsync(), RevokePermission(), and SavePermission().
|
inline |
Gets the Name of the Object.
Definition at line 825 of file RBAC.h.
Referenced by CalculateNewPermissions(), DenyPermission(), GrantPermission(), rbac_commandscript::HandleRBACPermListCommand(), WorldSession::HasPermission(), WorldSession::InvalidateRBACData(), LoadFromDB(), LoadFromDBAsync(), and RevokePermission().
|
inline |
|
inlineprivate |
Definition at line 962 of file RBAC.h.
Referenced by LoadFromDB(), and LoadFromDBAsync().
|
inline |
Returns the security level assigned.
Definition at line 944 of file RBAC.h.
Referenced by rbac_commandscript::HandleRBACPermListCommand().
| RBACCommandResult rbac::RBACData::GrantPermission | ( | uint32 | permissionId, |
| int32 | realmId = 0 |
||
| ) |
Definition at line 56 of file RBAC.cpp.
References AddGrantedPermission(), CalculateNewPermissions(), GetId(), GetName(), HasDeniedPermission(), HasGrantedPermission(), rbac::RBAC_CANT_ADD_ALREADY_ADDED, rbac::RBAC_ID_DOES_NOT_EXISTS, rbac::RBAC_IN_DENIED_LIST, rbac::RBAC_OK, sAccountMgr, SavePermission(), and TC_LOG_TRACE.
Referenced by rbac_commandscript::HandleRBACPermGrantCommand(), and LoadFromDBCallback().
|
inlineprivate |
Checks if a permission is denied.
Definition at line 974 of file RBAC.h.
Referenced by DenyPermission(), GrantPermission(), and RevokePermission().
|
inlineprivate |
Checks if a permission is granted.
Definition at line 968 of file RBAC.h.
Referenced by DenyPermission(), GrantPermission(), and RevokePermission().
|
inline |
Definition at line 845 of file RBAC.h.
Referenced by WorldSession::HasPermission().
| void rbac::RBACData::LoadFromDB | ( | ) |
Loads all permissions assigned to current account.
Definition at line 187 of file RBAC.cpp.
References ClearData(), GetId(), GetName(), GetRealmId(), LoadFromDBCallback(), LOGIN_SEL_RBAC_ACCOUNT_PERMISSIONS, LoginDatabase, PreparedStatementBase::setInt32(), PreparedStatementBase::setUInt32(), and TC_LOG_DEBUG.
Referenced by WorldSession::LoadPermissions().
| QueryCallback rbac::RBACData::LoadFromDBAsync | ( | ) |
Definition at line 200 of file RBAC.cpp.
References ClearData(), GetId(), GetName(), GetRealmId(), LOGIN_SEL_RBAC_ACCOUNT_PERMISSIONS, LoginDatabase, PreparedStatementBase::setInt32(), PreparedStatementBase::setUInt32(), and TC_LOG_DEBUG.
Referenced by WorldSession::LoadPermissionsAsync().
| void rbac::RBACData::LoadFromDBCallback | ( | PreparedQueryResult | result | ) |
Definition at line 213 of file RBAC.cpp.
References _secLevel, CalculateNewPermissions(), DenyPermission(), GrantPermission(), and sAccountMgr.
Referenced by LoadFromDB(), and WorldSocket::LoadSessionPermissionsCallback().
|
inlineprivate |
Removes a denied permission.
Definition at line 998 of file RBAC.h.
Referenced by RevokePermission().
|
inlineprivate |
Removes a granted permission.
Definition at line 986 of file RBAC.h.
Referenced by RevokePermission().
|
private |
Removes a list of permissions from another list.
Definition at line 254 of file RBAC.cpp.
Referenced by CalculateNewPermissions().
| RBACCommandResult rbac::RBACData::RevokePermission | ( | uint32 | permissionId, |
| int32 | realmId = 0 |
||
| ) |
Definition at line 154 of file RBAC.cpp.
References CalculateNewPermissions(), GetId(), GetName(), HasDeniedPermission(), HasGrantedPermission(), LOGIN_DEL_RBAC_ACCOUNT_PERMISSION, LoginDatabase, rbac::RBAC_CANT_REVOKE_NOT_IN_LIST, rbac::RBAC_OK, RemoveDeniedPermission(), RemoveGrantedPermission(), PreparedStatementBase::setInt32(), PreparedStatementBase::setUInt32(), and TC_LOG_TRACE.
Referenced by rbac_commandscript::HandleRBACPermRevokeCommand().
Saves a permission to DB, Granted or Denied.
Definition at line 144 of file RBAC.cpp.
References GetId(), LOGIN_INS_RBAC_ACCOUNT_PERMISSION, LoginDatabase, PreparedStatementBase::setBool(), PreparedStatementBase::setInt32(), and PreparedStatementBase::setUInt32().
Referenced by DenyPermission(), and GrantPermission().
|
inline |
|
private |
|
private |
Denied permissions
Definition at line 1024 of file RBAC.h.
Referenced by CalculateNewPermissions(), and ClearData().
|
private |
|
private |