Souhrnná úloha – Systém přihlášení a oprávnění
Úloha - Systém přihlášení a oprávnění
Zadání (kontext úlohy)
Máš napsat kontrolní funkci, která rozhoduje, zda má uživatel přístup k administrátorské části systému.
Podmínky jsou trochu zamotané, kód obsahuje chyby a je nepřehledný.
Tvým úkolem je kód opravit a zrefaktorovat, aby byl čitelný a spolehlivý.
Cíl úlohy
Procvičíš všechny dovednosti ze semináře:
-
použití logických operátorů
&&,||,!, -
zkrácené vyhodnocování (short-circuit),
-
kombinování více podmínek s jasnou prioritou,
-
opravu typických chyb v podmínkách,
-
refaktoring do pojmenovaných predikátů a guard clauses.
Vstupní podmínky
-
Pracuješ pouze se souborem
script.js.
Požadovaný výstup
-
Oprav kód tak, aby správně fungoval podle pravidel níže.
-
Zaveď predikáty (pojmenované pomocné funkce/konstanty) jako:
-
jePrihlasen -
jePrivilegovan -
neniBlokovan -
maSouhlas -
neniZakazano
-
-
Použij strážné podmínky (guard clauses) – při nesplnění dílčí podmínky vrať
falseco nejdříve. -
Ošetři, aby se funkce nikdy nepokoušela číst vlastnost objektu, pokud je
null(využij short-circuit). -
Používej závorky pro přehlednost a piš krátké komentáře k méně jasným částem.
Pravidla pro přístup
-
Uživatel musí být přihlášen.
-
Jeho role musí být „admin“ nebo „editor“.
-
Účet nesmí být blokovaný.
-
Musí mít souhlas se zpracováním dat.
-
Nesmí platit globální zákaz přístupu (
cfg.zakazPristupu).
Doplňující pokyny
-
V původním kódu je chybná negace a chybějící závorky – oprav je.
-
Původní podmínky jsou zbytečně dlouhé – rozděl je na predikáty a použij guard clauses.
-
Na konci funkce vrať
truepouze pokud jsou všechny podmínky splněny.