filebackend: use self:: instead of FileBackend:: for some constant uses
[lhc/web/wiklou.git] / includes / FileDeleteForm.php
index 8866a88..1241e1c 100644 (file)
@@ -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 ) {
@@ -245,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' );
 
@@ -255,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',
@@ -282,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,
@@ -299,7 +301,7 @@ class FileDeleteForm {
                        ]
                );
 
-               if ( $wgUser->isAllowed( 'suppressrevision' ) ) {
+               if ( $permissionManager->userHasRight( $wgUser, 'suppressrevision' ) ) {
                        $fields[] = new OOUI\FieldLayout(
                                new OOUI\CheckboxInputWidget( [
                                        'name' => 'wpSuppress',
@@ -373,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(),