jenkins-bot has submitted this change and it was merged. Change subject: Show a confirmation message on Special:UserRights ......................................................................
Show a confirmation message on Special:UserRights If the rights was saved, show a Special:Preferences-like success-box on top of the page, which indicates, that the user rights was saved successfully. Bug: T103361 Change-Id: I19646e9a1b0b31b4fbfe0fa2c8f775f8a2a67a83 --- M includes/specials/SpecialUserrights.php M languages/i18n/en.json M languages/i18n/qqq.json 3 files changed, 24 insertions(+), 8 deletions(-) Approvals: Siebrand: Looks good to me, approved jenkins-bot: Verified diff --git a/includes/specials/SpecialUserrights.php b/includes/specials/SpecialUserrights.php index 1ed392f..a6fe1b5 100644 --- a/includes/specials/SpecialUserrights.php +++ b/includes/specials/SpecialUserrights.php @@ -31,6 +31,10 @@ # either a GET parameter or a subpage-style parameter, so have a member # variable for it. protected $mTarget; + /* + * @var null|User $mFetchedUser The user object of the target username or null. + */ + protected $mFetchedUser = null; protected $isself = false; public function __construct() { @@ -75,6 +79,8 @@ // any groups, it's a bit silly to give them the user search prompt. $user = $this->getUser(); + $request = $this->getRequest(); + $out = $this->getOutput(); /* * If the user is blocked and they only have "partial" access @@ -84,8 +90,6 @@ if ( $user->isBlocked() && !$user->isAllowed( 'userrights' ) ) { throw new UserBlockedError( $user->getBlock() ); } - - $request = $this->getRequest(); if ( $par !== null ) { $this->mTarget = $par; @@ -110,13 +114,17 @@ $this->isself = true; } + $fetchedStatus = $this->fetchUser( $this->mTarget ); + if ( $fetchedStatus->isOk() ) { + $this->mFetchedUser = $fetchedStatus->value; + } + if ( !$this->userCanChangeRights( $user, true ) ) { if ( $this->isself && $request->getCheck( 'success' ) ) { // bug 48609: if the user just removed its own rights, this would // leads it in a "permissions error" page. In that case, show a // message that it can't anymore use this page instead of an error $this->setHeaders(); - $out = $this->getOutput(); $out->wrapWikiMsg( "<div class=\"successbox\">\n$1\n</div>", 'userrights-removed-self' ); $out->returnToMain(); @@ -128,12 +136,19 @@ throw new PermissionsError( null, array( array( $msg ) ) ); } + // show a successbox, if the user rights was saved successfully + if ( $request->getCheck( 'success' ) && $this->mFetchedUser !== null ) { + $out->wrapWikiMsg( + "<div class=\"successbox\">\n$1\n</div>", + array( 'savedrights', $this->mFetchedUser->getName() ) + ); + } + $this->checkReadOnly(); $this->setHeaders(); $this->outputHeader(); - $out = $this->getOutput(); $out->addModuleStyles( 'mediawiki.special' ); $this->addHelpLink( 'Help:Assigning permissions' ); @@ -149,14 +164,13 @@ $user->matchEditToken( $request->getVal( 'wpEditToken' ), $this->mTarget ) ) { // save settings - $status = $this->fetchUser( $this->mTarget ); - if ( !$status->isOK() ) { - $this->getOutput()->addWikiText( $status->getWikiText() ); + if ( !$fetchedStatus->isOK() ) { + $this->getOutput()->addWikiText( $fetchedStatus->getWikiText() ); return; } - $targetUser = $status->value; + $targetUser = $this->mFetchedUser; if ( $targetUser instanceof User ) { // UserRightsProxy doesn't have this method (bug 61252) $targetUser->clearInstanceCache(); // bug 38989 } diff --git a/languages/i18n/en.json b/languages/i18n/en.json index 8dbf024..8e6ae3d 100644 --- a/languages/i18n/en.json +++ b/languages/i18n/en.json @@ -986,6 +986,7 @@ "prefs-help-recentchangescount": "This includes recent changes, page histories, and logs.", "prefs-help-watchlist-token2": "This is the secret key to the web feed of your watchlist.\nAnyone who knows it will be able to read your watchlist, so do not share it.\nIf you need to, [[Special:ResetTokens|you can reset it]].", "savedprefs": "Your preferences have been saved.", + "savedrights": "The user rights of {{GENDER:$1|$1}} have been saved.", "timezonelegend": "Time zone:", "localtime": "Local time:", "timezoneuseserverdefault": "Use wiki default ($1)", diff --git a/languages/i18n/qqq.json b/languages/i18n/qqq.json index bb248bd..a6e9c22 100644 --- a/languages/i18n/qqq.json +++ b/languages/i18n/qqq.json @@ -1159,6 +1159,7 @@ "prefs-help-recentchangescount": "Used in [[Special:Preferences]], tab \"Recent changes\".", "prefs-help-watchlist-token2": "Used in [[Special:Preferences]], tab Watchlist. (Formerly in {{msg-mw|prefs-help-watchlist-token}}.)", "savedprefs": "This message appears after saving changes to your user preferences.", + "savedrights": "This message appears after saving the user rights on [[Special:UserRights]].\n* $1 - The user name of the user which rights was saved.", "timezonelegend": "{{Identical|Time zone}}", "localtime": "Used as label in [[Special:Preferences#mw-prefsection-datetime|preferences]].", "timezoneuseserverdefault": "[[Special:Preferences]] > Date and time > Time zone\n\nThis option lets your time zone setting use the one that is used on the wiki (often UTC).\n\nParameters:\n* $1 - timezone name, or timezone offset (in \"%+03d:%02d\" format)", -- To view, visit https://gerrit.wikimedia.org/r/244811 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I19646e9a1b0b31b4fbfe0fa2c8f775f8a2a67a83 Gerrit-PatchSet: 4 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: Florianschmidtwelzow <florian.schmidt.stargatewis...@gmail.com> Gerrit-Reviewer: Siebrand <siebr...@kitano.nl> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits