X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FDefaultSettings.php;h=c7c7fb7ac756dfe1a9ea51f667966e0601a8613f;hb=39a6e3dc4d84;hp=327448019f358e75517356e05501d85728d5062b;hpb=6186cfef91f5f33f56beb886a542f06ea2350850;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php index 327448019f..c7c7fb7ac7 100644 --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@ -443,7 +443,6 @@ $wgImgAuthUrlPathMap = []; * Properties required for all repos: * - class The class name for the repository. May come from the core or an extension. * The core repository classes are FileRepo, LocalRepo, ForeignDBRepo. - * FSRepo is also supported for backwards compatibility. * * - name A unique name for the repository (but $wgLocalFileRepo should be 'local'). * The name should consist of alpha-numeric characters. @@ -2343,6 +2342,19 @@ $wgWANObjectCaches = [ */ ]; +/** + * Verify and enforce WAN cache purges using reliable DB sources as streams. + * + * These secondary cache purges are de-duplicated via simple cache mutexes. + * This improves consistency when cache purges are lost, which becomes more likely + * as more cache servers are added or if there are multiple datacenters. Only keys + * related to important mutable content will be checked. + * + * @var bool + * @since 1.29 + */ +$wgEnableWANCacheReaper = false; + /** * Main object stash type. This should be a fast storage system for storing * lightweight data like hit counters and user activity. Sites with multiple @@ -4789,7 +4801,7 @@ $wgReservedUsernames = [ */ $wgDefaultUserOptions = [ 'ccmeonemails' => 0, - 'cols' => 80, + 'cols' => 80, // @deprecated since 1.29 No longer used in core 'date' => 'default', 'diffonly' => 0, 'disablemail' => 0, @@ -4817,8 +4829,9 @@ $wgDefaultUserOptions = [ 'previewonfirst' => 0, 'previewontop' => 1, 'rcdays' => 7, + 'rcenhancedfilters' => 0, 'rclimit' => 50, - 'rows' => 25, + 'rows' => 25, // @deprecated since 1.29 No longer used in core 'showhiddencats' => 0, 'shownumberswatching' => 1, 'showtoolbar' => 1, @@ -4851,7 +4864,9 @@ $wgDefaultUserOptions = [ /** * An array of preferences to not show for the user */ -$wgHiddenPrefs = []; +$wgHiddenPrefs = [ + 'rcenhancedfilters', +]; /** * Characters to prevent during new account creations. @@ -5323,26 +5338,60 @@ $wgAutoConfirmAge = 0; $wgAutoConfirmCount = 0; /** - * Automatically add a usergroup to any user who matches certain conditions. - * - * @todo Redocument $wgAutopromote - * - * The format is - * [ '&' or '|' or '^' or '!', cond1, cond2, ... ] - * where cond1, cond2, ... are themselves conditions; *OR* - * APCOND_EMAILCONFIRMED, *OR* - * [ APCOND_EMAILCONFIRMED ], *OR* - * [ APCOND_EDITCOUNT, number of edits ], *OR* - * [ APCOND_AGE, seconds since registration ], *OR* - * [ APCOND_INGROUPS, group1, group2, ... ], *OR* - * [ APCOND_ISIP, ip ], *OR* - * [ APCOND_IPINRANGE, range ], *OR* - * [ APCOND_AGE_FROM_EDIT, seconds since first edit ], *OR* - * [ APCOND_BLOCKED ], *OR* - * [ APCOND_ISBOT ], *OR* - * similar constructs defined by extensions. - * - * If $wgEmailAuthentication is off, APCOND_EMAILCONFIRMED will be true for any + * Array containing the conditions of automatic promotion of a user to specific groups. + * + * The basic syntax for `$wgAutopromote` is: + * + * $wgAutopromote = array( + * 'groupname' => cond, + * 'group2' => cond2, + * ); + * + * A `cond` may be: + * - a single condition without arguments: + * Note that Autopromote wraps a single non-array value into an array + * e.g. `APCOND_EMAILCONFIRMED` OR + * array( `APCOND_EMAILCONFIRMED` ) + * - a single condition with arguments: + * e.g. `array( APCOND_EDITCOUNT, 100 )` + * - a set of conditions: + * e.g. `array( 'operand', cond1, cond2, ... )` + * + * When constructing a set of conditions, the following conditions are available: + * - `&` (**AND**): + * promote if user matches **ALL** conditions + * - `|` (**OR**): + * promote if user matches **ANY** condition + * - `^` (**XOR**): + * promote if user matches **ONLY ONE OF THE CONDITIONS** + * - `!` (**NOT**): + * promote if user matces **NO** condition + * - array( APCOND_EMAILCONFIRMED ): + * true if user has a confirmed e-mail + * - array( APCOND_EDITCOUNT, number of edits ): + * true if user has the at least the number of edits as the passed parameter + * - array( APCOND_AGE, seconds since registration ): + * true if the length of time since the user created his/her account + * is at least the same length of time as the passed parameter + * - array( APCOND_AGE_FROM_EDIT, seconds since first edit ): + * true if the length of time since the user made his/her first edit + * is at least the same length of time as the passed parameter + * - array( APCOND_INGROUPS, group1, group2, ... ): + * true if the user is a member of each of the passed groups + * - array( APCOND_ISIP, ip ): + * true if the user has the passed IP address + * - array( APCOND_IPINRANGE, range ): + * true if the user has an IP address in the range of the passed parameter + * - array( APCOND_BLOCKED ): + * true if the user is blocked + * - array( APCOND_ISBOT ): + * true if the user is a bot + * - similar constructs can be defined by extensions + * + * The sets of conditions are evaluated recursively, so you can use nested sets of conditions + * linked by operands. + * + * Note that if $wgEmailAuthentication is disabled, APCOND_EMAILCONFIRMED will be true for any * user who has provided an e-mail address. */ $wgAutopromote = [ @@ -5512,6 +5561,15 @@ $wgDnsBlacklistUrls = [ 'http.dnsbl.sorbs.net.' ]; */ $wgProxyWhitelist = []; +/** + * IP ranges that should be considered soft-blocked (anon-only, account + * creation allowed). The intent is to use this to prevent anonymous edits from + * shared resources such as Wikimedia Labs. + * @since 1.29 + * @var string[] + */ +$wgSoftBlockRanges = []; + /** * Whether to look at the X-Forwarded-For header's list of (potentially spoofed) * IPs and apply IP blocks to them. This allows for IP blocks to work with correctly-configured @@ -5825,6 +5883,15 @@ $wgBotPasswordsCluster = false; */ $wgBotPasswordsDatabase = false; +/** + * Whether to disable user group expiry. This is a transitional feature flag + * in accordance with WMF schema change policy, and will be removed later + * (hopefully before MW 1.29 release). + * + * @since 1.29 + */ +$wgDisableUserGroupExpiry = false; + /** @} */ # end of user rights settings /************************************************************************//** @@ -6589,51 +6656,64 @@ $wgRCLinkLimits = [ 50, 100, 250, 500 ]; $wgRCLinkDays = [ 1, 3, 7, 14, 30 ]; /** - * Destinations to which notifications about recent changes - * should be sent. + * Configuration for feeds to which notifications about recent changes will be sent. * - * As of MediaWiki 1.22, there are 2 supported 'engine' parameter option in core: - * * 'UDPRCFeedEngine', which is used to send recent changes over UDP to the - * specified server. - * * 'RedisPubSubFeedEngine', which is used to send recent changes to Redis. + * The following feed classes are available by default: + * - 'UDPRCFeedEngine' - sends recent changes over UDP to the specified server. + * - 'RedisPubSubFeedEngine' - send recent changes to Redis. * - * The common options are: - * * 'uri' -- the address to which the notices are to be sent. - * * 'formatter' -- the class name (implementing RCFeedFormatter) which will - * produce the text to send. This can also be an object of the class. - * * 'omit_bots' -- whether the bot edits should be in the feed - * * 'omit_anon' -- whether anonymous edits should be in the feed - * * 'omit_user' -- whether edits by registered users should be in the feed - * * 'omit_minor' -- whether minor edits should be in the feed - * * 'omit_patrolled' -- whether patrolled edits should be in the feed + * Only 'class' or 'uri' is required. If 'uri' is set instead of 'class', then + * RecentChange::getEngine() is used to determine the class. All options are + * passed to the constructor. * - * The IRC-specific options are: - * * 'add_interwiki_prefix' -- whether the titles should be prefixed with - * the first entry in the $wgLocalInterwikis array (or the value of - * $wgLocalInterwiki, if set) + * Common options: + * - 'class' -- The class to use for this feed (must implement RCFeed). + * - 'omit_bots' -- Exclude bot edits from the feed. (default: false) + * - 'omit_anon' -- Exclude anonymous edits from the feed. (default: false) + * - 'omit_user' -- Exclude edits by registered users from the feed. (default: false) + * - 'omit_minor' -- Exclude minor edits from the feed. (default: false) + * - 'omit_patrolled' -- Exclude patrolled edits from the feed. (default: false) * - * The JSON-specific options are: - * * 'channel' -- if set, the 'channel' parameter is also set in JSON values. + * FormattedRCFeed-specific options: + * - 'uri' -- [required] The address to which the messages are sent. + * The uri scheme of this string will be looked up in $wgRCEngines + * to determine which RCFeedEngine class to use. + * - 'formatter' -- [required] The class (implementing RCFeedFormatter) which will + * produce the text to send. This can also be an object of the class. + * Formatters available by default: JSONRCFeedFormatter, XMLRCFeedFormatter, + * IRCColourfulRCFeedFormatter. + * + * IRCColourfulRCFeedFormatter-specific options: + * - 'add_interwiki_prefix' -- whether the titles should be prefixed with + * the first entry in the $wgLocalInterwikis array (or the value of + * $wgLocalInterwiki, if set) + * + * JSONRCFeedFormatter-specific options: + * - 'channel' -- if set, the 'channel' parameter is also set in JSON values. * * @example $wgRCFeeds['example'] = [ + * 'uri' => 'udp://localhost:1336', * 'formatter' => 'JSONRCFeedFormatter', - * 'uri' => "udp://localhost:1336", * 'add_interwiki_prefix' => false, * 'omit_bots' => true, * ]; - * @example $wgRCFeeds['exampleirc'] = [ + * @example $wgRCFeeds['example'] = [ + * 'uri' => 'udp://localhost:1338', * 'formatter' => 'IRCColourfulRCFeedFormatter', - * 'uri' => "udp://localhost:1338", * 'add_interwiki_prefix' => false, * 'omit_bots' => true, * ]; + * @example $wgRCFeeds['example'] = [ + * 'class' => 'ExampleRCFeed', + * ]; * @since 1.22 */ $wgRCFeeds = []; /** - * Used by RecentChange::getEngine to find the correct engine to use for a given URI scheme. - * Keys are scheme names, values are names of engine classes. + * Used by RecentChange::getEngine to find the correct engine for a given URI scheme. + * Keys are scheme names, values are names of FormattedRCFeed sub classes. + * @since 1.22 */ $wgRCEngines = [ 'redis' => 'RedisPubSubFeedEngine', @@ -8055,6 +8135,12 @@ $wgShellLocale = 'en_US.utf8'; */ $wgHTTPTimeout = 25; +/** + * Timeout for HTTP requests done internally for transwiki imports, in seconds. + * @since 1.29 + */ +$wgHTTPImportTimeout = 25; + /** * Timeout for Asynchronous (background) HTTP requests, in seconds. */ @@ -8180,7 +8266,19 @@ $wgRedirectOnLogin = null; * The remaining elements are passed through to the class as constructor * parameters. * - * @par Example: + * @par Example using local redis instance: + * @code + * $wgPoolCounterConf = [ 'ArticleView' => [ + * 'class' => 'PoolCounterRedis', + * 'timeout' => 15, // wait timeout in seconds + * 'workers' => 1, // maximum number of active threads in each pool + * 'maxqueue' => 5, // maximum number of total threads in each pool + * 'servers' => [ '127.0.0.1' ], + * 'redisConfig' => [] + * ] ]; + * @endcode + * + * @par Example using C daemon from https://www.mediawiki.org/wiki/Extension:PoolCounter: * @code * $wgPoolCounterConf = [ 'ArticleView' => [ * 'class' => 'PoolCounter_Client', @@ -8188,7 +8286,7 @@ $wgRedirectOnLogin = null; * 'workers' => 5, // maximum number of active threads in each pool * 'maxqueue' => 50, // maximum number of total threads in each pool * ... any extension-specific options... - * ]; + * ] ]; * @endcode */ $wgPoolCounterConf = null;