Chad has uploaded a new change for review.

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

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 possibleto 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).

Bug: T145991
Change-Id: I3c006bca57351d82031c4fdce0c53f65d630b0d9
(cherry picked from commit 2ee4c67286010daec62b56bdf15f4e839315ac60)
---
M includes/DefaultSettings.php
M includes/MovePage.php
M includes/changes/RecentChange.php
M includes/logging/DeleteLogFormatter.php
M includes/page/WikiPage.php
M languages/i18n/en.json
M languages/i18n/qqq.json
7 files changed, 13 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/97/323497/1

diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php
index 89b0d0b..c37364d 100644
--- a/includes/DefaultSettings.php
+++ b/includes/DefaultSettings.php
@@ -7507,6 +7507,7 @@
        'contentmodel/change' => 'ContentModelLogFormatter',
        'contentmodel/new' => 'ContentModelLogFormatter',
        'delete/delete' => 'DeleteLogFormatter',
+       'delete/delete_redir' => 'DeleteLogFormatter',
        'delete/event' => 'DeleteLogFormatter',
        'delete/restore' => 'DeleteLogFormatter',
        'delete/revision' => 'DeleteLogFormatter',
@@ -7558,6 +7559,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/page/WikiPage.php b/includes/page/WikiPage.php
index 54bc6f6..977a08a 100644
--- a/includes/page/WikiPage.php
+++ b/includes/page/WikiPage.php
@@ -2863,7 +2863,7 @@
         */
        public function doDeleteArticleReal(
                $reason, $suppress = false, $u1 = null, $u2 = null, &$error = 
'', User $user = null,
-               $tags = []
+               $tags = [], $logsubtype = 'delete'
        ) {
                global $wgUser, $wgContentHandlerUseDB;
 
@@ -2999,7 +2999,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 6e1aec4..5326203 100644
--- a/languages/i18n/en.json
+++ b/languages/i18n/en.json
@@ -3820,6 +3820,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_redir": "$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",
@@ -4125,6 +4126,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 7c70351..87fc9eb 100644
--- a/languages/i18n/qqq.json
+++ b/languages/i18n/qqq.json
@@ -4004,6 +4004,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",
@@ -4309,6 +4310,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/323497
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: REL1_28
Gerrit-Owner: Chad <[email protected]>
Gerrit-Reviewer: MGChecker <[email protected]>

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

Reply via email to