Anomie has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/358405 )

Change subject: FileDeleteForm: Create log entry even if the page didn't exist
......................................................................

FileDeleteForm: Create log entry even if the page didn't exist

Deleting a file with no description page should still produce a log
entry.

Change-Id: Icc7d9d12365d38faa502689ceefb4d1ee5f60210
---
M includes/FileDeleteForm.php
1 file changed, 21 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/05/358405/1

diff --git a/includes/FileDeleteForm.php b/includes/FileDeleteForm.php
index f284d92..e7b4a1f 100644
--- a/includes/FileDeleteForm.php
+++ b/includes/FileDeleteForm.php
@@ -202,7 +202,27 @@
                        if ( $deleteStatus->isOK() ) {
                                $status = $file->delete( $reason, $suppress, 
$user );
                                if ( $status->isOK() ) {
-                                       $status->value = $deleteStatus->value; 
// log id
+                                       if ( $deleteStatus->value === null ) {
+                                               // No log ID from 
doDeleteArticleReal(), probably
+                                               // because the page/revision 
didn't exist, so create
+                                               // one here.
+                                               $logtype = $suppress ? 
'suppress' : 'delete';
+                                               $logEntry = new ManualLogEntry( 
$logtype, 'delete' );
+                                               $logEntry->setPerformer( $user 
);
+                                               $logEntry->setTarget( clone 
$title );
+                                               $logEntry->setComment( $reason 
);
+                                               $logEntry->setTags( $tags );
+                                               $logid = $logEntry->insert();
+                                               
$dbw->onTransactionPreCommitOrIdle(
+                                                       function () use ( $dbw, 
$logEntry, $logid ) {
+                                                               
$logEntry->publish( $logid );
+                                                       },
+                                                       __METHOD__
+                                               );
+                                               $status->value = $logid;
+                                       } else {
+                                               $status->value = 
$deleteStatus->value; // log id
+                                       }
                                        $dbw->endAtomic( __METHOD__ );
                                } else {
                                        // Page deleted but file still there? 
rollback page delete

-- 
To view, visit https://gerrit.wikimedia.org/r/358405
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Icc7d9d12365d38faa502689ceefb4d1ee5f60210
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Anomie <bjor...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to