summaryrefslogtreecommitdiff
path: root/includes/specials/SpecialUserrights.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/specials/SpecialUserrights.php')
-rw-r--r--includes/specials/SpecialUserrights.php17
1 files changed, 14 insertions, 3 deletions
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 = '';