From 81486e15eeb95a238677919fef1baa2a12bb4b43 Mon Sep 17 00:00:00 2001 From: Brad Jorsch Date: Tue, 31 Dec 2013 09:24:13 -0500 Subject: [PATCH] Do not reveal RevDeled file title When an file is being uploaded, we tell the user if it has been uploaded and deleted in the past. But we shouldn't reveal the title under which that was done if the file was suppressed via RevDel. Note this introduces a breaking API change: clients may now receive a "deleted-archive" warning with an empty value if the title was suppressed. Bug: 59167 Change-Id: I01a3ac2ba0cbac6b28de26a7f1a1d09b6b02097e --- includes/specials/SpecialUpload.php | 11 ++++++++--- includes/upload/UploadBase.php | 6 +++++- languages/messages/MessagesEn.php | 2 ++ languages/messages/MessagesQqq.php | 9 ++++++++- maintenance/language/messages.inc | 1 + 5 files changed, 24 insertions(+), 5 deletions(-) diff --git a/includes/specials/SpecialUpload.php b/includes/specials/SpecialUpload.php index 5175ec9769..27ba78e101 100644 --- a/includes/specials/SpecialUpload.php +++ b/includes/specials/SpecialUpload.php @@ -348,9 +348,14 @@ class SpecialUpload extends SpecialPage { } elseif ( $warning == 'duplicate' ) { $msg = $this->getDupeWarning( $args ); } elseif ( $warning == 'duplicate-archive' ) { - $msg = "\t
  • " . $this->msg( 'file-deleted-duplicate', - Title::makeTitle( NS_FILE, $args )->getPrefixedText() )->parse() - . "
  • \n"; + if ( $args === '' ) { + $msg = "\t
  • " . $this->msg( 'file-deleted-duplicate-notitle' )->parse() + . "
  • \n"; + } else { + $msg = "\t
  • " . $this->msg( 'file-deleted-duplicate', + Title::makeTitle( NS_FILE, $args )->getPrefixedText() )->parse() + . "
  • \n"; + } } else { if ( $args === true ) { $args = array(); diff --git a/includes/upload/UploadBase.php b/includes/upload/UploadBase.php index 9f34f9c8a1..4c8148a777 100644 --- a/includes/upload/UploadBase.php +++ b/includes/upload/UploadBase.php @@ -655,7 +655,11 @@ abstract class UploadBase { // Check dupes against archives $archivedImage = new ArchivedFile( null, 0, "{$hash}.{$this->mFinalExtension}" ); if ( $archivedImage->getID() > 0 ) { - $warnings['duplicate-archive'] = $archivedImage->getName(); + if ( $archivedImage->userCan( File::DELETED_FILE ) ) { + $warnings['duplicate-archive'] = $archivedImage->getName(); + } else { + $warnings['duplicate-archive'] = ''; + } } wfProfileOut( __METHOD__ ); diff --git a/languages/messages/MessagesEn.php b/languages/messages/MessagesEn.php index 30c41e559e..e27ed07557 100644 --- a/languages/messages/MessagesEn.php +++ b/languages/messages/MessagesEn.php @@ -2327,6 +2327,8 @@ If you still want to upload your file, please go back and use a new name. 'file-exists-duplicate' => 'This file is a duplicate of the following {{PLURAL:$1|file|files}}:', 'file-deleted-duplicate' => "A file identical to this file ([[:$1]]) has previously been deleted. You should check that file's deletion history before proceeding to re-upload it.", +'file-deleted-duplicate-notitle' => "A file identical to this file has previously been deleted, and the title has been suppressed. +You should ask someone with the ability to view suppressed file data to review the situation before proceeding to re-upload it.", 'uploadwarning' => 'Upload warning', 'uploadwarning-text' => 'Please modify the file description below and try again.', 'savefile' => 'Save file', diff --git a/languages/messages/MessagesQqq.php b/languages/messages/MessagesQqq.php index 295fb336b9..4f8608ae49 100644 --- a/languages/messages/MessagesQqq.php +++ b/languages/messages/MessagesQqq.php @@ -4041,7 +4041,14 @@ This message is followed by the gallery of the duplicate files. Parameters: * $1 - number of duplicate files', 'file-deleted-duplicate' => 'Used in [[Special:Upload]. Parameters: -* $1 - page title of the file', +* $1 - page title of the file + +See also: +* {{msg-mw|file-deleted-duplicate-notitle}}', +'file-deleted-duplicate-notitle' => 'Used in [[Special:Upload] when the title of the deleted duplicate is not available. + +See also: +* {{msg-mw|file-deleted-duplicate}}', 'uploadwarning' => 'Used as section header in [[Special:Upload]].', 'uploadwarning-text' => 'Used in [[Special:Upload]].', 'savefile' => 'When uploading a file', diff --git a/maintenance/language/messages.inc b/maintenance/language/messages.inc index b6af033dfb..ca0519a9d9 100644 --- a/maintenance/language/messages.inc +++ b/maintenance/language/messages.inc @@ -1414,6 +1414,7 @@ $wgMessageStructure = array( 'fileexists-shared-forbidden', 'file-exists-duplicate', 'file-deleted-duplicate', + 'file-deleted-duplicate-notitle', 'uploadwarning', 'uploadwarning-text', 'savefile', -- 2.20.1