X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2FRevision.php;h=22eb1150e361c245abd9565a606ecde4718c27ee;hp=d9d314946336ea1e6c8cc7f8d9fa2910a8673cf6;hb=a2c8c2969420a0f150c03f76e3a0bf9028fcda43;hpb=d256246c2ae337b5232235edb547f3a396e1cbc9 diff --git a/includes/Revision.php b/includes/Revision.php index d9d3149463..22eb1150e3 100644 --- a/includes/Revision.php +++ b/includes/Revision.php @@ -29,7 +29,6 @@ use MediaWiki\Storage\RevisionStore; use MediaWiki\Storage\RevisionStoreRecord; use MediaWiki\Storage\SlotRecord; use MediaWiki\Storage\SqlBlobStore; -use MediaWiki\User\UserIdentityValue; use Wikimedia\Rdbms\IDatabase; use MediaWiki\Linker\LinkTarget; use MediaWiki\MediaWikiServices; @@ -316,7 +315,18 @@ class Revision implements IDBAccessObject { * @return array */ public static function userJoinCond() { + global $wgActorTableSchemaMigrationStage; + wfDeprecated( __METHOD__, '1.31' ); + if ( $wgActorTableSchemaMigrationStage > MIGRATION_WRITE_BOTH ) { + // If code is using this instead of self::getQueryInfo(), there's + // no way the join it's trying to do can work once the old fields + // aren't being written anymore. + throw new BadMethodCallException( + 'Cannot use ' . __METHOD__ . ' when $wgActorTableSchemaMigrationStage > MIGRATION_WRITE_BOTH' + ); + } + return [ 'LEFT JOIN', [ 'rev_user != 0', 'user_id = rev_user' ] ]; } @@ -339,7 +349,17 @@ class Revision implements IDBAccessObject { * @return array */ public static function selectFields() { - global $wgContentHandlerUseDB; + global $wgContentHandlerUseDB, $wgActorTableSchemaMigrationStage; + + if ( $wgActorTableSchemaMigrationStage > MIGRATION_WRITE_BOTH ) { + // If code is using this instead of self::getQueryInfo(), there's a + // decent chance it's going to try to directly access + // $row->rev_user or $row->rev_user_text and we can't give it + // useful values here once those aren't being written anymore. + throw new BadMethodCallException( + 'Cannot use ' . __METHOD__ . ' when $wgActorTableSchemaMigrationStage > MIGRATION_WRITE_BOTH' + ); + } wfDeprecated( __METHOD__, '1.31' ); @@ -350,6 +370,7 @@ class Revision implements IDBAccessObject { 'rev_timestamp', 'rev_user_text', 'rev_user', + 'rev_actor' => 'NULL', 'rev_minor_edit', 'rev_deleted', 'rev_len', @@ -374,7 +395,17 @@ class Revision implements IDBAccessObject { * @return array */ public static function selectArchiveFields() { - global $wgContentHandlerUseDB; + global $wgContentHandlerUseDB, $wgActorTableSchemaMigrationStage; + + if ( $wgActorTableSchemaMigrationStage > MIGRATION_WRITE_BOTH ) { + // If code is using this instead of self::getQueryInfo(), there's a + // decent chance it's going to try to directly access + // $row->ar_user or $row->ar_user_text and we can't give it + // useful values here once those aren't being written anymore. + throw new BadMethodCallException( + 'Cannot use ' . __METHOD__ . ' when $wgActorTableSchemaMigrationStage > MIGRATION_WRITE_BOTH' + ); + } wfDeprecated( __METHOD__, '1.31' ); @@ -387,6 +418,7 @@ class Revision implements IDBAccessObject { 'ar_timestamp', 'ar_user_text', 'ar_user', + 'ar_actor' => 'NULL', 'ar_minor_edit', 'ar_deleted', 'ar_len', @@ -623,7 +655,7 @@ class Revision implements IDBAccessObject { */ public function setUserIdAndName( $id, $name ) { if ( $this->mRecord instanceof MutableRevisionRecord ) { - $user = new UserIdentityValue( intval( $id ), $name ); + $user = User::newFromAnyId( intval( $id ), $name, null ); $this->mRecord->setUser( $user ); } else { throw new MWException( __METHOD__ . ' is not supported on this instance' ); @@ -906,11 +938,6 @@ class Revision implements IDBAccessObject { return $this->mRecord->getContent( 'main', $audience, $user ); } catch ( RevisionAccessException $e ) { - wfDebugLog( - 'T184670', - __METHOD__ . ": Cannot get content: " . $e->getMessage() . - "\n" . $e->getTraceAsString() - ); return null; } }