MGChecker has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/320782

Change subject: Introduce separate log action for deleting pages on move
......................................................................

Introduce separate log action for deleting pages on move

Since T106119, moves that overwrite a redirect produce a deletion log entry. It 
should be possible
to identify such deletions within other ones. Note that this patch only applies 
for actions in
the future because there is no way to easily identify these cases for the 
software (until now). It
Iwould be useful to backport this to MW .28 to prevent changes in log_action 
deletesin other wikis.

Bug: T145991
Change-Id: I3c006bca57351d82031c4fdce0c53f65d630b0d9
---
M includes/DefaultSettings.php
M includes/MovePage.php
M includes/changes/RecentChange.php
M includes/logging/DeleteLogFormatter.php
M includes/logging/LogFormatter.php
M includes/page/WikiPage.php
M languages/i18n/en.json
M languages/i18n/qqq.json
8 files changed, 19 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/82/320782/1

diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php
index 9d8ccf8..8f34e59 100644
--- a/includes/DefaultSettings.php
+++ b/includes/DefaultSettings.php
@@ -7510,6 +7510,7 @@
        'contentmodel/change' => 'ContentModelLogFormatter',
        'contentmodel/new' => 'ContentModelLogFormatter',
        'delete/delete' => 'DeleteLogFormatter',
+       'delete/delete_redir' => 'DeleteLogFormatter',
        'delete/event' => 'DeleteLogFormatter',
        'delete/restore' => 'DeleteLogFormatter',
        'delete/revision' => 'DeleteLogFormatter',
