Manual:Hooks/UserGetRights

From MediaWiki.org

Jump to: navigation, search
UserGetRights
Available from version 1.11.0
Dynamically adds to or removes from a user the rights implied by their group membership

*Define function:
function fnMyHook(&$user, &$aRights) { ... }

*Attach hook:
$wgHooks['UserGetRights'][] = 'fnMyHook';
Called from: User.php

*For more information about attaching hooks, see Manual:Hooks.
*For examples of extensions using this hook, see Category:UserGetRights extensions.


[edit] Use cases

The UserGetRights hook permits the implementation of a user rights scheme along side of MediaWiki's built-in group-based permissions architecture. It can be used to create extensions that

  • implement a hierarchical group system where groups can inherit rights from a collection of groups.
  • implement an exclude rights rule - users are associated with groups whose rights the do not have.
  • add or exclude rights associated with a user rather than a group
  • define context based rights - e.g. the same user might have different rights depending on whether they are accessing the wiki via :localhost:, via a VPN, or via the public internet.
  • any other scheme available to the programmer's imagination

[edit] Background

MediaWiki's built-in permissions architecture uses group-based permissions. Users are assigned to groups; groups are assigned rights; users in inherit rights from every group to which they are assigned. This hook can be used to override or supplement the core permissions architecture.

[edit] Usage

Hooks modify the rights available to the user by adding or removing elements to $aRights. The hook should always return true so that other functions attached to this hook will have a chance to run.

Personal tools