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