* @file
*/
+use MediaWiki\MediaWikiServices;
+use MediaWiki\Revision\RevisionStore;
+
/**
* @ingroup API
* @since 1.25
*/
class ApiTag extends ApiBase {
+ /** @var RevisionStore */
+ private $revisionStore;
+
public function execute() {
+ $this->revisionStore = MediaWikiServices::getInstance()->getRevisionStore();
+
$params = $this->extractRequestParams();
$user = $this->getUser();
// make sure the user is allowed
$this->checkUserRightsAny( 'changetags' );
- if ( $user->isBlocked() ) {
- $this->dieBlocked( $user->getBlock() );
+ // @TODO Use PermissionManager::isBlockedFrom() instead.
+ $block = $user->getBlock();
+ if ( $block ) {
+ $this->dieBlocked( $block );
}
// Check if user can add tags
if ( $params['tags'] ) {
$ableToTag = ChangeTags::canAddTagsAccompanyingChange( $params['tags'], $user );
- if ( !$ableToTag->isOk() ) {
+ if ( !$ableToTag->isOK() ) {
$this->dieStatus( $ableToTag );
}
}
$valid = RecentChange::newFromId( $id );
break;
case 'revid':
- $valid = Revision::newFromId( $id );
+ $valid = $this->revisionStore->getRevisionById( $id );
break;
case 'logid':
$valid = self::validateLogId( $id );