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
This commit is contained in:
MGChecker 2016-11-09 21:52:14 +01:00
parent 9b4cea6d2e
commit 2ee4c67286
7 changed files with 13 additions and 3 deletions

View file

@ -7510,6 +7510,7 @@ $wgLogActionsHandlers = [
'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 @@ $wgActionFilteredLogs = [
],
'delete' => [
'delete' => [ 'delete' ],
'delete_redir' => [ 'delete_redir' ],
'restore' => [ 'restore' ],
'event' => [ 'event' ],
'revision' => [ 'revision' ],

View file

@ -457,7 +457,9 @@ class MovePage {
$nt->getArticleID(),
/* $commit */ false,
$errs,
$user
$user,
[],
'delete_redir'
);
if ( !$status->isGood() ) {

View file

@ -762,6 +762,7 @@ class RecentChange {
# # Get pageStatus for email notification
switch ( $type . '-' . $action ) {
case 'delete-delete':
case 'delete-delete_redir':
$pageStatus = 'deleted';
break;
case 'move-move':

View file

@ -122,6 +122,7 @@ class DeleteLogFormatter extends LogFormatter {
switch ( $this->entry->getSubtype() ) {
case 'delete': // Show undelete link
case 'delete_redir':
if ( $user->isAllowed( 'undelete' ) ) {
$message = 'undeletelink';
} else {

View file

@ -2861,7 +2861,7 @@ class WikiPage implements Page, IDBAccessObject {
*/
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 @@ class WikiPage implements Page, IDBAccessObject {
// 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 );

View file

@ -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_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",
@ -4130,6 +4131,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",

View file

@ -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",
@ -4314,6 +4315,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}}",