Vogone has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/139277

Change subject: Split suppressrevision into two user rights
......................................................................

Split suppressrevision into two user rights

In this change, a new passive user right named "viewsuppressed"
which can be used in order to view suppressed page content was added
to MediaWiki core.
Furthermore, this right was also added to the list of available rights
and to en.json where also the description of the "suppressrevision"
right was adjusted to reflect reality.

Bug: 20476
Change-Id: Id1baacb9c782763db5e05ef8b5c1b761997efcc9
---
M includes/Revision.php
M includes/User.php
M languages/i18n/en.json
3 files changed, 10 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/77/139277/1

diff --git a/includes/Revision.php b/includes/Revision.php
index 06f5bd0..6932493 100644
--- a/includes/Revision.php
+++ b/includes/Revision.php
@@ -1652,19 +1652,19 @@
         * @return bool
         */
        public static function userCanBitfield( $bitfield, $field, User $user = 
null ) {
-               if ( $bitfield & $field ) { // aspect is deleted
-                       if ( $bitfield & self::DELETED_RESTRICTED ) {
-                               $permission = 'suppressrevision';
+               if( $bitfield & $field ) { // aspect is deleted
+                       if ( $user === null ) {
+                               global $wgUser;
+                               $user = $wgUser;
+                       }
+                       if ( $bitfield & self::DELETED_RESTRICTED) {
+                               $permission = $user->isAllowed( 
'suppressrevision' ) ? 'suppressrevision' : 'viewsuppressed';
                        } elseif ( $field & self::DELETED_TEXT ) {
                                $permission = 'deletedtext';
                        } else {
                                $permission = 'deletedhistory';
                        }
                        wfDebug( "Checking for $permission due to $field match 
on $bitfield\n" );
-                       if ( $user === null ) {
-                               global $wgUser;
-                               $user = $wgUser;
-                       }
                        return $user->isAllowed( $permission );
                } else {
                        return true;
diff --git a/includes/User.php b/includes/User.php
index f2d3d9b..641c76c 100644
--- a/includes/User.php
+++ b/includes/User.php
@@ -174,6 +174,7 @@
                'userrights-interwiki',
                'viewmyprivateinfo',
                'viewmywatchlist',
+               'viewsuppressed',
                'writeapi',
        );
 
diff --git a/languages/i18n/en.json b/languages/i18n/en.json
index df4a05f..7b08f49 100644
--- a/languages/i18n/en.json
+++ b/languages/i18n/en.json
@@ -1101,7 +1101,8 @@
        "right-deletedtext": "View deleted text and changes between deleted 
revisions",
        "right-browsearchive": "Search deleted pages",
        "right-undelete": "Undelete a page",
-       "right-suppressrevision": "Review and restore revisions hidden from 
administrators",
+       "right-suppressrevision": "View, hide and unhide specific revisions of 
pages from any user",
+       "right-viewsuppressed": "View revisions hidden from any user",
        "right-suppressionlog": "View private logs",
        "right-block": "Block other users from editing",
        "right-blockemail": "Block a user from sending email",

-- 
To view, visit https://gerrit.wikimedia.org/r/139277
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id1baacb9c782763db5e05ef8b5c1b761997efcc9
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Vogone <leon.liese...@wikipedia.de>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to