Oprávnění, povolení, řízení přístupu
  • 04 Aug 2023
  • 7 Minut ke čtení
  • Přispěvatelé

Oprávnění, povolení, řízení přístupu


Shrnutí článku

Abychom mohli pro různé uživatele (či role, skupiny uživatelů) určit, které záznamy mají mít možnost v systému vidět, které záznamy mohou editovat a které akce mohou provádět, pracujeme v aplikaci INSIO s oprávněními, povoleními, povolenými stavy workflow a povolenými akcemi.

Oprávnění, povolení a povolené stavy workflow přidělujeme uživatelům, případně rolím nebo skupinám. Pokud vytváříme nastavení, které je nebo může později být společné pro více uživatelů, doporučujeme toto nastavení řídit právě skrze role (resp. skupiny) a jednotlivé uživatele pouze do těchto rolí (resp. skupin) obsazovat.

Povolené akce se nastavují zvlášť, a to v detailu jednotlivých agend. Nastavení povolených akcí pak platí vždy pouze pro doklady spadající do dané agendy. Výčet povolených akcí v nastavení agendy je závislý na zvoleném modulu.

Oprávnění a akce
Jsou základem pro řízení přístupu k záznamům a určování, které akce může uživatel v apliakci provádět. Oprávnění rozlišujeme dle jejich chování:

  • Klasická

    • Udělují nějaké právo, platná obecně
  • Negační

    • Neboli limitační - něco omezují nebo zakazují
  • Akce s vazbou na workflow

    • jsou platné pouze při splnění dalších podmínek, a sice:
      • V nastavení agendy, záložka Povolené akce, jsou definovány stavy workflow, pro které je akce povolena
      • Konkrétní doklad dané agendy se právě nachází v jednom ze stavů, pro které je daná akce povolena

Povolení – v případě, že má uživatel uděleno limitační oprávnění, definuje, pro které záznamy omezení neplatí.

Povolené stavy workflow – toto nastavení určuje výčet jednotlivých stavů workflow, které má uživatel v rámci systému na dokladech povoleno nastavovat (volit).

Povolené akce – u oprávnění s vazbou na workflow určuje, v jaké agendě a v jakém stavu workflow je možné oprávnění využít

Oprávnění a akce

Seznam oprávnění je k dispozici přímo v systému v menu „Systém“ -> „Seznam oprávnění a akcí“.

Přehled je možné filtrovat dle jednotlivých modulů. V tomto přehledu je také krátký název, který ve většině případů supluje také popis.

Oprávnění označená červeným trojúhelníkem jsou negační oprávnění – něco zakazují.

Oprávnění označená ozubeným kolečkem (akce) mají vazbu na workflow. To znamená, že nestačí, že uživatel disponuje daným oprávněním. Toto oprávnění ještě musí být povolené ve stavech workflow (Agendy -> Povolené akce). Tím můžeme určit, že „čtení poznámek“ je sice dostupné ve všech stavech workflow, ale „zápis poznámek“ pouze ve stavech, kdy je (v tomto případě helpdeskový požadavek) otevřen a není uzavřen. Souhra s Povolenými akcemi je popsána dále níže.

Povolení

Povolení se v systému definují pro následující atributy:

  • Agendy
  • Střediska
  • Objekty
  • Technologie
  • Partneři
  • Uživatelské atributy

Prostřednictvím těchto atributů můžete (v kombinaci s limitačními oprávněními) ovlivňovat, kdo co v systému uvidí.

Příklad – v systému jsou následující helpdeskové agendy:

Chceme dosáhnout toho, aby účetní mohla zadávat požadavky na IT (pro případ, že se jí porouchá IT technika), ale ostatní agendy by vidět neměla. Proto jí k oprávnění Helpdesk.Access a HelpdeskZapis přidáme i limitující oprávnění Helpdesk.Access.LimitByAgenda a vybereme v Povolení pouze agendu IT support – tím bude moci zapisovat požadavky právě do této agendy:

