Sumit has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/258418

Change subject: BetaFeatures only add whitelisted preferences
......................................................................

BetaFeatures only add whitelisted preferences

Check if a preference is whitelisted irrespective of its dependency
specifications, before displaying it.

Bug: T121182
Change-Id: I7e0ab007933a096ac6bb8eda211622c9b138e217
---
M BetaFeaturesHooks.php
1 file changed, 15 insertions(+), 14 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/BetaFeatures 
refs/changes/18/258418/1

diff --git a/BetaFeaturesHooks.php b/BetaFeaturesHooks.php
index 3b3b835..584b8b1 100644
--- a/BetaFeaturesHooks.php
+++ b/BetaFeaturesHooks.php
@@ -141,12 +141,10 @@
                // This complex structure brought to you by Per-Wiki 
Configuration,
                // coming soon to a wiki very near you.
                Hooks::run( 'GetBetaFeatureDependencyHooks', array( &$depHooks 
) );
-
                $saveUser = false;
                $autoEnrollAll =
                        $user->getOption( 'betafeatures-auto-enroll' ) === 
HTMLFeatureField::OPTION_ENABLED;
                $autoEnroll = array();
-
                foreach ( $betaPrefs as $key => $info ) {
                        if ( isset( $info['auto-enrollment'] ) ) {
                                $autoEnroll[$info['auto-enrollment']] = $key;
@@ -154,22 +152,25 @@
                }
 
                foreach ( $betaPrefs as $key => $info ) {
+                       $success = true;
+                       // check if dependencies are met
                        if ( isset( $info['dependent'] ) && $info['dependent'] 
=== true ) {
-                               $success = true;
-
-                               if (
-                                               is_array( 
$wgBetaFeaturesWhitelist ) &&
-                                               !in_array( $key, 
$wgBetaFeaturesWhitelist )
-                                       ) {
-                                       $success = false;
-                               } elseif ( isset( $depHooks[$key] ) ) {
+                               if ( isset( $depHooks[$key] ) ) {
                                        $success = Hooks::run( $depHooks[$key] 
);
                                }
+                       }
 
-                               if ( $success !== true ) {
-                                       // Skip this preference!
-                                       continue;
-                               }
+                       // check if feature is whitelisted
+                       if (
+                                       is_array( $wgBetaFeaturesWhitelist ) &&
+                                       !in_array( $key, 
$wgBetaFeaturesWhitelist )
+                               ) {
+                                       $success = false;
+                       }
+
+                       if ( $success !== true ) {
+                               // Skip this preference!
+                               continue;
                        }
 
                        $opt = array(

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7e0ab007933a096ac6bb8eda211622c9b138e217
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/BetaFeatures
Gerrit-Branch: master
Gerrit-Owner: Sumit <asthana.sumi...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to