69 {
"account", rbacAccountCommandTable },
75 {
"rbac", rbacCommandTable },
89 return {
rbac,
true };
95 account = AccountIdentifier::FromTarget(handler);
114 *realmId, account->GetID(), account->GetName());
118 *realmId, account->GetID(), account->GetName());
122 *realmId, account->GetID(), account->GetName());
137 account = AccountIdentifier::FromTarget(handler);
156 *realmId, account->GetID(), account->GetName());
160 *realmId, account->GetID(), account->GetName());
164 *realmId, account->GetID(), account->GetName());
179 account = AccountIdentifier::FromTarget(handler);
198 *realmId, account->GetID(), account->GetName());
202 *realmId, account->GetID(), account->GetName());
217 account = AccountIdentifier::FromTarget(handler);
229 for (
uint32 grantedId : granted)
242 for (
uint32 deniedId : denied)
250 if (defaultPermissions.empty())
254 for (
uint32 defaultPermission : defaultPermissions)
270 for (
auto const& [_, permission] : permissions)
@ LANG_RBAC_PERM_GRANTED_IN_LIST
@ LANG_RBAC_LIST_PERMISSIONS_HEADER
@ LANG_RBAC_PERM_DENIED_IN_GRANTED_LIST
@ LANG_RBAC_LIST_HEADER_BY_SEC_LEVEL
@ LANG_RBAC_PERM_REVOKED_NOT_IN_LIST
@ LANG_RBAC_LIST_PERMS_LINKED_HEADER
@ LANG_RBAC_PERM_DENIED_IN_LIST
@ LANG_RBAC_LIST_HEADER_DENIED
@ LANG_RBAC_PERM_GRANTED_IN_DENIED_LIST
@ LANG_RBAC_WRONG_PARAMETER_ID
@ LANG_RBAC_LIST_HEADER_GRANTED
std::optional< T > Optional
Optional helper class to wrap optional values within.
static uint32 GetSecurity(uint32 accountId, int32 realmId)
void PSendSysMessage(const char *fmt, Args &&... args)
void SetSentErrorMessage(bool val)
bool HasLowerSecurityAccount(WorldSession *target, uint32 account, bool strong=false)
virtual char const * GetTrinityString(uint32 entry) const
rbac::RBACData * GetRBACData()
RBACPermissionContainer const & GetDeniedPermissions() const
Returns all the denied permissions.
RBACCommandResult GrantPermission(uint32 permissionId, int32 realmId=0)
uint32 GetId() const
Gets the Id of the Object.
RBACPermissionContainer const & GetGrantedPermissions() const
Returns all the granted permissions.
RBACCommandResult DenyPermission(uint32 permissionId, int32 realmId=0)
uint8 GetSecurityLevel() const
Returns the security level assigned.
std::string const & GetName() const
Gets the Name of the Object.
RBACCommandResult RevokePermission(uint32 permissionId, int32 realmId=0)
std::string const & GetName() const
Gets the Name of the Object.
RBACPermissionContainer const & GetLinkedPermissions() const
Gets the Permissions linked to this permission.
uint32 GetId() const
Gets the Id of the Object.
static bool HandleRBACPermRevokeCommand(ChatHandler *handler, Optional< AccountIdentifier > account, uint32 permId, Optional< int32 > realmId)
static bool HandleRBACPermListCommand(ChatHandler *handler, Optional< AccountIdentifier > account)
static bool HandleRBACPermGrantCommand(ChatHandler *handler, Optional< AccountIdentifier > account, uint32 permId, Optional< int32 > realmId)
ChatCommandTable GetCommands() const override
static bool HandleRBACListPermissionsCommand(ChatHandler *handler, Optional< uint32 > permId)
static bool HandleRBACPermDenyCommand(ChatHandler *handler, Optional< AccountIdentifier > account, uint32 permId, Optional< int32 > realmId)
static RBACCommandData GetRBACData(AccountIdentifier account)
void AddSC_rbac_commandscript()
std::vector< ChatCommandBuilder > ChatCommandTable
std::map< uint32, rbac::RBACPermission * > RBACPermissionsContainer
@ RBAC_PERM_COMMAND_RBAC_ACC_PERM_GRANT
@ RBAC_PERM_COMMAND_RBAC_ACC_PERM_DENY
@ RBAC_PERM_COMMAND_RBAC_ACC_PERM_REVOKE
@ RBAC_PERM_COMMAND_RBAC_ACC_PERM_LIST
@ RBAC_PERM_COMMAND_RBAC_LIST
@ RBAC_CANT_ADD_ALREADY_ADDED
@ RBAC_ID_DOES_NOT_EXISTS
@ RBAC_CANT_REVOKE_NOT_IN_LIST
std::set< uint32 > RBACPermissionContainer
RBACCommandData(rbac::RBACData *rbac_, bool needDelete_)
RBACCommandData(RBACCommandData const &)=delete
Battlenet::RealmHandle Id
std::string const & GetName() const
WorldSession * GetConnectedSession()