Příručka:$wgRestrictedGroups
| Uživatelská práva, řízení přístupu a monitorování: $wgRestrictedGroups | |
|---|---|
| Podmínky požadované pro zařazení uživatele do konkrétních skupin |
|
| Zavedeno od verze: | 1.46.0 (Gerrit change 1200077; git #bd2f4bd0) |
| Odstraněno od verze: | stále se používá |
| Povolené hodnoty: | (pole) |
| Výchozí hodnota: | [] |
| Další nastavení: Podle abecedy | Podle funkce | |
Podrobnosti
Toto pole obsahuje kritéria, která musí být splněna při přidání uživatele do určité skupiny. Syntaxe je:
$wgRestrictedGroups[$groupName] = [
'memberConditions' => $condsArrayForMember,
'updaterConditions' => $condsArrayForPerformer,
'canBeIgnored' => $canBeIgnored,
'demote' => $demote,
'scope' => $scope,
];
Kde:
$groupName– název skupiny, pro kterou chcete specifikovat omezení, např.'sysop'.$condsArrayForMember– požadavky, které musí uživatel splňovat, aby mohl být přidán do zadané skupiny. Syntaxe pro zadávání podmínek je stejná jako pro $wgAutopromote.$condsArrayForPerformer– požadavky, které musí provádějící uživatel splňovat, aby mohl být druhý uživatel přidán do zadané skupiny. Syntaxe pro zadávání podmínek je stejná jako pro $wgAutopromote.- Pokud
$canBeIgnoredjetrue, pak uživatelé s právem(ignore-restricted-groups)mohou obejít omezení nastavená pro tuto skupinu (jak pro interpreta, tak pro cíl), pokud nejsou splněny podmínky. - Pokud
$demotejetrue, členové této skupiny, kteří nesplňují kritéria, budou při spuštění DemoteIneligibleUsers.php degradováni. Automatické snížení úrovně je podporováno pouze pro skupiny, kde je'canBeIgnored'rovnéfalse. $scope– seznam oblastí, na které se omezení vztahuje. Vysvětlení viz níže. Pokud není nastaveno, omezení se vztahuje na všechny možné obory.
Není nutné specifikovat všechny tři položky pole.
Pokud nejsou přítomny hodnoty 'memberConditions' nebo 'updaterConditions', předpokládá se, že se rovnají [], což je interpretováno jako podmínka, která je vždy true.
Pokud není zadána hodnota 'canBeIgnored', předpokládá se, že požadavky jsou neignorovatelné (tj. hodnota (ignore-restricted-groups) nemá žádný vliv na přidání do této skupiny).
Skupiny bez zadané hodnoty 'demote' nelze automaticky degradovat.
Pokud podmínky nejsou splněny, uvidí hráč vedle zaškrtávacího políčka skupiny na Special:UserRights zprávu od MediaWiki:Userrights-restricted-group-<název skupiny> (která se vrátí na MediaWiki:Userrights-restricted-group-warning, pokud není specifikována).
Neustálé vynucování
Všechny omezené skupiny mají při udělení ověřené podmínky. Skupinu lze uživateli přidělit pouze tehdy, jsou-li splněny podmínky, nebo pokud je prováděcímu pracovníkovi povoleno obejít kontrolu podmínek.
Pokud má skupina nastaveno 'canBeIgnored' na false, budou podmínky pro člena skupiny vyhodnoceny také při každém požadavku.
Uživateli, který již nesplňuje podmínky, budou příslušné skupiny deaktivovány.
Zakázané skupiny nedávají svým členům žádná práva, ale uživatel je stále na různých místech uživatelského rozhraní hlášen jako jejich člen.
Pro automatické snížení úrovně jsou podporovány pouze skupiny, které lze vynutit nepřetržitě.
Rozsahy
Aby bylo možné konfiguraci omezených skupin použít pro rozšíření, která definují vlastní sadu konstrukcí podobných skupinám (například CentralAuth), byl zaveden koncept oborů platnosti. Jeden obor platnosti je určen pro jedno rozšíření nebo jeden druh skupinové funkce, která je implementována rozšířením.
Pokud existují dvě skupinové funkce pocházející z různých rozšíření (nebo jádra a rozšíření), zadání rozsahu v $wgRestrictedGroups může cílit konfiguraci pouze na vybrané rozsahy.
Toto chování se na Wikimedii používá k rozlišení mezi lokálními a globálními skupinami, které mohou mít stejný interní název, ale nemají stejnou konfiguraci omezení.
Jádro MediaWiki definuje jeden rozsah pro skupiny uživatelů ('local').
Všechny skupiny podporované jádrem patří do tohoto rozsahu, bez ohledu na to, kde jsou definovány (ať už se jedná o výchozí hodnoty jádra, vlastní skupiny v nastavení nebo vlastní skupiny v rozšířeních).
Jediný další známý rozsah je definován metodou CentralAuth ('centralauth').
Příklad
Základní podmínky
Následující podmínky replikují podmínky použité na clusteru Wikimedie pro skupinu Temporary account IP viewers – účet musí být obvykle starší než 6 měsíců a mít 300 úprav, ale správci mohou tyto požadavky ignorovat:
$wgRestrictedGroups['temporary-account-viewer'] = [
'memberConditions' => [
'&',
[ APCOND_EDITCOUNT, 300 ],
[ APCOND_AGE, 86400 * 30 * 6 ],
],
'canBeIgnored' => true,
];
Vyžadování 2FA pro skupinu uživatelů
Pokud chcete vynutit povinnost 2FA pro skupinu uživatelů, jako například Rozšíření:OATHAuth, která dříve fungovala s $wgOATHRequiredForGroups, změna kódu, kterou byste provedli, by byla:
$wgOATHRequiredForGroups[] = 'sysop';
stává se:
$wgRestrictedGroups['sysop'] = [
'memberConditions' => [ 'oath.has_2fa' ],
];
Omezit pouze lokální skupinu
Pokud chcete, aby se podmínka vztahovala pouze na lokální skupinu Stevardi, můžete použít konfiguraci podobnou následující:
$wgRestrictedGroups['steward'] = [
'memberConditions' => [ /* ... */ ],
'scope' => [ 'local' ],
];
S touto konfigurací nebude žádný jiný typ skupiny s názvem 'steward' ovlivněn zadanými podmínkami.