jenkins-bot has submitted this change and it was merged.

Change subject: Campaign mixins: Fix handling of removed parameters
......................................................................


Campaign mixins: Fix handling of removed parameters

Change-Id: I6043c6ee5a54b81b6fb13240c6cc9ecf951f9066
---
M includes/Campaign.php
1 file changed, 19 insertions(+), 1 deletion(-)

Approvals:
  Awight: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/includes/Campaign.php b/includes/Campaign.php
index 088dcef..c562af8 100644
--- a/includes/Campaign.php
+++ b/includes/Campaign.php
@@ -650,6 +650,12 @@
 
                                $paramName = $dbRow->nmxnp_param_name;
                                $mixinDef = 
$wgCentralNoticeCampaignMixins[$mixinName];
+
+                               // Handle mixin parameters being removed, too
+                               if ( !isset( 
$mixinDef['parameters'][$paramName] ) ) {
+                                       continue;
+                               }
+
                                $paramType = 
$mixinDef['parameters'][$paramName]['type'];
 
                                switch ( $paramType ) {
@@ -736,9 +742,21 @@
 
                        foreach ( $params as $paramName => $paramVal ) {
 
+                               $mixinDef = 
$wgCentralNoticeCampaignMixins[$mixinName];
+
+                               // Handle an undefined parameter. Not likely to 
happen, maybe
+                               // in the middle of a deploy that removes a 
parameter.
+                               if ( !isset( 
$mixinDef['parameters'][$paramName] ) ) {
+
+                                       wfLogWarning( 'No definition found for 
the parameter '
+                                               . $paramName . ' for the 
campaign mixn ' .
+                                               $mixinName . '.' );
+
+                                       continue;
+                               }
+
                                // Munge boolean params for database storage. 
(Other types
                                // should end up as strings, which will be 
fine.)
-                               $mixinDef = 
$wgCentralNoticeCampaignMixins[$mixinName];
                                if ( 
$mixinDef['parameters'][$paramName]['type'] === 'boolean' ) {
                                        $paramVal = ( $paramVal ? 'true' : 
'false' );
                                }

-- 
To view, visit https://gerrit.wikimedia.org/r/229164
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I6043c6ee5a54b81b6fb13240c6cc9ecf951f9066
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/CentralNotice
Gerrit-Branch: campaign_mixins
Gerrit-Owner: AndyRussG <[email protected]>
Gerrit-Reviewer: Awight <[email protected]>
Gerrit-Reviewer: Cdentinger <[email protected]>
Gerrit-Reviewer: Ejegg <[email protected]>
Gerrit-Reviewer: Ssmith <[email protected]>
Gerrit-Reviewer: XenoRyet <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to