4 * Try to make sure that extensions register all rights in $wgAvailableRights
5 * or via the 'UserGetAllRights' hook.
7 * @author Marius Hoch < hoo@online.de >
9 class AvailableRightsTest
extends PHPUnit_Framework_TestCase
{
12 * Returns all rights that should be in $wgAvailableRights + all rights
13 * registered via the 'UserGetAllRights' hook + all "core" rights.
17 private function getAllVisibleRights() {
18 global $wgGroupPermissions, $wgRevokePermissions;
20 $rights = User
::getAllRights();
22 foreach ( $wgGroupPermissions as $permissions ) {
23 $rights = array_merge( $rights, array_keys( $permissions ) );
26 foreach ( $wgRevokePermissions as $permissions ) {
27 $rights = array_merge( $rights, array_keys( $permissions ) );
30 $rights = array_unique( $rights );
36 public function testAvailableRights() {
37 $missingRights = array_diff(
38 $this->getAllVisibleRights(),
44 // Re-index to produce nicer output, keys are meaningless.
45 array_values( $missingRights ),
46 'Additional user rights need to be added to $wgAvailableRights or ' .
47 'via the "UserGetAllRights" hook. See the instructions at: ' .
48 'https://www.mediawiki.org/wiki/Manual:User_rights#Adding_new_rights'