Ale pozor, když si paní účetní zobrazí přehled požadavků, chceme dostáhnout toho, aby viděla pouze své požadavky. Ty které zadala ona. Nechceme, aby viděla celou frontu IT požadavků. Toho dosáhneme v nastavení oprávnění tím, že dále omezíme čtení požadavků podle zapisovatele (Helpdesk.Access.LimitByCreator):

Povolené stavy workflow

Aby mohl uživatel v rámci dokladu provést změnu workflow na kterýkoli stav, musí mít tento stav mezi svými Povolenými stavy workflow. Toho lze opět docílit tím, že Povolený stav workflow přidělíme přímo uživateli v jeho účtu, nebo jej uživatel může dědit skrze členství v roli/skupině, která má tento stav povolený. (Dostupné volby změn stavu v dokladu dále současně podléhají nastavení procesu workflow, který je přiřazen agendě, do které doklad spadá. O nastavení procesu workflow pojednává článěk Workflow - Následné a Předchozí stavy.)

Povolené akce, vazba oprávnění na workflow

Jak bylo zmíněno výše, existují oprávnění, která mají vazbu na workflow. Pokud uživatel takovým oprávněním disponuje, ještě neznamená, že mu funguje. Určuje to totiž dále kombinace stavu workflow, ve kterém se doklad nachází a povolení (Povolené akce) ve stavech workflow definovaných v agendě.

Nejlépe si to vysvětlíme na příkladu: když vytvoříme fakturu a tuto fakturu uložíme, mělo by být možné ji stále editovat. Uložení je pouze potvrzení provedených změn. Po vytvoření se faktura nachází ve výchozím stavu workflow, nazvěme ho „Editace faktury“. Když máme fakturu připravenou, potvrdíme to návazným stavem workflow např. „Faktura blokována“. V tento moment, když nastane blokace faktury, by už nic jít editovat nemělo. Naopak v momentě, kdy je faktura blokována, by se měla objevit jiná funkce, a to možnost pro odeslání takto zablokované faktury emailem. Jak v tom udělat pořádek?

Pro vytvoření a editaci faktury musí uživatel disponovat oprávněním InvoiceIssued.Access a InvoiceIssued.Edit

Pro možnost odeslat email s fakturou ze systému musí uživatel mít oprávnění InvoiceIssued.SendMail

Pokud obě oprávnění má, pak se podívejte do nastavení agendy na záložku „Povolené akce“. Zde vidíte seznam oprávnění, která jsou relevantní pro daný typ agendy (v tomto případě Prodej > Faktury vydané) a ve sloupci „Povolené stavy“ jsou stavy workflow, ve kterých je dané oprávnění (či akce) aplikovatelná. Vlastní hodnoty můžete nastavit tlačítkem „Vybrat hodnoty“.

Řízení přístupu k záznamům

Tato část obsahuje obecný popis a logiku, která je použita v jednotlivých modulech pro řízení přístupu k záznamům v systému. Ovlivňujeme tím to, jaké záznamy v systému uživatel uvidí a ke kterým se naopak nedostane.

V listopadu 2019 (verze aplikace 4.21) byl v provoz uveden nový systém oprávnění přístupu (oprávnění typu {PrefixModulu}.Access), který je flexibilnější a nahrazuje původní systém oprávnění (HelpdeskCteni, ObjednavkyCteni atd.).

Pokud bude oprávnění {PrefixModulu}.Access použito (u role nebo uživatele), budou se řídit přístupy u dotčených uživatelů podle tohoto nového konceptu. V opačném případě se budou nadále řídit podle staré logiky. Díky tomu je možné role (a uživatele v nich) na novou logiku oprávnění migrovat postupně.

Starý typ oprávnění

Starý způsob oprávnění si pouze krátce popíšeme pro úplnost. Nedoporučujeme jej využívat u nových instalací a konfigurací.

Původní logika oprávnění vyžaduje, aby k základnímu oprávnění (HelpdeskCteni, ObjednavkyCteni atd.) byla definována veškerá další relevantní kritéria (povolení na agendy, objekty atd.), jinak uživatel neuvidí žádné záznamy.

Toto je základní rozdíl oproti nové logice, kdy se plný přístup omezuje limitačními oprávněními:

Nový typ oprávnění

