(bug 18761) Add setting to hide a list of preferences.
authorChad Horohoe <demon@users.mediawiki.org>
Tue, 19 May 2009 17:07:46 +0000 (17:07 +0000)
committerChad Horohoe <demon@users.mediawiki.org>
Tue, 19 May 2009 17:07:46 +0000 (17:07 +0000)
RELEASE-NOTES
includes/DefaultSettings.php
includes/Preferences.php
includes/Setup.php

index e297b36..7806ddb 100644 (file)
@@ -24,6 +24,10 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
 * $wgSessionHandler can be used to configure session.save_handler
 * $wgLocalFileRepo/$wgForeignFileRepos now have a 'fileMode' parameter to
   be used when uploading/moving files
+* (bug 18761) $wgHiddenPrefs is a new array for specifying preferences not
+  to be shown to users
+* $wgAllowRealName was deprecated in favor of $wgHiddenPrefs[] = 'realname',
+  but the former is still retained for backwards-compatibility
 
 === New features in 1.16 ===
 
index f1b5f68..b80604f 100644 (file)
@@ -2496,9 +2496,15 @@ $wgDefaultUserOptions = array(
        'disablemail'                     => 0,
 );
 
-/** Whether or not to allow and use real name fields. Defaults to true. */
+/** 
+ * Whether or not to allow and use real name fields. 
+ * @deprecated in 1.16, use $wgHiddenPrefs[] = 'realname' below 
+ */
 $wgAllowRealName = true;
 
+/** An array of preferences to not show for the user */
+$wgHiddenPrefs = array();
+
 /*****************************************************************************
  *  Extensions
  */
index 1c35910..145a1bd 100644 (file)
@@ -29,6 +29,14 @@ class Preferences {
 
                wfRunHooks( 'GetPreferences', array( $user, &$defaultPreferences ) );
 
+               ## Remove preferences that wikis don't want to use
+               global $wgHiddenPrefs;
+               foreach ( $wgHiddenPrefs as $pref ) {
+                       if ( isset( $defaultPreferences[$pref] ) ) {
+                               unset( $defaultPreferences[ $pref ] );
+                       }
+               }
+
                ## Prod in defaults from the user
                global $wgDefaultUserOptions;
                foreach( $defaultPreferences as $name => &$info ) {
@@ -138,19 +146,16 @@ class Preferences {
                }
                                
                // Actually changeable stuff
-               global $wgAllowRealName, $wgAuth;
-               if ($wgAllowRealName) {
-                       $defaultPreferences['realname'] =
-                                       array(
-                                               'type' => $wgAuth->allowPropChange( 'realname' ) ? 'text' : 'info',
-                                               'default' => $user->getRealName(),
-                                               'section' => 'personal/info',
-                                               'label-message' => 'yourrealname',
-                                               'help-message' => 'prefs-help-realname',
-                                       );
-               }
-               
-               
+               global $wgAuth;
+               $defaultPreferences['realname'] =
+                               array(
+                                       'type' => $wgAuth->allowPropChange( 'realname' ) ? 'text' : 'info',
+                                       'default' => $user->getRealName(),
+                                       'section' => 'personal/info',
+                                       'label-message' => 'yourrealname',
+                                       'help-message' => 'prefs-help-realname',
+                               );
+
                $defaultPreferences['gender'] =
                                array(
                                        'type' => 'select',
index f7119bb..8df3f98 100644 (file)
@@ -201,6 +201,12 @@ $wgContLanguageCode = $wgLanguageCode;
 # If file cache or squid cache is on, just disable this (DWIMD).
 if( $wgUseFileCache || $wgUseSquid ) $wgShowIPinHeader = false;
 
+# $wgAllowRealName was removed in 1.16 in favor of $wgHiddenPrefs,
+# handle b/c here
+if( !$wgAllowRealName ) {
+       $wgHiddenPrefs[] = 'realname';
+}
+
 wfProfileOut( $fname.'-misc1' );
 wfProfileIn( $fname.'-memcached' );