Příručka:Háčky/userCan
Deprecated: Tato funkce je již zastaralá a neměla by se už používat. Nicméně je stále dostupná, aby byla zachována zpětná kompatibilita.
|
userCan | |
---|---|
Dostupné od verze 1.6.0 Využívá se k přerušení/kontrole v případě, kdy uživatel chce udělat X s obsahem článku Y. | |
Definice funkce: | public static function onuserCan( $title, $user, $action, &$result ) { ... }
|
Registrace háčku: | V extension.json:
{
"Hooks": {
"userCan": "MediaWiki\\Extension\\MyExtension\\Hooks::onuserCan"
}
}
|
Volá se z: | Soubor/y: Permissions/PermissionManager.php |
Rozhraní: | userCanHook.php |
Další informace o háčcích najdete na stránce Příručka:Háčky .
Chcete-li vědět, jaká rozšíření tento háček používají, podívejte se na stránku Category:userCan extensions/cs.
Podrobnosti
$title
reference na objekt title se kterým se pracuje v dotazu (více o tomhle objektu viz $IP/includes/Title.php)
$user
reference na objekt user, ve kterém je vše co se týče aktuálního uživatele (více o tomhle objektu viz $IP/includes/Title.php)
$action
action je řetězec (string), který identifikuje aktuální akci, která se v danou chvíli na základě dotazu aplikuje na objekt title
$result
- reference na result se postupně předává všem funkcím, ve stejném pořadí, jak jsou navěšené na tento háček (viz $IP/includes/Hooks.php)
- $result můžete nechat na pokoji, nebo ho nastavit na
true
nebofalse
, podle toho jaký bude výsledek vaší funkce navěšené na háček - 'true' znamená, že uživatel může pokračovat dál ve zpracování obsahu stránky a 'false', že uživatel $user akci předanou přes $action na objekt $title aplikovat nemůže.
- pokud funkce nevrátí žádnou hodnotu, pak to znamená, že za dané situace zůstává její postoj neutrální.
Co způsobí návratová hodnota funkce, navěšené na tento háček
- funkce, které jsou navěšené na tento háček zpracovávají, v tom pořadí jak jsou na něj navěšeny, dokud se nedojde na konec seznamu, nebo dokud některá z nich nevrátí
true
- kterákoliv z funkcí, navěšených na tento háček, další proces zpracování přeruší, tím že vrátí
false
.
Záměrný postranní efekt zřetězení funkcí na tomto háčku
- obsah proměnné $result, která je předaná navěšeným funkcím přes referenci, se průběžně mění, podle toho, jaký je výsledek zpracování funkce
- pokud některá z funkcí navěšených na háčku bude chtít něco vypnout, tak jiná, co za ní bude následovat, může dospět k jinému závěru a $result opět povolit
- na druhou stranu poslední funkce ze seznamu háčků má tu nevýhodu, že na ni nemusí dojít, a tudíž má mnohem menší šanci $result ovlivnit
Konečné rozhodnutí, jak naložit s trojicí objektů $title - $user - $action tak závisí na tom, jakou bude mít aktuální hodnotu $result, poté co se dokončí zpracování celého seznamu funkcí navěšených na tomto háčku.
Rizika spojená s návratem řetězcové hodnoty
Omezení
Tabulka možných kombinací
pokud se vrátí true | pokud se vrátí false | |
---|---|---|
$result = true | Uživatel může pokračovat v dalším zpracování stránky. Následující funkce může výsledek změnit. |
Uživatel může pokračovat ve zpracování stránky. Na zpracování následující funkcí už nedojde. |
$result = false | Uživatel nemůže pokračovat v dalším zpracování stránky. Následující funkce může výsledek změnit. |
Uživatel nemůže pokračovat v dalším zpracování stránky. Na zpracování následující funkcí už nedojde. |
$result nechává na pokoji | Rozhodnutí závisí na zpracování dalších háčků, nebo jiném, interním rozhodnutí. Následující funkce může výsledek změnit. |
Rozhodnutí závisí na zpracování předchozích háčků, nebo jiném, interním rozhodnutí. Na zpracování následující funkcí už nedojde. |
Související odkazy
- UserCanSendEmail
- TitleReadWhitelist - aby uživatel mohl číst konkrétní stránky
- UserGetRights - k navěšení háčků, u kterých kontrola práv nesouvisí s konkrétním článkem.
- getUserPermissionsErrors - podobný háček, který umí vracet i textovou zprávu