68 {
"account", rbacAccountCommandTable },
74 {
"rbac", rbacCommandTable },
88 return {
rbac,
true };
113 *realmId, account->GetID(), account->GetName());
117 *realmId, account->GetID(), account->GetName());
121 *realmId, account->GetID(), account->GetName());
155 *realmId, account->GetID(), account->GetName());
159 *realmId, account->GetID(), account->GetName());
163 *realmId, account->GetID(), account->GetName());
197 *realmId, account->GetID(), account->GetName());
201 *realmId, account->GetID(), account->GetName());
228 for (
uint32 grantedId : granted)
241 for (
uint32 deniedId : denied)
249 if (defaultPermissions.empty())
253 for (
uint32 defaultPermission : defaultPermissions)
269 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 SetSentErrorMessage(bool val)
void PSendSysMessage(char const *fmt, Args &&... args)
bool HasLowerSecurityAccount(WorldSession *target, uint32 account, bool strong=false)
virtual char const * GetTrinityString(uint32 entry) const
rbac::RBACData * GetRBACData() const
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
static Optional< AccountIdentifier > FromTarget(ChatHandler *handler)
std::string const & GetName() const
WorldSession * GetConnectedSession()