@@ -7561,6 +7562,7 @@
        ],
        'delete' => [
                'delete' => [ 'delete' ],
+               'delete_redir' => [ 'delete_redir' ],
                'restore' => [ 'restore' ],
                'event' => [ 'event' ],
                'revision' => [ 'revision' ],
diff --git a/includes/MovePage.php b/includes/MovePage.php
index a8f6f8e..cbb4651 100644
--- a/includes/MovePage.php
+++ b/includes/MovePage.php
@@ -457,7 +457,9 @@
                                $nt->getArticleID(),
                                /* $commit */ false,
                                $errs,
-                               $user
+                               $user,
+                               [],
+                               'delete_redir'
                        );
 
                        if ( !$status->isGood() ) {
diff --git a/includes/changes/RecentChange.php 
b/includes/changes/RecentChange.php
index 1262f2c..81f64a8 100644
--- a/includes/changes/RecentChange.php
+++ b/includes/changes/RecentChange.php
@@ -762,6 +762,7 @@
                # # Get pageStatus for email notification
                switch ( $type . '-' . $action ) {
                        case 'delete-delete':
+                       case 'delete-delete_redir':
                                $pageStatus = 'deleted';
                                break;
                        case 'move-move':
diff --git a/includes/logging/DeleteLogFormatter.php 
b/includes/logging/DeleteLogFormatter.php
index c205626..dc9378f 100644
--- a/includes/logging/DeleteLogFormatter.php
+++ b/includes/logging/DeleteLogFormatter.php
@@ -122,6 +122,7 @@
 
                switch ( $this->entry->getSubtype() ) {
                        case 'delete': // Show undelete link
+                       case 'delete_redir':
                                if ( $user->isAllowed( 'undelete' ) ) {
                                        $message = 'undeletelink';
                                } else {
diff --git a/includes/logging/LogFormatter.php 
b/includes/logging/LogFormatter.php
index a64fee1..ef55f31 100644
--- a/includes/logging/LogFormatter.php
+++ b/includes/logging/LogFormatter.php
@@ -230,6 +230,10 @@
                                                $text = wfMessage( 
'deletedarticle' )
                                                        ->rawParams( $target 
)->inContentLanguage()->escaped();
                                                break;
+                                       case 'delete_redir':
+                                               $text = wfMessage( 
'deletedarticle_redir' )
+                                                       ->rawParams( $target 
)->inContentLanguage()->escaped();
+                                               break;
                                        case 'restore':
                                                $text = wfMessage( 
'undeletedarticle' )
                                                        ->rawParams( $target 
)->inContentLanguage()->escaped();
diff --git a/includes/page/WikiPage.php b/includes/page/WikiPage.php
index a5ac78f..4a81bb3 100644
--- a/includes/page/WikiPage.php
+++ b/includes/page/WikiPage.php
@@ -2861,7 +2861,7 @@
         */
        public function doDeleteArticleReal(
                $reason, $suppress = false, $u1 = null, $u2 = null, &$error = 
'', User $user = null,
-               $tags = []
+               $tags = [], $logsubtype = 'delete'
        ) {
                global $wgUser, $wgContentHandlerUseDB;
 
@@ -2992,7 +2992,7 @@
                // Log the deletion, if the page was suppressed, put it in the 
suppression log instead
                $logtype = $suppress ? 'suppress' : 'delete';
 
-               $logEntry = new ManualLogEntry( $logtype, 'delete' );
+               $logEntry = new ManualLogEntry( $logtype, $logsubtype );
                $logEntry->setPerformer( $user );
                $logEntry->setTarget( $logTitle );
                $logEntry->setComment( $reason );
diff --git a/languages/i18n/en.json b/languages/i18n/en.json
index a033edd..b5cbe25 100644
--- a/languages/i18n/en.json
+++ b/languages/i18n/en.json
@@ -3825,6 +3825,7 @@
        "htmlform-user-not-valid": "<strong>$1</strong> isn't a valid 
username.",
        "rawmessage": "$1",
        "logentry-delete-delete": "$1 {{GENDER:$2|deleted}} page $3",
+       "logentry-delete-delete": "$1 {{GENDER:$2|deleted}} redirect $3 by 
overwriting",
        "logentry-delete-restore": "$1 {{GENDER:$2|restored}} page $3",
        "logentry-delete-event": "$1 {{GENDER:$2|changed}} visibility of 
{{PLURAL:$5|a log event|$5 log events}} on $3: $4",
        "logentry-delete-revision": "$1 {{GENDER:$2|changed}} visibility of 
{{PLURAL:$5|a revision|$5 revisions}} on page $3: $4",
@@ -3901,6 +3902,7 @@
        "revdelete-log-message": "$1 for $2 {{PLURAL:$2|revision|revisions}}",
        "logdelete-log-message": "$1 for $2 {{PLURAL:$2|event|events}}",
        "deletedarticle": "deleted \"[[$1]]\"",
+       "deletedarticle_redir": "deleted \"[[$1]]\" by overwriting a redirect",
        "suppressedarticle": "suppressed \"[[$1]]\"",
        "undeletedarticle": "restored \"[[$1]]\"",
        "patrol-log-line": "marked $1 of $2 patrolled $3",
@@ -4130,6 +4132,7 @@
        "log-action-filter-contentmodel-change": "Change of Contentmodel",
        "log-action-filter-contentmodel-new": "Creation of page with 
non-standard Contentmodel",
        "log-action-filter-delete-delete": "Page deletion",
+       "log-action-filter-delete-delete_redir": "Redirect overwrite",
        "log-action-filter-delete-restore": "Page undeletion",
        "log-action-filter-delete-event": "Log deletion",
        "log-action-filter-delete-revision": "Revision deletion",
diff --git a/languages/i18n/qqq.json b/languages/i18n/qqq.json
index 8e2b441..c518f82 100644
--- a/languages/i18n/qqq.json
+++ b/languages/i18n/qqq.json
@@ -4009,6 +4009,7 @@
        "htmlform-user-not-valid": "Error message shown if the name provided by 
the user isn't a valid username. $1 is the username.",
        "rawmessage": "{{notranslate}} Used to pass arbitrary text as a message 
specifier array",
        "logentry-delete-delete": "{{Logentry|[[Special:Log/delete]]}}",
+       "logentry-delete-delete_redir": "{{Logentry|[[Special:Log/delete]]}}",
        "logentry-delete-restore": "{{Logentry|[[Special:Log/delete]]}}",
        "logentry-delete-event": 
"{{Logentry|[[Special:Log/delete]]}}\n{{Logentryparam}}\n* $5 - count of 
affected log events",
        "logentry-delete-revision": 
"{{Logentry|[[Special:Log/delete]]}}\n{{Logentryparam}}\n* $5 - the number of 
affected revisions of the page $3",
@@ -4085,6 +4086,7 @@
        "revdelete-log-message": "This log message is used together with 
{{msg-mw|revdelete-logentry}} in the deletion or suppression logs when changing 
visibility restrictions for page revisions.\n\nParameters:\n* $1 - any one of 
the following\n** {{msg-mw|revdelete-hid}} (when hiding data)\n** 
{{msg-mw|revdelete-unhid}} (when unhiding data)\n** 
{{msg-mw|revdelete-restricted}} (when applying restrictions for sysops)\n** 
{{msg-mw|revdelete-unrestricted}} (when removing restrictions for sysops)\n** a 
combination of those messages\n* $2 - the number of revisions for which the 
restrictions are changed\n\nPlease note that the parameters in a log entry will 
appear in the log only in the default language of the wiki. View 
[[Special:Log]] for examples on translatewiki.net with English default 
language.\n\nSee also:\n* {{msg-mw|Logdelete-log-message}}",
        "logdelete-log-message": "This log message appears in brackets after 
the message {{msg-mw|logdelete-logentry}} in the deletion or suppression logs 
when changing the visibility of a log entry for events. For a brief description 
of the process of changing the visibility of events and their log entries see 
this [http://www.mediawiki.org/wiki/RevisionDelete mediawiki 
explanation].\n\nParameters:\n* $1 - any one of the following\n** 
{{msg-mw|revdelete-hid}} (when hiding data)\n** {{msg-mw|revdelete-unhid}} 
(when unhiding data)\n** {{msg-mw|revdelete-restricted}} (when applying 
restrictions for sysops)\n** {{msg-mw|revdelete-unrestricted}} (when removing 
restrictions for sysops)\n** a combination of those messages\n* $2 - the number 
of events for which the restrictions are changed\n\nPlease note that the 
parameters in a log entry will appear in the log only in the default language 
of the wiki. View [[Special:Log]] for examples on translatewiki.net with 
English default language.\n\nSee also:\n* {{msg-mw|Revdelete-log-message}}",
        "deletedarticle": "This is a ''logentry'' message. Parameters:\n* $1 - 
deleted page name\n{{Identical|Deleted}}",
+       "deletedarticle_redir": "This is a ''logentry'' message. Parameters:\n* 
$1 - deleted page name\n{{Identical|Deleted}}",
        "suppressedarticle": "Part of a 
[[mw:Manual:RevisionDelete|RevisionDelete]] log entry. Parameters:\n* $1 - 
suppressed page name\n{{Identical|Suppressed}}",
        "undeletedarticle": "This is a ''logentry'' message. Parameters:\n* $1 
- restored (undeleted) page name",
        "patrol-log-line": "Text of notes on entries in the 
[{{FULLURL:Special:Log|type=patrol}} patrol log].\nParameters:\n* $1 - the link 
whose text is {{msg-mw|patrol-log-diff}}\n* $2 - the name of the page\n* $3 - 
appears to be {{msg-mw|Patrol-log-auto}} (at least sometimes)\n\nThe message 
appears after the name of the patroller.",
@@ -4314,6 +4316,7 @@
        "log-action-filter-contentmodel-change": 
"{{doc-log-action-filter-action|contentmodel|change}}",
        "log-action-filter-contentmodel-new": 
"{{doc-log-action-filter-action|contentmodel|new}}",
        "log-action-filter-delete-delete": 
"{{doc-log-action-filter-action|delete|delete}}",
+       "log-action-filter-delete-delete_redir": 
"{{doc-log-action-filter-action|delete|delete_redir}}",
        "log-action-filter-delete-restore": 
"{{doc-log-action-filter-action|delete|restore}}",
        "log-action-filter-delete-event": 
"{{doc-log-action-filter-action|delete|event}}",
        "log-action-filter-delete-revision": 
"{{doc-log-action-filter-action|delete|revision}}",

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I3c006bca57351d82031c4fdce0c53f65d630b0d9
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: MGChecker <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to