Add 'reason' to UserGroupsChanged hook
authorStephane Bisson <sbisson@wikimedia.org>
Mon, 8 Feb 2016 22:06:33 +0000 (17:06 -0500)
committerStephane Bisson <sbisson@wikimedia.org>
Fri, 12 Feb 2016 19:54:35 +0000 (14:54 -0500)
Used by Echo to display the reason in the 'user-rights' notifications

Bug: T126277
Change-Id: Ib9bb28a7a77602e3e729fd0bf13ab8259e15b006

docs/hooks.txt
includes/specials/SpecialUserrights.php
includes/user/User.php

index 0fe888f..038df91 100644 (file)
@@ -3285,6 +3285,8 @@ $user: User whose groups changed
 $added: Groups added
 $removed: Groups removed
 $performer: User who performed the change, false if via autopromotion
+$reason: The reason, if any, given by the user performing the change,
+false if via autopromotion.
 
 'UserIsBlockedFrom': Check if a user is blocked from a specific page (for
 specific block exemptions).
index 7351c33..205b67e 100644 (file)
@@ -292,7 +292,7 @@ class UserrightsPage extends SpecialPage {
                $user->invalidateCache();
 
                // update groups in external authentication database
-               Hooks::run( 'UserGroupsChanged', array( $user, $add, $remove, $this->getUser() ) );
+               Hooks::run( 'UserGroupsChanged', array( $user, $add, $remove, $this->getUser(), $reason ) );
                $wgAuth->updateExternalDBGroups( $user, $add, $remove );
 
                wfDebug( 'oldGroups: ' . print_r( $oldGroups, true ) . "\n" );
index 749ec46..95e5ceb 100644 (file)
@@ -1387,7 +1387,7 @@ class User implements IDBAccessObject {
                        $this->addGroup( $group );
                }
                // update groups in external authentication database
-               Hooks::run( 'UserGroupsChanged', array( $this, $toPromote, array(), false ) );
+               Hooks::run( 'UserGroupsChanged', array( $this, $toPromote, array(), false, false ) );
                $wgAuth->updateExternalDBGroups( $this, $toPromote );
 
                $newGroups = array_merge( $oldGroups, $toPromote ); // all groups