Ir al final de los metadatos
Ir al inicio de los metadatos

Estás viendo una versión antigua de esta página. Ve a la versión actual.

Comparar con el actual Ver el historial de la página

« Anterior Versión 10 Siguiente »

RBAC gives more control of actions an account can perform


System defines

  • Permissions to perform some action
  • Roles: a set of permissions that have some relation
  • Groups: a set of roles that have some relation

Operations

  • Grant: Assign and allow
  • Deny: Assign and do not allow
  • Revoke: Remove

Precedence of operations

  1. Grant
  2. Deny

If you are granted some action by a role but you have denied that permission, the action can not be done.

Rules

  • Groups can only have roles
  • Roles can only have permissions
  • An account can be assigned granted and denied roles. Permissions inherited from roles are granted if roles is granted and denied if roles is denied
  • An account can be assigned granted and denied permissions
  • An account can have multiple groups, roles and permissions
  • An account can not have same role granted and denied at same time
  • An acconnt can not have same permission granted and denied at same time
  • Id 0 can not be used to define a group, role or permission

Permissions (default permissions)

IdNameDescription
1RBAC_PERM_INSTANT_LOGOUTInstantly logging out everywhere. Does not work while in combat, dueling or falling.
2RBAC_PERM_SKIP_QUEUESkip login queue.
3RBAC_PERM_JOIN_NORMAL_BGAllow joining normal battlegrounds.
4RBAC_PERM_JOIN_RANDOM_BGAllow joining random battlegrounds.
5RBAC_PERM_JOIN_ARENASAllow joining arenas.
6RBAC_PERM_JOIN_DUNGEON_FINDERAllow joining dungeon finder (LFD, LFG).
7RBAC_PERM_PLAYER_COMMANDSAllow the use of player commands. (Security level 0) (TEMP)
8RBAC_PERM_MODERATOR_COMMANDSAllow the use of moderator commands. (Security level 1) (TEMP)
9RBAC_PERM_GAMEMASTER_COMMANDSAllow the use of game-master commands. (Security level 2) (TEMP)
10RBAC_PERM_ADMINISTRATOR_COMMANDSAllow the use of administrator commands. (Security level 3) (TEMP)
11RBAC_PERM_LOG_GM_TRADELog GM trades
12free 
13RBAC_PERM_SKIP_CHECK_INSTANCE_REQUIRED_BOSSESSkip Instance required bosses check
14RBAC_PERM_SKIP_CHECK_CHARACTER_CREATION_TEAMMASKSkips character creation team mask check
15RBAC_PERM_SKIP_CHECK_CHARACTER_CREATION_CLASSMASKSkips character creation class mask check
16RBAC_PERM_SKIP_CHECK_CHARACTER_CREATION_RACEMASKSkips character creation race mask check
17RBAC_PERM_SKIP_CHECK_CHARACTER_CREATION_RESERVEDNAMESkips character creation reserved name check
18RBAC_PERM_SKIP_CHECK_CHARACTER_CREATION_HEROIC_CHARACTERSkips character creation heroic min level check
19RBAC_PERM_SKIP_CHECK_CHAT_CHANNEL_REQSkips needed requirements to use channel check
20RBAC_PERM_SKIP_CHECK_DISABLE_MAPSkip disable map check
21RBAC_PERM_SKIP_CHECK_MORE_TALENTS_THAN_ALLOWEDSkip reset talents when used more than allowed check
22RBAC_PERM_SKIP_CHECK_CHAT_SPAMSkip spam chat check
23RBAC_PERM_SKIP_CHECK_OVERSPEED_PINGSkip over-speed ping check
24RBAC_PERM_TWO_SIDE_CHARACTER_CREATIONCreation of two side faction characters in same account
25RBAC_PERM_TWO_SIDE_INTERACTION_CHATAllow say chat between factions
26RBAC_PERM_TWO_SIDE_INTERACTION_CHANNELAllow channel chat between factions
27RBAC_PERM_TWO_SIDE_INTERACTION_MAILTwo side mail interaction
28RBAC_PERM_TWO_SIDE_WHO_LISTSee two side who list
29RBAC_PERM_TWO_SIDE_ADD_FRIENDAdd friends of other faction
30RBAC_PERM_COMMANDS_SAVE_WITHOUT_DELAYSave character without delay with .save command
31RBAC_PERM_COMMANDS_USE_UNSTUCK_WITH_ARGSUse params with .unstuck command
32RBAC_PERM_COMMANDS_BE_ASSIGNED_TICKETCan be assigned tickets with .assign ticket command
33RBAC_PERM_COMMANDS_NOTIFY_COMMAND_NOT_FOUND_ERRORNotify if a command was not found
34RBAC_PERM_COMMANDS_APPEAR_IN_GM_LISTCheck if should appear in list using .gm ingame command
35RBAC_PERM_WHO_SEE_ALL_SEC_LEVELSSee all security levels with who command
36RBAC_PERM_CAN_FILTER_WHISPERSFilter whispers
37RBAC_PERM_CHAT_USE_STAFF_BADGEUse staff badge in chat
38RBAC_PERM_RESURRECT_WITH_FULL_HPSResurrect with full Health Points
39RBAC_PERM_RESTORE_SAVED_GM_STATERestore saved gm setting states
40RBAC_PERM_ALLOW_GM_FRIENDAllows to add a gm to friend list
41RBAC_PERM_USE_START_GM_LEVELUse Config option START_GM_LEVEL to assign new character level
42RBAC_PERM_OPCODE_WORLD_TELEPORTAllows to use CMSG_WORLD_TELEPORT opcode
43RBAC_PERM_OPCODE_WHOISAllows to use CMSG_WHOIS opcode
44RBAC_PERM_RECEIVE_GLOBAL_GM_TEXTMESSAGEReceive global GM messages/texts
45RBAC_PERM_SILENTLY_JOIN_CHANNELJoin channels without announce
46RBAC_PERM_CHANGE_CHANNEL_NOT_MODERATORChange channel settings without being channel moderator
47RBAC_PERM_CHECK_FOR_LOWER_SECURITYEnables lower security than target check

