From 53ad63aa970ed9e28a0ffac794f815c9d05a72a0 Mon Sep 17 00:00:00 2001 From: Reedy Date: Sun, 2 Mar 2025 00:02:56 +0000 Subject: [PATCH] RevDelList: Ensure setVisibility always includes itemStatuses in value if applicable Bug: T387638 Change-Id: Ia01d730be672ec44dda36772cf29e2f11890553c (cherry picked from commit ecb3175ac1c6b7d080beeb150144214ab61ddba2) --- includes/revisiondelete/RevDelList.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/includes/revisiondelete/RevDelList.php b/includes/revisiondelete/RevDelList.php index f04ef581b21..ccc9bd30805 100644 --- a/includes/revisiondelete/RevDelList.php +++ b/includes/revisiondelete/RevDelList.php @@ -143,6 +143,11 @@ abstract class RevDelList extends RevisionListBase { $comment = $params['comment']; $perItemStatus = $params['perItemStatus'] ?? false; + // T387638 - Always ensure ->value['itemStatuses'] is set if requested + if ( $perItemStatus ) { + $status->value['itemStatuses'] = []; + } + // CAS-style checks are done on the _deleted fields so the select // does not need to use FOR UPDATE nor be in the atomic section $dbw = $this->lbFactory->getPrimaryDatabase(); @@ -167,10 +172,6 @@ abstract class RevDelList extends RevisionListBase { $idsForLog = []; $authorActors = []; - if ( $perItemStatus ) { - $status->value['itemStatuses'] = []; - } - // For multi-item deletions, set the old/new bitfields in log_params such that "hid X" // shows in logs if field X was hidden from ANY item and likewise for "unhid Y". Note the // form does not let the same field get hidden and unhidden in different items at once.