Deprecate PasswordPolicyChecks::checkPopularPasswordBlacklist
[lhc/web/wiklou.git] / includes / DefaultSettings.php
index c3a716f..f7c3fce 100644 (file)
@@ -4282,74 +4282,24 @@ $wgAllowImageTag = false;
 /**
  * Configuration for HTML postprocessing tool. Set this to a configuration
  * array to enable an external tool. By default, we now use the RemexHtml
- * library; historically, Dave Raggett's "HTML Tidy" was typically used.
- * See https://www.w3.org/People/Raggett/tidy/
- *
- * Setting this to null is deprecated.
- *
- * If this is null and $wgUseTidy is true, the deprecated configuration
- * parameters will be used instead.
- *
- * If this is null and $wgUseTidy is false, a pure PHP fallback will be used.
- * (Equivalent to setting `$wgTidyConfig['driver'] = 'disabled'`.)
- *
- * Keys are:
- *  - driver: May be:
- *    - RemexHtml: Use the RemexHtml library in PHP
- *    - RaggettInternalHHVM: Use the limited-functionality HHVM extension
- *      Deprecated since 1.32.
- *    - RaggettInternalPHP: Use the PECL extension
- *      Deprecated since 1.32.
- *    - RaggettExternal: Shell out to an external binary (tidyBin)
- *      Deprecated since 1.32.
- *    - disabled: Disable tidy pass and use a hacky pure PHP workaround
- *      (this is what setting $wgUseTidy to false used to do)
- *      Deprecated since 1.32.
- *
- *  - tidyConfigFile: Path to configuration file for any of the Raggett drivers
- *  - debugComment: True to add a comment to the output with warning messages
- *  - tidyBin: For RaggettExternal, the path to the tidy binary.
- *  - tidyCommandLine: For RaggettExternal, additional command line options.
+ * library; historically, other postprocessors were used.
+ *
+ * Setting this to null will use default settings.
+ *
+ * Keys include:
+ *  - driver: formerly used to select a postprocessor; now ignored.
+ *  - treeMutationTrace: a boolean to turn on Remex tracing
+ *  - serializerTrace: a boolean to turn on Remex tracing
+ *  - mungerTrace: a boolean to turn on Remex tracing
+ *  - pwrap: whether <p> wrapping should be done (default true)
+ *
+ * See includes/tidy/RemexDriver.php for detail on configuration.
+ *
+ * Overriding the default configuration is strongly discouraged in
+ * production.
  */
 $wgTidyConfig = [ 'driver' => 'RemexHtml' ];
 
