X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FFileDeleteForm.php;h=e31f9d218d0e40201915bc7dafef864aaa8a4086;hb=326d52f9613c5227d75f97361be6ec6ef78b214e;hp=3e0595ebe4fb5dae884dc6872fac15d0e413f66b;hpb=28aebf8e06c58a9ee99f9434e3382caf3e4c7ae7;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/FileDeleteForm.php b/includes/FileDeleteForm.php index 3e0595ebe4..e31f9d218d 100644 --- a/includes/FileDeleteForm.php +++ b/includes/FileDeleteForm.php @@ -36,18 +36,18 @@ class FileDeleteForm { private $title = null; /** - * @var File + * @var LocalFile */ private $file = null; /** - * @var File + * @var LocalFile */ private $oldfile = null; private $oldimage = ''; /** - * @param File $file File object we're deleting + * @param LocalFile $file File object we're deleting */ public function __construct( $file ) { $this->title = $file->getTitle(); @@ -79,7 +79,9 @@ class FileDeleteForm { $this->oldimage = $wgRequest->getText( 'oldimage', false ); $token = $wgRequest->getText( 'wpEditToken' ); # Flag to hide all contents of the archived revisions - $suppress = $wgRequest->getCheck( 'wpSuppress' ) && $wgUser->isAllowed( 'suppressrevision' ); + $permissionManager = MediaWikiServices::getInstance()->getPermissionManager(); + $suppress = $wgRequest->getCheck( 'wpSuppress' ) && + $permissionManager->userHasRight( $wgUser, 'suppressrevision' ); if ( $this->oldimage ) { $this->oldfile = RepoGroup::singleton()->getLocalRepo()->newFromArchiveName( @@ -145,7 +147,7 @@ class FileDeleteForm { * Really delete the file * * @param Title &$title - * @param File &$file + * @param LocalFile &$file * @param string &$oldimage Archive name * @param string $reason Reason of the deletion * @param bool $suppress Whether to mark all deleted versions as restricted @@ -165,7 +167,7 @@ class FileDeleteForm { if ( $oldimage ) { $page = null; $status = $file->deleteOld( $oldimage, $reason, $suppress, $user ); - if ( $status->ok ) { + if ( $status->isOK() ) { // Need to do a log item $logComment = wfMessage( 'deletedrevision', $oldimage )->inContentLanguage()->text(); if ( trim( $reason ) != '' ) { @@ -179,7 +181,7 @@ class FileDeleteForm { $logEntry->setPerformer( $user ); $logEntry->setTarget( $title ); $logEntry->setComment( $logComment ); - $logEntry->setTags( $tags ); + $logEntry->addTags( $tags ); $logid = $logEntry->insert(); $logEntry->publish( $logid ); @@ -210,7 +212,7 @@ class FileDeleteForm { $logEntry->setPerformer( $user ); $logEntry->setTarget( clone $title ); $logEntry->setComment( $reason ); - $logEntry->setTags( $tags ); + $logEntry->addTags( $tags ); $logid = $logEntry->insert(); $dbw->onTransactionPreCommitOrIdle( function () use ( $logEntry, $logid ) { @@ -229,7 +231,6 @@ class FileDeleteForm { $lbFactory->rollbackMasterChanges( __METHOD__ ); } } else { - // Done; nothing changed $dbw->endAtomic( __METHOD__ ); } } @@ -246,9 +247,7 @@ class FileDeleteForm { */ private function showForm() { global $wgOut, $wgUser, $wgRequest; - - $conf = RequestContext::getMain()->getConfig(); - $oldCommentSchema = $conf->get( 'CommentTableSchemaMigrationStage' ) === MIGRATION_OLD; + $permissionManager = MediaWikiServices::getInstance()->getPermissionManager(); $wgOut->addModules( 'mediawiki.action.delete.file' ); @@ -256,16 +255,18 @@ class FileDeleteForm { $wgOut->enableOOUI(); + $fields = []; + + $fields[] = new OOUI\LabelWidget( [ 'label' => new OOUI\HtmlSnippet( + $this->prepareMessage( 'filedelete-intro' ) ) ] + ); + $options = Xml::listDropDownOptions( $wgOut->msg( 'filedelete-reason-dropdown' )->inContentLanguage()->text(), [ 'other' => $wgOut->msg( 'filedelete-reason-otherlist' )->inContentLanguage()->text() ] ); $options = Xml::listDropDownOptionsOoui( $options ); - $fields[] = new OOUI\LabelWidget( [ 'label' => new OOUI\HtmlSnippet( - $this->prepareMessage( 'filedelete-intro' ) ) ] - ); - $fields[] = new OOUI\FieldLayout( new OOUI\DropdownInputWidget( [ 'name' => 'wpDeleteReasonList', @@ -283,13 +284,13 @@ class FileDeleteForm { // HTML maxlength uses "UTF-16 code units", which means that characters outside BMP // (e.g. emojis) count for two each. This limit is overridden in JS to instead count - // Unicode codepoints (or 255 UTF-8 bytes for old schema). + // Unicode codepoints. $fields[] = new OOUI\FieldLayout( new OOUI\TextInputWidget( [ 'name' => 'wpReason', 'inputId' => 'wpReason', 'tabIndex' => 2, - 'maxLength' => $oldCommentSchema ? 255 : CommentStore::COMMENT_CHARACTER_LIMIT, + 'maxLength' => CommentStore::COMMENT_CHARACTER_LIMIT, 'infusable' => true, 'value' => $wgRequest->getText( 'wpReason' ), 'autofocus' => true, @@ -300,7 +301,7 @@ class FileDeleteForm { ] ); - if ( $wgUser->isAllowed( 'suppressrevision' ) ) { + if ( $permissionManager->userHasRight( $wgUser, 'suppressrevision' ) ) { $fields[] = new OOUI\FieldLayout( new OOUI\CheckboxInputWidget( [ 'name' => 'wpSuppress', @@ -374,7 +375,7 @@ class FileDeleteForm { ] ) ); - if ( $wgUser->isAllowed( 'editinterface' ) ) { + if ( $permissionManager->userHasRight( $wgUser, 'editinterface' ) ) { $linkRenderer = MediaWikiServices::getInstance()->getLinkRenderer(); $link = $linkRenderer->makeKnownLink( $wgOut->msg( 'filedelete-reason-dropdown' )->inContentLanguage()->getTitle(), @@ -450,9 +451,9 @@ class FileDeleteForm { * value was provided, does it correspond to an * existing, local, old version of this file? * - * @param File &$file - * @param File &$oldfile - * @param File $oldimage + * @param LocalFile &$file + * @param LocalFile &$oldfile + * @param LocalFile $oldimage * @return bool */ public static function haveDeletableFile( &$file, &$oldfile, $oldimage ) {