Pro každý modul je doplněno nové základní oprávnění, které se jmenuje {PrefixModulu}.Access, tedy např. Helpdesk.Access (pro přístup k helpdeskovým požadavkům), InvoiceReceived.Access (faktury přijaté).

Toto je základní oprávnění, bez kterého nemá uživatel přístup k žádnému záznamu v daném modulu.

Pokud bude mít uživatel POUZE toto oprávnění (tedy např. Helpdesk.Access), bude mít přístup ke VŠEM záznamům modulu (v případě helpdesku tedy ke všem požadavkům).

Omezení přístupu k záznamům

Přístup uživatelů k záznamům je možné pomocí dalších oprávnění omezovat. Veliká výhoda tohoto konceptu je v tom, že si budete moci pro každou roli (či skupinu uživatelů) určit, pomocí kterých Povolení se má řídit přístup k záznamům:

{PrefixModulu}.Access.LimitByAgenda

  • Omezí záznamy podle Agend, na které má uživatel Povolení.

{PrefixModulu}.Access.LimitByEntity

  • Omezí záznamy podle Entit, ke které má uživatel Povolení.
  • Povolení na Entity se dnes nastavuje pouze na roli či skupině u základních oprávnění opravňující přístup (tedy v záložce Oprávnění u konkrétního oprávnění) přes tlačítko "Entity".

{PrefixModulu}.Access.LimitByCenter

  • Omezí záznamy podle Středisek, na které má uživatel Povolení NEBO je Manažerem střediska.

{PrefixModulu}.Access.LimitByProject

  • Omezí záznamy podle Zakázek, u kterých je uživatel uveden jako Manažer zakázky NEBO má Povolení na Skupinu zakázek obsahující zakázku na faktuře.

{PrefixModulu}.Access.LimitByObject

  • Omezí záznamy podle Objektů, na které má uživatel Povolení NEBO je Manažerem objektu.

{PrefixModulu}.Access.LimitByPartner

  • Omezí záznamy na ty, u nichž je dodavatelem (odběratelem) firma, kterou má uživatel nastaven v uživatelském účtu, nebo ke které má Povolení.

{PrefixModulu}.Access.LimitByCreator

  • Omezí záznamy pouze na takové, které uživatel sám vytvořil.
Kombinace více limitačních oprávnění

Tato limitační oprávnění je možné kombinovat a v takovém případě se sčítají, resp. tím dochází k většímu (striktnějšímu) omezení.

Zadavatel

{PrefixModulu}.Access.RevokeCreator

Pokud je uživatel zadavatelem, vidí z této podstaty takový záznam vždy, ať je následně kategorizován jakkoliv. Neberou se tedy v potaz žádná omezení. Tímto oprávněním potlačíte toto chování a uživatel své záznamy neuvidí.

Řešitel ve workflow

{PrefixModulu}.Access.ForFormerSolvers

Pokud se uživatel stane ve workflow řešitelem, neberou se v potaz žádná omezení a uživatel takový záznam uvidí vždy. Pokud je následně záznam předán na jiného řešitele, uživatel záznam přestává vidět. Chcete-li vynutit, aby uživatel, který se stal byť jen jednou v určitém stavu workflow řešitelem (tedy např. schvalovatelem, požadavek či faktura mu byla předána k posouzení, ke komentáři apod.), aby viděl takový záznam již napořád, stačí k tomu přidat uvedené oprávnění.

Viditelnost dokladů pouze v určitých stavech workflow

K dalšímu omezení viditelnosti dokladů může být docíleno nastavením v detailu Role a záložce Workflow hodnot "Zákaz viditelnosti dokladů ve stavech" a "Povolit viditelnost dokladů pouze ve stavech".

Omezení viditelnosti pouze na přehled

{PrefixModulu}.Access.ListOnly

V určitých situacích chceme uživateli dát oprávnění pouze na přehled a zamezit přístup do detailu záznamu. V takovém případě použijete uvedené oprávnění.

POZOR:

V původním (resp. stále aktuálním) mechanismu oprávnění u faktur přijatých uživatelé běžně viděli záznamy, které neměly zadané středisko a dodavatele. V cílovém stavu to takto fungovat nebude.


Byl tento článek užitečný?