-/**
- * Set this to true to use the deprecated tidy configuration parameters.
- * @deprecated since 1.26, use $wgTidyConfig['driver'] = 'disabled'
- */
-$wgUseTidy = false;
-
-/**
- * The path to the tidy binary.
- * @deprecated since 1.26, use $wgTidyConfig['tidyBin']
- */
-$wgTidyBin = 'tidy';
-
-/**
- * The path to the tidy config file
- * @deprecated since 1.26, use $wgTidyConfig['tidyConfigFile']
- */
-$wgTidyConf = $IP . '/includes/tidy/tidy.conf';
-
-/**
- * The command line options to the tidy binary
- * @deprecated since 1.26, use $wgTidyConfig['tidyCommandLine']
- */
-$wgTidyOpts = '';
-
-/**
- * Set this to true to use the tidy extension
- * @deprecated since 1.26, use $wgTidyConfig['driver']
- */
-$wgTidyInternal = extension_loaded( 'tidy' );
-
-/**
- * Put tidy warnings in HTML comments
- * Only works for internal tidy.
- * @deprecated since 1.26, use $wgTidyConfig['debugComment']
- */
-$wgDebugTidy = false;
-
 /**
  * Allow raw, unchecked HTML in "<html>...</html>" sections.
  * THIS IS VERY DANGEROUS on a publicly editable site, so USE wgGroupPermissions
@@ -4501,57 +4451,71 @@ $wgCentralIdLookupProviders = [
 $wgCentralIdLookupProvider = 'local';
 
 /**
- * Password policy for local wiki users. A user's effective policy
- * is the superset of all policy statements from the policies for the
- * groups where the user is a member. If more than one group policy
- * include the same policy statement, the value is the max() of the
- * values. Note true > false. The 'default' policy group is required,
- * and serves as the minimum policy for all users. New statements can
- * be added by appending to $wgPasswordPolicy['checks'].
- * Statements:
- *     - MinimalPasswordLength - minimum length a user can set
- *     - MinimumPasswordLengthToLogin - passwords shorter than this will
+ * Password policy for the wiki.
+ * Structured as
+ * [
+ *     'policies' => [ <group> => [ <policy> => <value>, ... ], ... ],
+ *     'checks' => [ <policy> => <callback>, ... ],
+ * ]
+ * where <group> is a user group, <policy> is a password policy name
+ * (arbitrary string) defined in the 'checks' part, <callback> is the
+ * PHP callable implementing the policy check, <value> is a number,
+ * boolean or null that gets passed to the callback.
+ *
+ * A user's effective policy is the superset of all policy statements
+ * from the policies for the groups where the user is a member. If more
+ * than one group policy include the same policy statement, the value is
+ * the max() of the values. Note true > false. The 'default' policy group
+ * is required, and serves as the minimum policy for all users.
+ *
+ * Callbacks receive three arguments: the policy value, the User object
+ * and the password; and must return a StatusValue. A non-good status
+ * means the password will not be accepted for new accounts, and existing
+ * accounts will be prompted for password change or barred from logging in
+ * (depending on whether the status is a fatal or merely error/warning).
+ *
+ * The checks supported by core are:
+ *     - MinimalPasswordLength - Minimum length a user can set.
+ *     - MinimumPasswordLengthToLogin - Passwords shorter than this will
  *             not be allowed to login, regardless if it is correct.
  *     - MaximalPasswordLength - maximum length password a user is allowed
  *             to attempt. Prevents DoS attacks with pbkdf2.
- *     - PasswordCannotMatchUsername - Password cannot match username to
+ *     - PasswordCannotMatchUsername - Password cannot match the username.
  *     - PasswordCannotMatchBlacklist - Username/password combination cannot
- *             match a specific, hardcoded blacklist.
+ *             match a blacklist of default passwords used by MediaWiki in the past.
  *     - PasswordCannotBePopular - Blacklist passwords which are known to be
  *             commonly chosen. Set to integer n to ban the top n passwords.
  *             If you want to ban all common passwords on file, use the
  *             PHP_INT_MAX constant.
+ *             Deprecated since 1.33. Use PasswordNotInLargeBlacklist instead.
  *     - PasswordNotInLargeBlacklist - Password not in best practices list of
- *             100,000 commonly used passwords.
+ *             100,000 commonly used passwords. Due to the size of the list this
+ *      is a probabilistic test.
+ *
  * @since 1.26
+ * @see PasswordPolicyChecks
+ * @see User::checkPasswordValidity()
  */
 $wgPasswordPolicy = [
        'policies' => [
                'bureaucrat' => [
-                       'MinimalPasswordLength' => 8,
+                       'MinimalPasswordLength' => 10,
                        'MinimumPasswordLengthToLogin' => 1,
-                       'PasswordCannotMatchUsername' => true,
-                       'PasswordCannotBePopular' => 25,
                        'PasswordNotInLargeBlacklist' => true,
                ],
                'sysop' => [
-                       'MinimalPasswordLength' => 8,
+                       'MinimalPasswordLength' => 10,
                        'MinimumPasswordLengthToLogin' => 1,
-                       'PasswordCannotMatchUsername' => true,
-                       'PasswordCannotBePopular' => 25,
                        'PasswordNotInLargeBlacklist' => true,
                ],
                'interface-admin' => [
-                       'MinimalPasswordLength' => 8,
+                       'MinimalPasswordLength' => 10,
                        'MinimumPasswordLengthToLogin' => 1,
-                       'PasswordCannotMatchUsername' => true,
-                       'PasswordCannotBePopular' => 25,
                        'PasswordNotInLargeBlacklist' => true,
                ],
                'bot' => [
-                       'MinimalPasswordLength' => 8,
+                       'MinimalPasswordLength' => 10,
                        'MinimumPasswordLengthToLogin' => 1,
-                       'PasswordCannotMatchUsername' => true,
                        'PasswordNotInLargeBlacklist' => true,
                ],
                'default' => [
@@ -4559,7 +4523,6 @@ $wgPasswordPolicy = [
                        'PasswordCannotMatchUsername' => true,
                        'PasswordCannotMatchBlacklist' => true,
                        'MaximalPasswordLength' => 4096,
-                       'PasswordNotInLargeBlacklist' => false,
                ],
        ],
        'checks' => [
@@ -5025,6 +4988,10 @@ $wgAutoblockExpiry = 86400;
 
 /**
  * Set this to true to allow blocked users to edit their own user talk page.
+ *
+ * This only applies to sitewide blocks. Partial blocks always allow users to
+ * edit their own user talk page unless otherwise specified in the block
+ * restrictions.
  */
 $wgBlockAllowsUTEdit = true;
 
@@ -5866,6 +5833,7 @@ $wgGrantPermissions['editmycssjs']['editmyuserjson'] = true;
 $wgGrantPermissions['editmycssjs']['editmyuserjs'] = true;
 
 $wgGrantPermissions['editmyoptions']['editmyoptions'] = true;
+$wgGrantPermissions['editmyoptions']['editmyuserjson'] = true;
 
 $wgGrantPermissions['editinterface'] = $wgGrantPermissions['editpage'];
 $wgGrantPermissions['editinterface']['editinterface'] = true;
@@ -5917,6 +5885,8 @@ $wgGrantPermissions['delete']['deletelogentry'] = true;
 $wgGrantPermissions['delete']['deleterevision'] = true;
 $wgGrantPermissions['delete']['undelete'] = true;
 
+$wgGrantPermissions['oversight']['suppressrevision'] = true;
+
 $wgGrantPermissions['protect'] = $wgGrantPermissions['editprotected'];
 $wgGrantPermissions['protect']['protect'] = true;
 
@@ -5962,6 +5932,7 @@ $wgGrantPermissionGroups = [
        'viewdeleted'         => 'administration',
        'viewrestrictedlogs'  => 'administration',
        'protect'             => 'administration',
+       'oversight'           => 'administration',
        'createaccount'       => 'administration',
 
        'highvolume'          => 'high-volume',
@@ -8807,6 +8778,7 @@ $wgSearchRunSuggestedQuery = true;
  *
  * @see maintenance/createCommonPasswordCdb.php
  * @since 1.27
+ * @deprecated since 1.33
  * @var string path to file
  */
 $wgPopularPasswordFile = __DIR__ . '/password/commonpasswords.cdb';