Algoritmus zpracování práv

Rozvrh NG » Práva » Algoritmus zpracování práv

Zobrazení rozvrhu pro semestr
Aby bylo možné semestr nastavit pro práci (a tedy i zobrazit), musí být platný. To znamená, že:
Právo zobrazit předběžný semestr je přidělováno takto:
Rezervace
Pro založení rezervace je třeba mít právo create_reservation (alespoň na úrovni učitel). Dále je třeba, aby termín rezervace byl přípustný a aby měl uživatel právo založit rezervaci do cílové místnosti. Pro oboje je významný vztah rezervujícího uživatele k místnosti, kam je rezervace zakládána. Tento vztah plyne z tabulky rn_vlastnik a závisí na dni v týdnu. Proto je pro určení konkrétní úrovně práv uživatele třeba již znát datum rezervace. Samotný vztah je v tomto případě řízen právem create_reservation. Výsledný vztah se řídí tímto:
Platný termín rezervace
Termín rezervace musí vyhovat latenci místnosti (rn_mistnost.latence), tedy pokud je latence 2, musí být rezervace založena alespoň dva dny předem. Minimální latence je 0, nelze tedy zakládat rezervace do historie.
Maximální datum je omezeno i směrem do budoucnosti. Pokud je uřebna vlastní, pak je řízeno právem create_limit_private, jinak create_limit. Možné úrovně jsou:
Chráněný rozvrh
Pokud je semestr do kterého rezervace spadá (pokud takový vůbec existuje) chráněný, je pro založení rezervace potřeba, aby vztah k místnosti vzhledem k právu create_future byl "vlastní".
Intervalové a opakované rezervace
Pokud rezervace zasahuje více než jeden den, pak pro její založení musí být předchozí podmínky splněny pro všechny dny rezervace. Existují tyto speciální typy rezervací:
Žádosti
Pokud je termín rezervace přípustný, je ještě třeba rozhodonut, zda má uživatel pravo rezervaci přímo založit. Jinak je vytvořena žádost. Pokud je typ místnosti "potvrzovací" (tj. rn_mistnost.typ je 'X'), pak jde o žádost vždy, kromě případu, že má uživatel právo create_reservation na úrovni fakulta. Jinak dáva uživatel žádost jen do místností, které jsou k němu ve vztahu"cizí" vzhledem k právu create_reservation.
Potvrzování žádostí
Uživatel může potvrzovat rezervace do místností, ke kterým je ve vlastnickém vztahu vzhledem k právu approve.
Mazání a editace rezervací
Mazání a editace rezervací se řídí právy edit_reservation a edit_res_by_room. Pracovat s rezervací může, pokud je splněna jedna ze tří podmínek:
  1. Vztah je vlastníkem místnosti vzhledem k právu edit_res_by_room.
  2. Rezervace byla založena uživatelem pokoušejícím se o úpravu a uživatel má právo edit_reservation alespoň na úrovni učitel.
  3. Učitel napsaný na rezervaci spadá (vzhledem k právu edit_reservation) do působnosti uživatele pokoušejícího se o úpravu. Tato působnost je určena právem takto:
Pro smazání rezervace toto stačí. Přesun rezervace je realizován jako odstranění staré rezervace a založení nové. Při zakládání nové rezervace proběhnou normálně všechny kontroly práv jako při zakládání nové rezervace.