Systém uživatelů umožňuje projektantům vytvářet zabezpečené aplikace PROMOTIC.
V systému PROMOTIC je zabudováno přihlašování (autentizace) lokálních i síťových uživatelů do běžící aplikace. Pokud vznikne požadavek (lokální nebo síťový) na chráněnou operaci, pak operace bude provedena pouze pokud má příslušný přihlášený uživatel požadované oprávnění (patří do určitých skupin uživatelů)(autorizace). Pokud uživatel požadované oprávnění nemá, pak operace selže s chybovým hlášením.
Uživatel se přihlašuje do systému PROMOTIC lokálně nebo síťově a musí projít systémem
autentizace (ověření identity), při kterém se ověřuje jméno a heslo. Po úspěšné autentizaci uživatele se vytvoří v systému PROMOTIC konkrétní
přihlášený uživatel (lokální nebo síťový) reprezentovaný objektem
PmUser.
Při přihlášení dvou uživatelů stejným jménem a heslem z různých počítačů, vznikají také dva různí přihlášení uživatelé s odlišnou IP adresou. Seznam právě přihlášených uživatelů lze vidět v INFO systému a lze ho také získat pomocí metod
Pm.LoggedUser a
Pm.GetUserInfo. Na právě přihlášeného uživatele také odkazuje:
Datová vazba UP - Vlastnost přihlášeného uživatele.
S přihlášeným uživatelem je spojen seznam "skupin uživatelů", do kterých přihlášený uživatel patří. Pro přihlášeného uživatele je tento seznam "skupin uživatelů" klíčový, protože reprezentuje jeho oprávnění pro různé činnosti (chráněné operace). U chráněných operací se následně uvádí seznam "skupin uživatelů", které mají právo chráněnou operaci provést. Takže zařazením uživatele do jednotlivých "skupin uživatelů" se určuje, co daný uživatel v aplikaci smí a nesmí provádět.
Základní pojmy:
-
Autentizace:
Proces ověření totožnosti (autentizace, přihlášení) uživatele (například jméno a heslo).
-
Autorizace:
Proces kontroly zda daný autentizovaný (přihlášený) uživatel má oprávnění něco udělat (například pomocí skupin uživatelů).
Subsystém se skládá z následujících logických částí:
1) Skupiny uživatelů: Umožňuje vytvořit seznam všech logických skupin uživatelů aplikace (např.
$ADMIN,
$OPER,
GUESTS atd.). Konfigurace se provádí ve vývojovém prostředí v kartě "
Uživatelé". Pro každého přihlášeného uživatele je zásadní, do kterých skupin uživatelůje zařazen. Protože zabezpečení aplikace se provádí na tyto skupiny uživatelů (nikoliv na konkrétní uživatele), následné přidávání a odebírání uživatelů (i v runtime) lze provézt bez změny aplikace.
2) Uživatelé:
a) PROMOTIC uživatelé: Autentizaci lokálního uživatele a síťového uživatele provádí PROMOTIC. Umožňuje vytvořit seznam všech PROMOTIC uživatelů aplikace s určením typu uživatele (lokální uživatel a/nebo síťový uživatel) a nastavit uživatelům přihlašovací hesla a určit členství ve skupinách uživatelů.
Konfigurace se provádí
buď ve vývojovém prostředí v kartě "
Uživatelé",
nebo ve spuštěné aplikaci metodou
Pm.WndEditUsers v okně editace uživatelů
nebo přímo pomocí metod
Pm.AddUser a
Pm.RemoveUser.
b) Windows uživatelé: Autentizaci lokálního uživatele a síťového uživatele provádí Windows. Umožňuje k přihlašování využít jméno a heslo Windows uživatele (v doméně). Následně je možné využít seznam lokálních a globálních Windows skupin uživatelů (do kterých Windows uživatel patří) k vytvoření seznamu skupin uživatelů.
V každé skupině uživatelů je možno zadat jméno odpovídající Windows skupiny uživatelů. Přihlášený uživatel, který se autentizoval ve Windows, se následně v systému PROMOTIC už ničím neliší od přihlášeného PROMOTIC uživatele. Tento koncept umožňuje následnou správu jednotlivých uživatelů aplikace, určení jejich oprávnění provádět prostředky Windows (domény, Active Directory, atd.). Správu jednotlivých uživatelů už neprovádí systém PROMOTIC.
3) Oprávnění u chráněných operací aplikace: Umožňuje chránit kritické části aplikace před neoprávněným vstupem uživatelů aplikace (například otevření nebo zavření obrazu, zastavení aplikace, atd.).
Oprávnění se konfigurují v kartě "
Oprávnění" příslušných objektů (například
Oprávnění, viz: karta "
Oprávnění").
Při nastavování oprávnění pro jednotlivé operace se vychází ze skupin uživatelů.
4) Přihlašování lokálních uživatelů aplikace (autentizace lokálního uživatele).
5) Přihlašování síťových uživatelů aplikace (ověření identity síťového uživatele).
6) Ověření oprávnění přihlášeného uživatele k provedení chráněné operace.
Přihlašování lokálních uživatelů aplikace (autentizace lokálního uživatele)
Obsluha spuštěné lokální aplikace se může pomocí prostředků PROMOTIC přihlásit jako lokální uživatel aplikace pod přiděleným jménem a heslem, a tím získat příslušná oprávnění podle svého zařazení ve skupinách uživatelů. Ve spuštěné aplikaci se lokální uživatel může přihlásit buď z nástrojové lišty nebo projektant aplikace může připravit jiný mechanismus aktivace lokálního přihlášení (jde o volání metody
Pm.WndLogon nebo
Pm.Logon).
Přihlášení lokálního uživatele se jako celek buď povede nebo nepovede.
Pokud se povede, pak je odhlášen původní lokální uživatel a přihlášen nový lokální uživatel.
Pokud se nepovede, pak zůstane přihlášený původní lokální uživatel.
Systémový náhradní nepřihlášený lokální uživatel $NOUSER_LOCAL:
Při odhlášení lokálního uživatele je automaticky přihlášen uživatel
$NOUSER_LOCAL, který představuje odhlášeného (nepřihlášeného) lokálního uživatele. Tím je zajištěno, že v systému je vždy přihlášen některý z lokálních uživatelů (skutečný nebo náhradní). Uživatel
$NOUSER_LOCAL je v aplikaci vždy přítomen, nelze ho smazat ani přejmenovat, ale lze konfigurovat jeho obsah. Uživatel
$NOUSER_LOCAL je normálním uživatelem, z hlediska konfigurace členství ve skupinách uživatelů (používaných k ověřování oprávnění) a nastavení priority. Lze ho zařadit do kteréholiv skupiny uživatelů a tak zajistit určité výchozí oprávnění i pro nepřihlášeného uživatele.
Objekt PmUser v lokální aplikaci:
V běžící aplikaci je trvale jeden objekt typu
PmUser, který představuje právě přihlášeného lokálního uživatele. Tento objekt si jednak drží runtime informace přihlášeného uživatele (například privátní data uživatele) a také si drží odkaz na konfiguraci odpovídajícího lokálního uživatele (například jméno, členství ve skupinách uživatelů, priorita) (viz
Uživatelé). V případě odhlášeného lokálního uživatele si drží odkaz na uživatele
$NOUSER_LOCAL.
Při ověřování oprávnění operace v lokální aplikaci se použije tento objekt
PmUser (právě přihlášený skutečný nebo náhradní lokální uživatel). Operace je provedena pouze pokud tento uživatel (objekt
PmUser) splní požadované oprávnění. V jiném případě je zamítnuta s příslušným upozorněním.
Přihlašování síťových uživatelů aplikace (ověření identity síťového uživatele)
Přihlašovací jméno a heslo se zasílá s každým síťovým požadavkem.
Pokud je vzdáleným klientem Web prohlížeč (
Chrome,
Firefox,
Edge,
InternetExplorer ...) a zobrazují se HTML stránky generované objektem
PmaWeb, pak je uživatel při pokusu o zobrazení chráněné stránky vyzván standardním oknem k zadání jména síťového uživatele a hesla, které jsou automaticky zaslány aplikaci PROMOTIC s požadavkem.
Pokud hlavním oknem síťové aplikace je pracovní plocha (objekt
PmaWorkspace), pak se obsluha spuštěné síťové aplikace může pomocí prostředků systému PROMOTIC přihlásit jako síťový uživatel aplikace pod přiděleným jménem a heslem, a tím získat příslušná oprávnění podle svého zařazení ve skupinách uživatelů.
Pokud je vzdáleným klientem klient aplikace PROMOTIC, pak jméno síťového uživatele a heslo se zadává přímo v jednotlivých komponentách, které umožňují napojení na vzdálenou Web server komponentu (například v parametrech metody
PmaData.ReadFromWeb, atd.).
PROMOTIC Web server si také automaticky zjistí IP adresu vzdáleného klienta. Systém PROMOTIC pak použije jméno, heslo a IP adresu síťového uživatele k ověření oprávnění pro danou operaci.
Systémový náhradní nepřihlášený síťový uživatel $NOUSER_NET:
Pokud přijde požadavek bez jména a hesla, pak bude automaticky přihlášen uživatel
$NOUSER_NET, který představuje nepřihlášeného síťového uživatele. Tím lze zajistit, že každý vzdálený požadavek bude pod určitým přihlášeným síťovým uživatelem (skutečným nebo náhradním). Uživatel
$NOUSER_NET je v aplikaci vždy přítomen, nelze ho smazat ani přejmenovat, ale lze konfigurovat jeho obsah. Uživatel
$NOUSER_NET je normálním uživatelem, z hlediska konfigurace členství ve skupinách uživatelů (používaných k ověřování oprávnění) a nastavení priority. Lze ho zařadit do kteréholiv skupiny uživatelů a tak zajistit určité výchozí oprávnění i pro nepřihlášeného uživatele.
Striktní a nestriktní režim přihlašování:
Existují dva způsoby přihlašování síťových uživatelů do aplikace:
striktní a
nestriktní režim (viz konfigurátor "
Striktní režim přihlašování síťových uživatelů do aplikace s nutností použít jméno a heslo").
V případě striktního režimu nemá uživatel
$NOUSER_NET vůbec smysl, protože striktní režim si vynutí přihlášení skutečného uživatele ještě před vlastním ověřením oprávnění.
V případě nestriktního režimu se použije uživatel
$NOUSER_NET pro každý síťový požadavek bez jména a hesla (nepřihlášený uživatel) viz
Příklad pro nestriktní Web nastavení.
Vznik objektu PmUser při vyhodnocování oprávnění požadavku:
Při vyhodnocování požadavku se vytvoří objekt typu
PmUser, který představuje přihlášeného (nebo náhradního nepřihlášeného) uživatele. Tento objekt si jednak drží runtime informace přihlášeného uživatele (například privátní data uživatele) a také si drží odkaz na konfiguraci odpovídajících síťových uživatelů (jeden nebo dva) (například jméno, členství ve skupinách uživatelů, priorita) (viz
Uživatelé). V případě nepřihlášeného síťového uživatele si drží odkaz na uživatele
$NOUSER_NET. Při ověřování oprávnění operace v síťové aplikaci se použije tento objekt
PmUser (právě přihlášený nebo nepřihlášený síťový uživatel a případně uživatel zadaný IP adresou). Operace je provedena pouze pokud tento uživatel (objekt
PmUser) splní požadované oprávnění. V jiném případě je zamítnuta s příslušným upozorněním.
Existují dva druhy síťových uživatelů z hlediska způsobu jejich nakonfigurování:
1) Uživatelé se zadaným jménem a heslem (případně i s IP adresou). V nestriktním režimu sem spadá i nepřihlášený uživatel $NOUSER_NET.
2) Uživatelé jenom se zadanou IP adresou.
Důležité je, že síťový požadavek může současně odpovídat dvěma uživatelům. Jeden typu 1 (jméno a heslo) a druhý typu 2 (jenom IP adresa). Pokud požadavek spadá současně pod dva uživatele, pak při ověřování oprávnění stačí, když jeden z nich splní oprávnění. Objekt
PmUser, který představuje přihlášeného (nebo náhradního nepřihlášeného) uživatele, si pak drží odkaz na konfiguraci obou odpovídajících síťových uživatelů. Vlastnosti a metody potom vracejí hodnoty různě upravené podle kontextu (důležitější z obou objektů, sloučení hodnot, atd.).
V aplikaci může být v danou chvíli přihlášeno několik síťových uživatelů současně (objekty
PmUser). Počet síťových uživatelů přihlášených na PROMOTIC serveru současně omezuje v zásadě pouze zakoupené licence pro určitý počet síťových klientů.
Podrobnější vysvětlení způsobu interakce při ověřování uživatele mezi klientem a serverem:
Pro klienta typu aplikace PROMOTIC platí, že každý požadavek je automaticky zaslán se zadaným jménem a heslem.
Pro klienta typu
Web prohlížeč platí následující pravidla:
1) buď je nebo není přihlášený (jménem a heslem) k PROMOTIC serveru.
2) Pamatuje si všechny navštívené stránky na serveru a při každém dalším přístupu na ně posílá automaticky spolu s požadavkem i jméno a heslo, pokud při posledním přístupu na ně bylo jméno a heslo vyžadováno (nečeká na odmítnutí s chybovým kódem 401-Unauthorized).
3) Při přístupu na dosud nenavštívenou stránku posílá nejprve požadavek bez jména a hesla.
4) Při přijetí odmítnutí požadavku serverem s chybovým kódem
401-Unauthorized (vyzvání serverem, ať klient dodá jméno a heslo):
a) Pokud je přihlášený k PROMOTIC serveru, pak vygeneruje automaticky nový požadavek včetně jména a hesla.
b) Pokud není přihlášený k PROMOTIC serveru, pak zobrazí standardní přihlašovací okno pro zadání jména a hesla a pak vygeneruje nový požadavek včetně jména a hesla.
Pro PROMOTIC server platí následující pravidla:
1) Zpracování požadavku bez dodaného jména a hesla se na PROMOTIC serveru liší podle toho, zda se jedná o striktní nebo nestriktní režim přihlašování (viz konfigurátor "
Striktní režim přihlašování síťových uživatelů do aplikace s nutností použít jméno a heslo").
a) Pokud se jedná o striktní režim, pak při přijetí požadavku od vzdáleného klienta bez dodaného jména a hesla je požadavek ihned odmítnut s chybovým kódem 401-Unauthorized.
b) Pokud se jedná o nestriktní režim, pak při přijetí požadavku od vzdáleného klienta bez dodaného jména a hesla se provede ověření oprávnění operace s tím, co bylo dodáno (nepřihlášený uživatel
$NOUSER_NET a IP adresa). Pokud je oprávnění dostatečné (bylo hlídano jen na IP adresu, povoleno všem pomocí skupiny
$ANY/
$ANY_NET nebo nepřihlášený uživatel měl dostatečná oprávnění), pak se provede operace a vytvoří se jeden objekt typu
PmUser, který představuje přihlášeného síťového uživatele. Pokud není oprávnění dostatečné, pak je požadavek odmítnut s chybovým kódem
401-Unauthorized.
2) Zpracování požadavku s dodaným jménem a heslem. PROMOTIC server se pokusí najít síťového uživatele s odpovídajicím jménem a heslem (pokud má tento uživatel současně zapnuto i hlídání IP adresy tak i s odpovídající IP adresou). Bez ohledu na to, zda byl síťový uživatel podle jména a hesla nalezen, tak se PROMOTIC server ještě pokusí najít druhého síťového uživatele s odpovídajicí IP adresou (pokud existuje uživatel hlídaný pouze na IP adresu). Pak se provede autorizace oprávnění na tyto jednoho nebo dva nalezené uživatele (podle jména a dle IP adresy). Pokud je oprávnění některého z těchto dvou uživatelů dostatečné, pak se provede operace a vytvoří se jeden objekt typu
PmUser, který představuje přihlášeného síťového uživatele.
Ověření oprávnění přihlášeného uživatele k provedení chráněné operace
Vlastní ověření oprávnění (nad objektem
PmUser) probíhá v těchto krocích:
1) Určení, zda požadavek na operaci vznikl lokálně nebo v síti.
2) Určení identifikátoru lokálního uživatele nebo síťového uživatele, který požadavek vyvolal. V případě kombinace síťového uživatele hlídaného jménem a heslem a síťového uživatele hlídaného IP adresou mohou být identifikátory dva.
3) Porovnání identifikátoru uživatele se skupinami uživatelů v oprávnění. Operace je povolena, pokud je uživatel členem některé z uvedených skupin uživatelů. V případě dvou identifikátorů uživatelů se porovnání provádí pro každý zvlášť a stačí, pokud je úspěšný alespoň jeden z nich.
Veškerá porovnání, při hledání výskytu identifikátoru uživatele ve skupinách uživatelů, končí úspěchem ihned po nalezení skupiny uživatelů, ve které je uživatel členem.
Pokud se projde naopak celý seznam a uživatel v něm není nalezen, pak hledání končí neúspěchem a operace není povolena.
Přehled systémových uživatelů a skupin uživatelů
Systémové skupiny uživatelů i systémoví uživatelé se z hlediska použití pro ověřování oprávnění neliší od normálních skupin uživatelů a normálních uživatelů. To znamená, že systémové skupiny uživatelů lze uvádět v oprávnění chráněné operace, zatímco systémové uživatele lze vkládat do skupin uživatelů.
Nedoporučuje se používaní skupin uživatelů
$ANY,
$ANY_LOCAL a
$ANY_NET v oprávnění chráněných operací. Raději používat systémové skupiny uživatelů
$OPER a
$ADMIN a případně vlastní založené skupiny uživatelů.
Zařazením uživatele
$NOUSER_LOCAL nebo
$NOUSER_NET do dané skupiny uživatelů, se při ověřování oprávnění, chráněné na danou skupinu uživatelů, nebude vyžadovat přihlášený uživatel (podobně jako při použití
$ANY). Vyřazením uživatele
$NOUSER_LOCAL nebo
$NOUSER_NET z dané skupiny uživatelů, se při ověřování oprávnění, chráněné na danou skupinu uživatelů, bude vyžadovat přihlášený uživatel. Tento koncept umožňuje zařazováním a vyřazováním uživatelů
$NOUSER_LOCAL a
$NOUSER_NET do jednotlivých skupin uživatelů, měnit chování celé aplikace, aniž by se musely měnit jednotlivá oprávnění u chráněných operací. Naproti tomu při použití skupin uživatelů
$ANY,
$ANY_LOCAL a
$ANY_NET v oprávnění chráněných operací nelze snadno změnit chování celé aplikace a je pak nutno oprávnění měnit na mnoha místech celé aplikace.
Poznámka! Ve spuštěné aplikaci je nutno zajistit, aby základní části aplikace, sloužící pro zobrazení nabídek s volbou pro přihlášení lokálního uživatele, byly přístupné i nepřihlášenému uživateli. To proto, že v lokální aplikaci se ověření oprávnění provádí proti právě přihlášenému lokálnímu uživateli. Jedná se zejména o hlavní okno aplikace (objekt
PmaWorkspace) a okno s nástrojovou lištou (objekt
PmaPanel). Toto je zajišteno již při založení nové aplikace PROMOTIC, kdy u těchto objektů jsou přednastaveny některá oprávnění tak, že obsahují skupinu uživatelů
$ANY_LOCAL. Takto je lokálnímu uživateli aplikace umožněno zobrazit část aplikace, která umožňuje jeho přihlášení. Pro síťové uživatele toto není zapotřebí, protože Web prohlížeč sám zobrazí přihlašovací okno ve chvíli, kdy se přistoupí na chráněnou stránku.
Přehled systémových uživatelů a skupin uživatelů:
$ANY:
systémová skupina uživatelů, představuje jakéhokoliv lokálního nebo síťového uživatele (přihlášený, nepřihlášený).
$ANY_LOCAL:
systémová skupina uživatelů, představuje jakéhokoliv lokálního uživatele (přihlášený, nepřihlášený).
$ANY_NET:
systémová skupina uživatelů, představuje jakéhokoliv síťového uživatele (přihlášený, nepřihlášený).
$ADMIN:
systémová skupina uživatelů, představuje skupinu uživatelů s administrátorskými právy.
$OPER:
systémová skupina uživatelů, představuje skupinu uživatelů s právem normální obsluhy.
$NOUSER_LOCAL:
systémový uživatel, představuje nepřihlášeného lokálního uživatele.
$NOUSER_NET:
systémový uživatel, představuje nepřihlášeného síťového uživatele.
Příklady použití
Uvedené příklady použití slouží jenom jako inspirace pro konkrétní použití uživatelů. Možností je mnohem více a jednotlivé způsoby lze značně kombinovat. Lze pracovat s nepřihlášenými uživateli, přihlášenými uživateli jménem a heslem, se vzdálenými uživateli na určité IP adrese, s konkrétními předem danými kombinacemi hlídaní na jméno, heslo a IP adresu současně (vyplní se v jednom uživateli) nebo s dynamicky vznikajícími kombinacemi uživatele, který se přihlásí jednak jménem a heslem z nějaké IP adresy (jeden uživatel jenom se jménem a heslem a druhý uživatel jenom s IP adresou) a tím je veden pod dvěma konfiguračními uživateli současně a má práva obou (výsledná kombinace oprávnění tak může být mnohem vyšší).
Celá aplikace chráněná na přihlášení: K tomuto účelu slouží striktní režim přihlašování (viz konfigurátor "
Striktní režim přihlašování síťových uživatelů do aplikace s nutností použít jméno a heslo"). Ten zajistí, že všichni síťoví uživatelé musí být přihlášeni jménem a heslem. Nepřihlášený uživatel
$NOUSER_NET nemá v tomto režimu smysl. V oprávněních se nedoporučuje používaní skupin uživatelů
$ANY a
$ANY_NET, které by nutnost přihlášení změkčily. Do síťové aplikace se Web prohlížeč přihlásí pouze jednou, potom na vyzvání pokaždé sám dodá jméno a heslo. Jedná se o doporučený režim aplikace.
Část aplikace nechráněná na přihlášení, další část (administrátorská) chráněná na přihlášení: K tomuto účelu slouží nestriktní režim přihlašování (viz konfigurátor "
Striktní režim přihlašování síťových uživatelů do aplikace s nutností použít jméno a heslo"). Nepřihlášeného uživatele
$NOUSER_NET zařadíme do skupiny uživatelů
$OPER (pro nechráněnou část aplikace), ale nezařadíme do skupiny uživatelů
$ADMIN. Tak je zajištěno, že do normálních částí aplikace, chráněných oprávněním na skupinu uživatelů
$OPER, se síťový uživatel dostane i bez přihlášení. Při pokusu o přístup do administrátorských částí aplikace, chráněných oprávněním na skupinu uživatelů
$ADMIN, se síťový uživatel bude muset přihlásit.
Celá aplikace nechráněná na přihlášení: K tomuto účelu slouží nestriktní režim přihlašování (viz konfigurátor "
Striktní režim přihlašování síťových uživatelů do aplikace s nutností použít jméno a heslo"). Nepřihlášeného uživatele
$NOUSER_NET zařadíme do skupin uživatelů
$OPER a
$ADMIN. Tak je zajištěno, že do normálních i administrátorských částí aplikace se síťový uživatel dostane bez přihlášení.
Část aplikace chráněná na přístup uživatelů z daných IP adres, další část (administrátorská) chráněná na přihlášení: K tomuto účelu slouží nestriktní režim přihlašování (viz konfigurátor "
Striktní režim přihlašování síťových uživatelů do aplikace s nutností použít jméno a heslo"). Nepřihlášeného uživatele
$NOUSER_NET nezařadíme do žádné skupiny uživatelů. Vytvoříme síťové uživatele pro konkrétní IP adresy a zařadíme je do skupiny uživatelů
$OPER. Tak je zajištěno, že do normálních částí aplikace se síťový uživatel z daných IP adres dostane bez přihlášení. Do administrátorských částí aplikace se síťový uživatel bude muset přihlásit.
Administrátorská část aplikace chráněná na přihlášení z dané IP adresy: Vytvoříme síťové uživatele s administrátorskými právy se zapnutým přihlašováním jménem i kontrolou na IP adresu a zařadíme je do skupiny uživatelů
$ADMIN. Tak je zajištěno, že do administrátorských částí aplikace se síťový uživatel dostane s přihlášením a z dané IP adresy.
Změna úvodního obrazu po přihlášení nového uživatele
Praktická ukázka přepnutí úvodního obrazu v rámu
main po přihlášení nového uživatele (lokálně i na webu).
Příklad:
V aplikaci musí být jeden trvale otevřený obraz. Typicky
Toolbar a v něm v události
onPanelStartEnd bude následující skript:
JavaScriptVyber a zkopíruj do schránky
var sPath = pMe.PmPanel.Methods.GetUserInfo();
if (Pm.IsValid(sPath))
{
Pm.CreateView(null, sPath, "", "target:main;").Open();
}
V metodách tohoto obrazu se založí nová uživatelská metoda GetUserInfo, která vrací cestu k požadovanému obrazu podle id přihlašovaného uživatele.
JavaScriptVyber a zkopíruj do schránky
switch (pContext.User.Id)
{
case "USER_OPER": return "/Reports/PanelReport";
case "USER_ADMIN": return "/Trend/PanelTrend";
default: return "/MainPanel";
}
Toto řešení nyní vyhovuje pouze pro webové klienty. Pro lokální uživatele je nutné ještě v události
onUserLogonEnd objektu
PmaRoot doplnit toto:
JavaScriptVyber a zkopíruj do schránky
if (pEvent.User.Type == 1)
{
var sPath = pMe.Pm("/Workspace/Toolbar").Methods.GetUserInfo();
if (Pm.IsValid(sPath))
{
Pm.CreateView(null, sPath, "", "target:main;").Open();
}
}