Fix missing if from $wgDBssl comment
[lhc/web/wiklou.git] / includes / Preferences.php
index 94854fa..cab1e1f 100644 (file)
@@ -47,9 +47,6 @@ use MediaWiki\MediaWikiServices;
  * over to the tryUISubmit static method of this class.
  */
 class Preferences {
-       /** @var array */
-       protected static $defaultPreferences = null;
-
        /** @var array */
        protected static $saveFilters = [
                'timecorrection' => [ 'Preferences', 'filterTimezoneInput' ],
@@ -78,10 +75,6 @@ class Preferences {
         * @return array|null
         */
        static function getPreferences( $user, IContextSource $context ) {
-               if ( self::$defaultPreferences ) {
-                       return self::$defaultPreferences;
-               }
-
                $defaultPreferences = [];
 
                self::profilePreferences( $user, $context, $defaultPreferences );
@@ -98,7 +91,6 @@ class Preferences {
                Hooks::run( 'GetPreferences', [ $user, &$defaultPreferences ] );
 
                self::loadPreferenceValues( $user, $context, $defaultPreferences );
-               self::$defaultPreferences = $defaultPreferences;
                return $defaultPreferences;
        }
 
@@ -934,16 +926,16 @@ class Preferences {
                $defaultPreferences['rcfilters-wl-saved-queries'] = [
                        'type' => 'api',
                ];
-               $defaultPreferences['rcfilters-saved-queries-versionbackup'] = [
+               // Override RCFilters preferences for RecentChanges 'limit'
+               $defaultPreferences['rcfilters-limit'] = [
                        'type' => 'api',
                ];
-               $defaultPreferences['rcfilters-wl-saved-queries-versionbackup'] = [
+               $defaultPreferences['rcfilters-saved-queries-versionbackup'] = [
                        'type' => 'api',
                ];
-               $defaultPreferences['rcfilters-rclimit'] = [
+               $defaultPreferences['rcfilters-wl-saved-queries-versionbackup'] = [
                        'type' => 'api',
                ];
-
                if ( $config->get( 'RCWatchCategoryMembership' ) ) {
                        $defaultPreferences['hidecategorization'] = [
                                'type' => 'toggle',
@@ -1542,6 +1534,14 @@ class Preferences {
                                $formData[$pref] = $user->getOption( $pref, null, true );
                        }
 
+                       // If the user changed the rclimit preference, also change the rcfilters-rclimit preference
+                       if (
+                               isset( $formData['rclimit'] ) &&
+                               intval( $formData[ 'rclimit' ] ) !== $user->getIntOption( 'rclimit' )
+                       ) {
+                               $formData['rcfilters-limit'] = $formData['rclimit'];
+                       }
+
                        // Keep old preferences from interfering due to back-compat code, etc.
                        $user->resetOptions( 'unused', $form->getContext() );