From: Happy-melon Date: Fri, 11 Mar 2011 23:33:36 +0000 (+0000) Subject: First little bit of cleaning out the Augean stables of SpecialBlockip.php: spin out... X-Git-Tag: 1.31.0-rc.0~31511 X-Git-Url: http://git.cyclocoop.org/?a=commitdiff_plain;ds=sidebyside;h=b14cde3ca72904b438033b8372640ed037c8f459;p=lhc%2Fweb%2Fwiklou.git First little bit of cleaning out the Augean stables of SpecialBlockip.php: spin out the suppressUserName/unsuppressUserName functions into their own file, to keep them with the rest of the RevDel stuff. --- diff --git a/includes/AutoLoader.php b/includes/AutoLoader.php index ecbea714ee..74212adc1b 100644 --- a/includes/AutoLoader.php +++ b/includes/AutoLoader.php @@ -630,6 +630,7 @@ $wgAutoloadLocalClasses = array( 'RandomPage' => 'includes/specials/SpecialRandompage.php', 'SpecialRevisionDelete' => 'includes/specials/SpecialRevisiondelete.php', 'RevisionDeleter' => 'includes/revisiondelete/RevisionDeleter.php', + 'RevisionDeleteUser' => 'includes/revisiondelete/RevisionDeleteUser.php', 'RevDel_List' => 'includes/revisiondelete/RevisionDeleteAbstracts.php', 'RevDel_Item' => 'includes/revisiondelete/RevisionDeleteAbstracts.php', 'RevDel_RevisionList' => 'includes/revisiondelete/RevisionDelete.php', @@ -647,6 +648,7 @@ $wgAutoloadLocalClasses = array( 'SpecialActiveUsers' => 'includes/specials/SpecialActiveusers.php', 'SpecialAllpages' => 'includes/specials/SpecialAllpages.php', 'SpecialBlankpage' => 'includes/specials/SpecialBlankpage.php', + 'SpecialBlock' => 'includes/specials/SpecialBlock.php', 'SpecialBlockme' => 'includes/specials/SpecialBlockme.php', 'SpecialBookSources' => 'includes/specials/SpecialBooksources.php', 'SpecialCategories' => 'includes/specials/SpecialCategories.php', diff --git a/includes/LogEventsList.php b/includes/LogEventsList.php index 4a6db2bdb4..c4496facc9 100644 --- a/includes/LogEventsList.php +++ b/includes/LogEventsList.php @@ -602,7 +602,7 @@ class LogEventsList { /** * Show log extract. Either with text and a box (set $msgKey) or without (don't set $msgKey) * - * @param $out OutputPage or String-by-reference + * @param $out OutputPage|String-by-reference * @param $types String or Array * @param $page String The page title to show log entries for * @param $user String The user who made the log entries diff --git a/includes/revisiondelete/RevisionDeleteUser.php b/includes/revisiondelete/RevisionDeleteUser.php new file mode 100644 index 0000000000..8de74859f8 --- /dev/null +++ b/includes/revisiondelete/RevisionDeleteUser.php @@ -0,0 +1,127 @@ +getDBkey(); + + # Hide name from live edits + $dbw->update( + 'revision', + array( "rev_deleted = rev_deleted $op $delUser" ), + array( 'rev_user' => $userId ), + __METHOD__ ); + + # Hide name from deleted edits + $dbw->update( + 'archive', + array( "ar_deleted = ar_deleted $op $delUser" ), + array( 'ar_user_text' => $name ), + __METHOD__ + ); + + # Hide name from logs + $dbw->update( + 'logging', + array( "log_deleted = log_deleted $op $delUser" ), + array( 'log_user' => $userId, "log_type != 'suppress'" ), + __METHOD__ + ); + $dbw->update( + 'logging', + array( "log_deleted = log_deleted $op $delAction" ), + array( 'log_namespace' => NS_USER, 'log_title' => $userDbKey, + "log_type != 'suppress'" ), + __METHOD__ + ); + + # Hide name from RC + $dbw->update( + 'recentchanges', + array( "rc_deleted = rc_deleted $op $delUser" ), + array( 'rc_user_text' => $name ), + __METHOD__ + ); + $dbw->update( + 'recentchanges', + array( "rc_deleted = rc_deleted $op $delAction" ), + array( 'rc_namespace' => NS_USER, 'rc_title' => $userDbKey, 'rc_logid > 0' ), + __METHOD__ + ); + + # Hide name from live images + $dbw->update( + 'oldimage', + array( "oi_deleted = oi_deleted $op $delUser" ), + array( 'oi_user_text' => $name ), + __METHOD__ + ); + + # Hide name from deleted images + # WMF - schema change pending + # $dbw->update( 'filearchive', array( "fa_deleted = fa_deleted $op $delUser" ), + # array( 'fa_user_text' => $name ), __METHOD__ ); + # Done! + return true; + } + + public static function suppressUserName( $name, $userId, $dbw = null ) { + return self::setUsernameBitfields( $name, $userId, '|', $dbw ); + } + + public static function unsuppressUserName( $name, $userId, $dbw = null ) { + return self::setUsernameBitfields( $name, $userId, '&', $dbw ); + } +} \ No newline at end of file diff --git a/includes/specials/SpecialBlockip.php b/includes/specials/SpecialBlockip.php index 1e2fd5eea3..9b11a5c0aa 100644 --- a/includes/specials/SpecialBlockip.php +++ b/includes/specials/SpecialBlockip.php @@ -398,7 +398,7 @@ class IPBlockForm extends SpecialPage { * bug 15810: blocked admins should not be able to block/unblock * others, and probably shouldn't be able to unblock themselves * either. - * @param $user User, Int or String + * @param $user User|Int|String */ public static function checkUnblockSelf( $user ) { global $wgUser; @@ -558,7 +558,7 @@ class IPBlockForm extends SpecialPage { $log_action = 'reblock'; # Unset _deleted fields if requested if( $currentBlock->mHideName && !$this->BlockHideName ) { - self::unsuppressUserName( $this->BlockAddress, $userId ); + RevisionDeleteUser::unsuppressUserName( $this->BlockAddress, $userId ); } } } else { @@ -568,7 +568,7 @@ class IPBlockForm extends SpecialPage { # Set *_deleted fields if requested if( $this->BlockHideName ) { - self::suppressUserName( $this->BlockAddress, $userId ); + RevisionDeleteUser::suppressUserName( $this->BlockAddress, $userId ); } # Only show watch link when this is no range block @@ -598,60 +598,14 @@ class IPBlockForm extends SpecialPage { } } + # @deprecated @since 1.18 public static function suppressUserName( $name, $userId, $dbw = null ) { - $op = '|'; // bitwise OR - return self::setUsernameBitfields( $name, $userId, $op, $dbw ); + return RevisionDeleteUser::suppressUserName( $name, $userId, $dbw ); } + # @deprecated @since 1.18 public static function unsuppressUserName( $name, $userId, $dbw = null ) { - $op = '&'; // bitwise AND - return self::setUsernameBitfields( $name, $userId, $op, $dbw ); - } - - private static function setUsernameBitfields( $name, $userId, $op, $dbw ) { - if( $op !== '|' && $op !== '&' ) return false; // sanity check - if( !$dbw ) - $dbw = wfGetDB( DB_MASTER ); - $delUser = Revision::DELETED_USER | Revision::DELETED_RESTRICTED; - $delAction = LogPage::DELETED_ACTION | Revision::DELETED_RESTRICTED; - # Normalize user name - $userTitle = Title::makeTitleSafe( NS_USER, $name ); - $userDbKey = $userTitle->getDBkey(); - # To suppress, we OR the current bitfields with Revision::DELETED_USER - # to put a 1 in the username *_deleted bit. To unsuppress we AND the - # current bitfields with the inverse of Revision::DELETED_USER. The - # username bit is made to 0 (x & 0 = 0), while others are unchanged (x & 1 = x). - # The same goes for the sysop-restricted *_deleted bit. - if( $op == '&' ) { - $delUser = "~{$delUser}"; - $delAction = "~{$delAction}"; - } - # Hide name from live edits - $dbw->update( 'revision', array( "rev_deleted = rev_deleted $op $delUser" ), - array( 'rev_user' => $userId ), __METHOD__ ); - # Hide name from deleted edits - $dbw->update( 'archive', array( "ar_deleted = ar_deleted $op $delUser" ), - array( 'ar_user_text' => $name ), __METHOD__ ); - # Hide name from logs - $dbw->update( 'logging', array( "log_deleted = log_deleted $op $delUser" ), - array( 'log_user' => $userId, "log_type != 'suppress'" ), __METHOD__ ); - $dbw->update( 'logging', array( "log_deleted = log_deleted $op $delAction" ), - array( 'log_namespace' => NS_USER, 'log_title' => $userDbKey, - "log_type != 'suppress'" ), __METHOD__ ); - # Hide name from RC - $dbw->update( 'recentchanges', array( "rc_deleted = rc_deleted $op $delUser" ), - array( 'rc_user_text' => $name ), __METHOD__ ); - $dbw->update( 'recentchanges', array( "rc_deleted = rc_deleted $op $delAction" ), - array( 'rc_namespace' => NS_USER, 'rc_title' => $userDbKey, 'rc_logid > 0' ), __METHOD__ ); - # Hide name from live images - $dbw->update( 'oldimage', array( "oi_deleted = oi_deleted $op $delUser" ), - array( 'oi_user_text' => $name ), __METHOD__ ); - # Hide name from deleted images - # WMF - schema change pending - # $dbw->update( 'filearchive', array( "fa_deleted = fa_deleted $op $delUser" ), - # array( 'fa_user_text' => $name ), __METHOD__ ); - # Done! - return true; + return RevisionDeleteUser::unsuppressUserName( $name, $userId, $dbw ); } /** diff --git a/includes/specials/SpecialIpblocklist.php b/includes/specials/SpecialIpblocklist.php index 67e799536c..d7c6f3295f 100644 --- a/includes/specials/SpecialIpblocklist.php +++ b/includes/specials/SpecialIpblocklist.php @@ -239,7 +239,7 @@ class IPUnblockForm extends SpecialPage { # Unset _deleted fields as needed if( $block->mHideName ) { - IPBlockForm::unsuppressUserName( $block->mAddress, $block->mUser ); + RevisionDeleteUser::unsuppressUserName( $block->mAddress, $block->mUser ); } # Make log entry