Ú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
  1. Oprav kód tak, aby správně fungoval podle pravidel níže.

  2. Zaveď predikáty (pojmenované pomocné funkce/konstanty) jako:

    • jePrihlasen

    • jePrivilegovan

    • neniBlokovan

    • maSouhlas

    • neniZakazano

  3. Použij strážné podmínky (guard clauses) – při nesplnění dílčí podmínky vrať false co nejdříve.

  4. Ošetři, aby se funkce nikdy nepokoušela číst vlastnost objektu, pokud je null (využij short-circuit).

  5. 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ť true pouze pokud jsou všechny podmínky splněny.


Soubor

Odkaz na js soubor