X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=maintenance%2FrollbackEdits.php;h=878eb9b09db4046f562e0a1ce15529561826420b;hp=5ad7d4e1c4eea5ceee79260d935c1a5216eaf8d4;hb=021ed39d59b3a2edcaea70edb03778eb0bdc36d4;hpb=1e3c2e5904d628c001a8d65909b135ea9bf042aa diff --git a/maintenance/rollbackEdits.php b/maintenance/rollbackEdits.php index 5ad7d4e1c4..878eb9b09d 100644 --- a/maintenance/rollbackEdits.php +++ b/maintenance/rollbackEdits.php @@ -50,7 +50,7 @@ class RollbackEdits extends Maintenance { $user = $this->getOption( 'user' ); $username = User::isIP( $user ) ? $user : User::getCanonicalName( $user ); if ( !$username ) { - $this->error( 'Invalid username', true ); + $this->fatalError( 'Invalid username' ); } $bot = $this->hasOption( 'bot' ); @@ -91,25 +91,31 @@ class RollbackEdits extends Maintenance { /** * Get all pages that should be rolled back for a given user - * @param string $user A name to check against rev_user_text + * @param string $user A name to check against * @return array */ private function getRollbackTitles( $user ) { $dbr = $this->getDB( DB_REPLICA ); $titles = []; - $results = $dbr->select( - [ 'page', 'revision' ], - [ 'page_namespace', 'page_title' ], - [ 'page_latest = rev_id', 'rev_user_text' => $user ], - __METHOD__ - ); - foreach ( $results as $row ) { - $titles[] = Title::makeTitle( $row->page_namespace, $row->page_title ); + $actorQuery = ActorMigration::newMigration() + ->getWhere( $dbr, 'rev_user', User::newFromName( $user, false ) ); + foreach ( $actorQuery['orconds'] as $cond ) { + $results = $dbr->select( + [ 'page', 'revision' ] + $actorQuery['tables'], + [ 'page_namespace', 'page_title' ], + [ $cond ], + __METHOD__, + [], + [ 'revision' => [ 'JOIN', 'page_latest = rev_id' ] ] + $actorQuery['joins'] + ); + foreach ( $results as $row ) { + $titles[] = Title::makeTitle( $row->page_namespace, $row->page_title ); + } } return $titles; } } -$maintClass = 'RollbackEdits'; +$maintClass = RollbackEdits::class; require_once RUN_MAINTENANCE_IF_MAIN;