In-game commands

NameSyntaxDescription
.rbac accountSyntax: .rbac account [$account]

View permissions of selected player or given account

Note: Only those that affect current realm

Note: Shows real permissions after checking group and roles

.rbac account groupSyntax: .rbac account group [$account]

View groups of selected player or given account

Note: Only those that affect current realm

.rbac account group addSyntax: .rbac account group add [$account] #id [#realmId]

Add a group to selected player or given account.

#reamID may be -1 for all realms.

.rbac account group removeSyntax: .rbac account group remove [$account] #idRemove a group from selected player or given account.
.rbac account roleSyntax: .rbac account role [$account]

View roles of selected player or given account

Note: Only those that affect current real

Note: Only those directly granted or denied, does not include inherited roles from groups

.rbac account role grantSyntax: .rbac account role grant [$account] #id [#realmId]

Grant a role to selected player or given account.

#reamID may be -1 for all realms.

.rbac account role denySyntax: .rbac account role deny [$account] #id [#realmId]

Deny a role to selected player or given account.

#reamID may be -1 for all realms.

.rbac account role revokeSyntax: .rbac account role revoke [$account] #id

Remove a role from an account

Note: Removes the role from granted or denied roles

.rbac account permissionSyntax: .rbac account permission [$account]

View permissions of selected player or given account

Note: Only those that affect current realm

Note: Only those directly granted or denied, does not include inherited permissions from roles

.rbac account permission grantSyntax: .rbac account permission grant [$account] #id [#realmId]

Grant a permission to selected player or given account.

#reamID may be -1 for all realms.

.rbac account permission denySyntax: .rbac account permission deny [$account] #id [#realmId]

Deny a permission to selected player or given account.

#reamID may be -1 for all realms.

.rbac account permission revokeSyntax: .rbac account permission revoke [$account] #id

Remove a permission from an account

Note: Removes the permission from granted or denied permissions

.rbac list groupsSyntax: .rbac list groups [$id]

View list of all groups.

If $id is given will show group info and his inherited roles.

.rbac list rolesSyntax: .rbac list roles [$id]

View list of all roles.

If $id is given will show role info and his inherited permissions.

.rbac list permissionsSyntax: .rbac list permissions [$id]

View list of all permissions.

If $id is given will show only info for that permission.

Commands are not (yet) covered by RBAC (allowing, denying and revoking specific commands to roles and groups)

Related tables (`auth` database)

Table NameTable DescriptionField NameField TypeField Description
rbac_account_groupsAccount-Group relationaccountIdintAccount id
groupIdintGroup id
realmIdintRealm Id, -1 means all
rbac_account_permissionsAccount-Permission relationaccountIdintAccount id
permissionIdintPermission id
grantedintGranted = 1, Denied = 0
realmIdintRealm Id, -1 means all
rbac_account_rolesAccount-Role relationaccountIdintAccount id
roleIdintRole id
grantedintGranted = 1, Denied = 0
realmIdintRealm Id, -1 means all
rbac_group_rolesGroup-Role relationgroupIdintGroup id
roleIdintRole id
rbac_role_permissionsRole-Permission relationroleIdintRole id
permissionIdintPermission id
rbac_groupsGroup ListidintGroup id
nametextGroup name
rbac_permissionsPermission ListidintPermission id
nametextPermission name
rbac_rolesRoles listidintRole id
nametextRole name
rbac_security_level_groupsDefault groups to assign when an account is set gm levelsecIdintSecurity Level id
groupIdintGroup id

 

 

Suggestion

Create a web interface (in PHP or other accessible web technology) to ease the management of the RBAC system.

If simple and good enough, it could possibly be added to TrinityCore repository (/contrib/ directory)!

  • Sin etiquetas