1. Oprávnění na sloupce třídy

    Článek: AN0001562Aktualizováno::

    Prostřednictvím oprávnění přiděleného určité roli v detailu třídy získává role právo na všechny sloupce v dané třídě. Obecně platí tato omezení:

    • Sloupec, který nemá povolenu editaci (rozlišuje se při vytvoření nebo při změně záznamu) nemůže být editován, i když uživatel má roli umožňující editaci.
    • Sloupec, který nemá povoleno zobrazení (rozlišuje se v seznamu záznamů, v detailu záznamů a v detailním seznamu záznamů) nemůže být zobrazen, i když uživatel má roli umožňující zobrazení.
    • Pokud je oprávnění přiděleno ve vztahu k určité organizační struktuře, uživatel má práva pouze na záznamy patřící do jeho organizační jednotky nebo do jí podřízených organizačních jednotek (v případě nastavení I přes podřízené).

    Nad tuto obecnou úpravu lze omezit oprávnění na čtení nebo editaci jednotlivých sloupců prostřednictvím skriptů (pro seznam záznamů nebo detail záznamu) definovaných v detailu třídy na záložce Skripty. Rozhodnutí, zda sloupec má být zobrazen/povolen k editaci, lze založit na členství uživatele v roli a použít funkce IsUserInRole nebo IsUserInModelRole, kterými disponuje objekt skriptu Person. Podobně lze řídit oprávnění na zobrazení/stažení souborů ve sloupci typu Soubor.

     Příklad

    1. Nastavení sloupce pouze ke čtení

    Tento skript pro detail záznamu definovaný v detailu třídy na záložce Skripty zakáže editaci sloupce "Tester" všem uživatelům, kteří nemají roli "project-manager" nebo "application-manager".

    function OnAfterLoadColumns()
    {
      if ( !( OG.Person.IsUserInRole('project-manager') || OG.Person.IsUserInRole('application-manager')))
      {
        OGColumns.GetByCode('tester').ReadOnly = true;
      }
    }

    Funkce IsUserInRole vrátí true, i když je daná role na modelu zakázána. Pokud chceme editaci povolit, pouze pokud je uživatel členem role a zároveň je role na daném modelu povolena, použijeme funkci IsUserInModelRole.

    function OnAfterLoadColumns()
    {
      if ( !( OG.Person.IsUserInModelRole('project-manager',2) || OG.Person.IsUserInModelRole('application-manager',2)))
      {
        OGColumns.GetByCode('tester').ReadOnly = true;
      }
    }

    2. Skrytí sloupce

    Tento skript pro detail záznamu definovaný v detailu třídy na záložce Skripty skryje sloupec "Tester" všem uživatelům, kteří nemají roli "project-manager" nebo "application-manager" nebo je mají, ale tyto role nejsou na modelu Id=2 povoleny.

    function OnAfterLoadColumns()
    {
      if ( !( OG.Person.IsUserInModelRole('project-manager',2) || OG.Person.IsUserInModelRole('application-manager',2)))
      {
        OGColumns.GetByCode('tester').Visible = false;
      }
    }

    Zároveň se skrytím sloupce dojde k posunu ostatních prvků na stránce. Pokud polohu ostatních prvků nechceme ovlivnit a chceme místo dosavadního, nyní skrývaného prvku ponechat prázdné místo, použijeme vlastnost HideWithBlankSpace datového typu OG ColumnClassDefUserSet.

    function OnAfterLoadColumns()
    {
      if ( !( OG.Person.IsUserInModelRole('project-manager',2) || OG.Person.IsUserInModelRole('application-manager',2)))
      {
        OGColumns.GetByCode('tester').Visible = false;
        OGColumns.GetByCode('tester').HideWithBlankSpace =true;
      }
    }

    3. Zabránění zobrazení/stažení souboru

    Tento skript pro sloupec typu Soubor zakáže zobrazení/stažení souborů v tomto sloupci všem uživatelům, kteří nemají roli "project-manager" nebo "application-manager".

    if ( !( OG.Person.IsUserInModelRole('project-manager',2) || OG.Person.IsUserInModelRole('application-manager',2)))
    {
    OGForm.SetError('You are not authorized to download or display the file content.');
    return false;
    }

×