Článek: AN0001564Aktualizováno::
Oprávnění se nastavují a odebírají na několika úrovních. Pro reálnou funkčnost oprávnění na určité třídě je třeba splnit následující předpoklady (příklad níže uvádí přístupová oprávnění na třídu, nicméně stejný princip platí i u ostatních objektů):
-
Uživatel má účet, který není uzamknut, a má povoleno přihlásit se do aplikace.
-
Uživatel je přiřazen do role.
-
Tato role je povolena.
-
Existuje model, který je povolen.
-
Role je přiřazena do tohoto modelu.
-
Role je na tomto modelu povolena.
-
V modelu existuje třída, která má povoleny určité operace.
-
Třídě je přiřazena role s daným typem přístupu.
Předpoklady pro funkčnost oprávnění dokumentuje níže uvedený datový model (na obrázku jsou zobrazeny pouze ty vlastnosti entit, které jsou klíčové pro funkčnost oprávnění).
![](../ImagesData/Help-cs-CZ/0006.png)
Kromě přidělených oprávnění je typ přístupu na data podmíněn nastavením na úrovni třídy a sloupce.
Na úrovni třídy se definuje:
-
Povolení vložení záznamů
-
Povolení změny záznamů
-
Povolení zobrazení seznamu dat
-
Povolení zobrazení detailu dat
-
Povolení zobrazení detailního výpisu
-
Povolení mazání záznamů (fyzické nebo logické)
-
Povolení zobrazení smazaných záznamů
-
Povolení hromadných změn
Na úrovni sloupce se definuje:
-
Povolení zobrazení v seznamu dat
-
Povoilení zobrazení v detailu dat
-
Povolení zobrazení v detailním výpisu
-
Povolení editace při vytváření
-
Povolení editace při změně
Přidělení rolí na úrovni třídy je možné provádět na stránce s definici třídy nebo stránce správy rolí, která umožňuje kontrolu a přidělení rolí všem třídám modelu.
Zobrazení sloupce či tlačítka lze jště ovlivnit pomocí skriptů pro záznamy a stránky (objekt OGColumns nebo OGControlOperations). Objekt je možné jen skrýt. Nelze zobrazit objekt, na který uživatel nemá právo.
Dědičnost tříd a přístupová oprávnění
Pro třídy s nastavenou dědičností (třída má předka) se přístupová oprávnění zjišťují pouze pro aktuální třídu a nikoli pro všechny předky.
Dotazy
U dotazů se přístup zjišťuje pouze pro daný dotaz a nikoli pro objekty použité v dotazu. Můžete tak uživateli s nižší rolí zobrazit některá data z citlivé třídy.
Bezpečnostní problematika dotazů je popsána v sekci Dotazy na cizí data.
Stránky
Pro stránky se přístup zjišťuje pouze na celou stránku. Pokud chcete zobrazit webparty na stránce jen pro určité role, pak musíte použít skriptování na úrovni stránky a použít funkce IsUserInRole. Webparty pak lze libovolně zobrazovat či skrývat pomocí přikazu
OGWebParts['kod_webpartu'].Visible = false;
Oprávnění a menu či tlačítka
Uživateli jsou nabízeny pouze ty položky menu, na které má oprávnění, případně ty složky, které obsahují položky, na které má oprávnění. Podobně se uživateli zobrazují pouze ta ovládací tlačítka, která spouštějí akce, na jejichž provedení má uživatel oprávnění.