X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2Frevisiondelete%2FRevisionDeleteUser.php;h=6291e8d91e03619f0f44c6967f5eb5b9ac7d1cec;hb=27c61fb1e94da9114314468fd00bcf129ec064b6;hp=7812fb9819ef21711331361413c28765aca9ef55;hpb=2dd58ade75d15a5895c0c010e17b6f729a0f72fe;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/revisiondelete/RevisionDeleteUser.php b/includes/revisiondelete/RevisionDeleteUser.php index 7812fb9819..6291e8d91e 100644 --- a/includes/revisiondelete/RevisionDeleteUser.php +++ b/includes/revisiondelete/RevisionDeleteUser.php @@ -42,6 +42,8 @@ class RevisionDeleteUser { * @return bool */ private static function setUsernameBitfields( $name, $userId, $op, $dbw ) { + global $wgActorTableSchemaMigrationStage; + if ( !$userId || ( $op !== '|' && $op !== '&' ) ) { return false; // sanity check } @@ -65,43 +67,120 @@ class RevisionDeleteUser { $userTitle = Title::makeTitleSafe( NS_USER, $name ); $userDbKey = $userTitle->getDBkey(); - # Hide name from live edits - $dbw->update( - 'revision', - [ self::buildSetBitDeletedField( 'rev_deleted', $op, $delUser, $dbw ) ], - [ 'rev_user' => $userId ], - __METHOD__ ); + if ( $wgActorTableSchemaMigrationStage < MIGRATION_NEW ) { + # Hide name from live edits + $dbw->update( + 'revision', + [ self::buildSetBitDeletedField( 'rev_deleted', $op, $delUser, $dbw ) ], + [ 'rev_user' => $userId ], + __METHOD__ ); - # Hide name from deleted edits - $dbw->update( - 'archive', - [ self::buildSetBitDeletedField( 'ar_deleted', $op, $delUser, $dbw ) ], - [ 'ar_user_text' => $name ], - __METHOD__ - ); + # Hide name from deleted edits + $dbw->update( + 'archive', + [ self::buildSetBitDeletedField( 'ar_deleted', $op, $delUser, $dbw ) ], + [ 'ar_user_text' => $name ], + __METHOD__ + ); - # Hide name from logs - $dbw->update( - 'logging', - [ self::buildSetBitDeletedField( 'log_deleted', $op, $delUser, $dbw ) ], - [ 'log_user' => $userId, 'log_type != ' . $dbw->addQuotes( 'suppress' ) ], - __METHOD__ - ); + # Hide name from logs + $dbw->update( + 'logging', + [ self::buildSetBitDeletedField( 'log_deleted', $op, $delUser, $dbw ) ], + [ 'log_user' => $userId, 'log_type != ' . $dbw->addQuotes( 'suppress' ) ], + __METHOD__ + ); + + # Hide name from RC + $dbw->update( + 'recentchanges', + [ self::buildSetBitDeletedField( 'rc_deleted', $op, $delUser, $dbw ) ], + [ 'rc_user_text' => $name ], + __METHOD__ + ); + + # Hide name from live images + $dbw->update( + 'oldimage', + [ self::buildSetBitDeletedField( 'oi_deleted', $op, $delUser, $dbw ) ], + [ 'oi_user_text' => $name ], + __METHOD__ + ); + + # Hide name from deleted images + $dbw->update( + 'filearchive', + [ self::buildSetBitDeletedField( 'fa_deleted', $op, $delUser, $dbw ) ], + [ 'fa_user_text' => $name ], + __METHOD__ + ); + } + + if ( $wgActorTableSchemaMigrationStage > MIGRATION_OLD ) { + $actorId = $dbw->selectField( 'actor', 'actor_id', [ 'actor_name' => $name ], __METHOD__ ); + if ( $actorId ) { + # Hide name from live edits + $subquery = $dbw->selectSQLText( + 'revision_actor_temp', 'revactor_rev', [ 'revactor_actor' => $actorId ], __METHOD__ + ); + $dbw->update( + 'revision', + [ self::buildSetBitDeletedField( 'rev_deleted', $op, $delUser, $dbw ) ], + [ "rev_id IN ($subquery)" ], + __METHOD__ ); + + # Hide name from deleted edits + $dbw->update( + 'archive', + [ self::buildSetBitDeletedField( 'ar_deleted', $op, $delUser, $dbw ) ], + [ 'ar_actor' => $actorId ], + __METHOD__ + ); + + # Hide name from logs + $dbw->update( + 'logging', + [ self::buildSetBitDeletedField( 'log_deleted', $op, $delUser, $dbw ) ], + [ 'log_actor' => $actorId, 'log_type != ' . $dbw->addQuotes( 'suppress' ) ], + __METHOD__ + ); + + # Hide name from RC + $dbw->update( + 'recentchanges', + [ self::buildSetBitDeletedField( 'rc_deleted', $op, $delUser, $dbw ) ], + [ 'rc_actor' => $actorId ], + __METHOD__ + ); + + # Hide name from live images + $dbw->update( + 'oldimage', + [ self::buildSetBitDeletedField( 'oi_deleted', $op, $delUser, $dbw ) ], + [ 'oi_actor' => $actorId ], + __METHOD__ + ); + + # Hide name from deleted images + $dbw->update( + 'filearchive', + [ self::buildSetBitDeletedField( 'fa_deleted', $op, $delUser, $dbw ) ], + [ 'fa_actor' => $actorId ], + __METHOD__ + ); + } + } + + # Hide log entries pointing to the user page $dbw->update( 'logging', [ self::buildSetBitDeletedField( 'log_deleted', $op, $delAction, $dbw ) ], [ 'log_namespace' => NS_USER, 'log_title' => $userDbKey, - 'log_type != ' . $dbw->addQuotes( 'suppress' ) ], + 'log_type != ' . $dbw->addQuotes( 'suppress' ) ], __METHOD__ ); - # Hide name from RC - $dbw->update( - 'recentchanges', - [ self::buildSetBitDeletedField( 'rc_deleted', $op, $delUser, $dbw ) ], - [ 'rc_user_text' => $name ], - __METHOD__ - ); + # Hide RC entries pointing to the user page $dbw->update( 'recentchanges', [ self::buildSetBitDeletedField( 'rc_deleted', $op, $delAction, $dbw ) ], @@ -109,21 +188,6 @@ class RevisionDeleteUser { __METHOD__ ); - # Hide name from live images - $dbw->update( - 'oldimage', - [ self::buildSetBitDeletedField( 'oi_deleted', $op, $delUser, $dbw ) ], - [ 'oi_user_text' => $name ], - __METHOD__ - ); - - # Hide name from deleted images - $dbw->update( - 'filearchive', - [ self::buildSetBitDeletedField( 'fa_deleted', $op, $delUser, $dbw ) ], - [ 'fa_user_text' => $name ], - __METHOD__ - ); # Done! return true; }