X-Git-Url: https://scripts.mit.edu/gitweb/autoinstallsdev/mediawiki.git/blobdiff_plain/74c929b24b048c9f1e31e17db757ae4195cd7673..dc9cc5d707f5a612938cc9371614cc41c328fda2:/includes/specials/SpecialUserrights.php diff --git a/includes/specials/SpecialUserrights.php b/includes/specials/SpecialUserrights.php index ce0097b2..90619109 100644 --- a/includes/specials/SpecialUserrights.php +++ b/includes/specials/SpecialUserrights.php @@ -96,11 +96,18 @@ class UserrightsPage extends SpecialPage { // save settings if( $wgRequest->getCheck( 'saveusergroups' ) ) { $reason = $wgRequest->getVal( 'user-reason' ); - if( $wgUser->matchEditToken( $wgRequest->getVal( 'wpEditToken' ), $this->mTarget ) ) { + $tok = $wgRequest->getVal( 'wpEditToken' ); + if( $wgUser->matchEditToken( $tok, $this->mTarget ) ) { $this->saveUserGroups( $this->mTarget, $reason ); + + global $wgOut; + + $url = $this->getSuccessURL(); + $wgOut->redirect( $url ); + return; } } } @@ -110,6 +117,10 @@ class UserrightsPage extends SpecialPage { $this->editUserGroupsForm( $this->mTarget ); } } + + function getSuccessURL() { + return $this->getTitle( $this->mTarget )->getFullURL(); + } /** * Save user groups changes in the database. @@ -231,9 +242,9 @@ class UserrightsPage extends SpecialPage { * @return mixed User, UserRightsProxy, or null */ function fetchUser( $username ) { - global $wgOut, $wgUser; + global $wgOut, $wgUser, $wgUserrightsInterwikiDelimiter; - $parts = explode( '@', $username ); + $parts = explode( $wgUserrightsInterwikiDelimiter, $username ); if( count( $parts ) < 2 ) { $name = trim( $username ); $database = '';