From 008dc995ed243d0c6224fbfdb0ff698075441957 Mon Sep 17 00:00:00 2001 From: victorbarbu Date: Mon, 14 Dec 2015 11:15:35 +0200 Subject: [PATCH] Redocumented $wgAutopromote Completely rewritten the documentation of $wgAutopromote to make it easier to understand. Change-Id: I0746c09f7a97dd18feeb774643367fa1a0c09fd4 --- includes/DefaultSettings.php | 74 ++++++++++++++++++++++++++---------- 1 file changed, 54 insertions(+), 20 deletions(-) diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php index 856a3f9d71..566d4aa9ba 100644 --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@ -5325,26 +5325,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 = [ -- 2.20.1