ApiQueryRevisions::getRollbackToken - pass RevisionRecord

Not actually used, but need to deprecate passing Revision

Bug: T249561
Change-Id: Ic4ce2fce64a2f3c8a0c70490599be2022b9f8903
This commit is contained in:
DannyS712 2020-06-25 03:32:46 +00:00
parent 9132b2e372
commit 4de1be2eb0
2 changed files with 27 additions and 3 deletions

View file

@ -1184,6 +1184,9 @@ because of Phabricator reports.
the second parameter, and the suppression option the third parameter. the second parameter, and the suppression option the third parameter.
Previously, the third parameter was unused. Using the old signature is Previously, the third parameter was unused. Using the old signature is
hard deprecated. hard deprecated.
* ApiQueryRevisions::getRollbackToken, which has been soft deprecated since
1.24, accepted as its third parameter a Revision object. It now accepts
a RevisionRecord, and passing a Revision is hard deprecated.
* Passing Article to ParserCache::get() was deprecated * Passing Article to ParserCache::get() was deprecated
* ParserOptions::newCanonical() with no first parameter, or null as the first * ParserOptions::newCanonical() with no first parameter, or null as the first
parameter, which falls back to using global $wgUser, is hard deprecated. parameter, which falls back to using global $wgUser, is hard deprecated.

View file

@ -72,10 +72,15 @@ class ApiQueryRevisions extends ApiQueryRevisionsBase {
* @deprecated since 1.24 * @deprecated since 1.24
* @param int $pageid * @param int $pageid
* @param Title $title * @param Title $title
* @param Revision $rev * @param RevisionRecord|Revision $rev (passing a Revision hard deprecated since 1.35)
* @return bool|string * @return bool|string
*/ */
public static function getRollbackToken( $pageid, $title, $rev ) { public static function getRollbackToken( $pageid, $title, $rev ) {
if ( $rev instanceof Revision ) {
// Don't actually need to use the Revision(Record), just emit warnings
wfDeprecated( __METHOD__ . ' with a Revision object', '1.35' );
}
global $wgUser; global $wgUser;
if ( !MediaWikiServices::getInstance()->getPermissionManager() if ( !MediaWikiServices::getInstance()->getPermissionManager()
->userHasRight( $wgUser, 'rollback' ) ) { ->userHasRight( $wgUser, 'rollback' ) ) {
@ -420,10 +425,26 @@ class ApiQueryRevisions extends ApiQueryRevisionsBase {
if ( $this->token !== null ) { if ( $this->token !== null ) {
$title = Title::newFromLinkTarget( $revision->getPageAsLinkTarget() ); $title = Title::newFromLinkTarget( $revision->getPageAsLinkTarget() );
$revisionCompat = new Revision( $revision );
$tokenFunctions = $this->getTokenFunctions(); $tokenFunctions = $this->getTokenFunctions();
foreach ( $this->token as $t ) { foreach ( $this->token as $t ) {
$val = call_user_func( $tokenFunctions[$t], $title->getArticleID(), $title, $revisionCompat ); if ( $t === 'rollback' ) {
$val = call_user_func(
$tokenFunctions[$t],
$title->getArticleID(),
$title,
$revision
);
} else {
// Token function added via APIQueryRevisionsTokens,
// Hook is hard deprecated, so any use of
// Revision objects is okay
$val = call_user_func(
$tokenFunctions[$t],
$title->getArticleID(),
$title,
new Revision( $revision )
);
}
if ( $val === false ) { if ( $val === false ) {
$this->addWarning( [ 'apiwarn-tokennotallowed', $t ] ); $this->addWarning( [ 'apiwarn-tokennotallowed', $t ] );
} else { } else {