(bug 35839) Check permisions for revdel blocks
authorcsteipp <csteipp@wikimedia.org>
Wed, 8 Aug 2012 17:04:10 +0000 (10:04 -0700)
committercsteipp <csteipp@wikimedia.org>
Tue, 14 Aug 2012 14:08:08 +0000 (07:08 -0700)
If a block includes the "Hide username" to revdel the username, check
that the user has permission to 'hideuser' before showing the reason
for the block.

Other metadata about the block (expiration, limits) will still be visible
to admins.

Change-Id: I50a49ea6876b99a944d27f7c34910f0aa47556c3

includes/specials/SpecialBlock.php

index b6484ce..504839a 100644 (file)
@@ -258,7 +258,13 @@ class SpecialBlock extends FormSpecialPage {
                                $fields['DisableUTEdit']['default'] = $block->prevents( 'editownusertalk' );
                        }
 
-                       $fields['Reason']['default'] = $block->mReason;
+                       // If the username was hidden (ipb_deleted == 1), don't show the reason
+                       // unless this user also has rights to hideuser: Bug 35839
+                       if ( !$block->mHideName || $this->getUser()->isAllowed( 'hideuser' ) ) {
+                               $fields['Reason']['default'] = $block->mReason;
+                       } else {
+                               $fields['Reason']['default'] = '';
+                       }
 
                        if( $this->getRequest()->wasPosted() ){
                                # Ok, so we got a POST submission asking us to reblock a user.  So show the