Univerzitní informační systém III., Lednice 2004 Nový nový právní systém Ing. Aleš Kutín
2 Univerzitní informační systém III., Lednice 2004 Obsah Právní systém obecně Historie právních systémů UIS Subjektivita práv – nově Etapy vývoje Pod pokličkou n.n.p.s. Problémy a nejasnosti Diskuse, dotazy
3 Univerzitní informační systém III., Lednice 2004 Právní systém každý větší IS potřebuje správu oprávnění – právní systém (p.s.) právní systém určuje: jaké aplikace uživatel může používat stupeň pravomocí v těchto aplikacích (čtení, zápis, správa) jaká data jsou přístupná (jedna fakulta, celá univerzita,...) webové prostředí je bezstavové a nelineární -> nutnost kontroly práv při zpracování každého požadavku p.s. jako klíčová část jádra IS musí být: efektivní a rychlý (je součástí každé stránky) bezpečný snadno spravovatelný a dostatečně flexibilní
4 Univerzitní informační systém III., Lednice 2004 Právní systém Komponenty právního systému práva opravňují uživatele k nějaké činnosti v IS (spuštění studijní evidence, vkládání fotek, založení studia,...) role sdružují několik souvisejících práv nutných k ovládání určité skupiny aplikací (referentka, vedoucí ústavu, OSSA,...) uživatelé nositelé práv a rolí skupiny uživatelů prvek usnadňující správu právního systému (referentky AF, integrátoři fakulty, vývojáří,...)
5 Univerzitní informační systém III., Lednice 2004 Právní systém v úplném právním systému mohou mezi čtyřmi jmenovanými entitami vzniknout jakékoliv vazby jádro musí garantovat tranzitivitu (přidělením práva do role získají toto právo všichni uživatelé skupiny, která má roli přidělenu)
6 Univerzitní informační systém III., Lednice 2004 Právní systém Další náležitosti zanořování jednotlivých vztahů (skupina ve skupině, role v roli) časové omezení platnosti udělených práv (popřípadě členství uživatele ve skupině delegace – řízení možnosti předávání práv dalším uživatelům subjektivita – omezení působnosti práva (podrobněji dále)
7 Univerzitní informační systém III., Lednice 2004 Historie Starý právní systém původní p.s. UIS, jediný funkční, aktuálně v provozu používá zjednodušený model – jen uživatelské skupiny bez možnosti zanořování omezování práv na subjekty – odpovídají pracovištím MZLU (v praxi jen možnost fakultně/celouniverzitně) jádro využívá PL/SQL balík (hlavně pro uchování globálních proměnných) a DB funkce patri_neco_do_subjektu hlavní slabiny: omezená možnost subjektivity práv neefektivní implementace právních funkcí problematická správa z hlediska integrátora chybějící role a „chaos“ v právech
8 Univerzitní informační systém III., Lednice 2004 Historie Nový právní systém 1 J. Müller, 2001 snaha o zavedení úplného právního systému (skupiny,práva,role) včetně zanoření původní jádro včetně systému subjektivity ponecháno vývoj zastaven (nefungovala tranzitivita) Nový právní systém 2 A. Kutín, T. Klein, 2002 navazuje na zadání n.p.s. 1 – vyřešena tranzitivita pomocí komplexního systému triggerů, rozpadových a „mirrorových“ tabulek (přes 30 tabulek a 50 triggerů) vyvinuty nové aplikace pro správu skupin a práv uživatelů (prezentováno v Lednici 2002) neuveden do ostrého provozu, postupně zastaral
9 Univerzitní informační systém III., Lednice 2004 Historie Nový nový právní systém A. Kutín, 2004-? úplný právní systém, tranzitivita zcela nové jádro – zefektivnění stávajících a zavedení nových funkcí subjektivita pomocí kvalifikátorů zcela nová, atomická práva sdružená do rolí propojení s evidencí aplikací nové aplikace pro správu
10 Univerzitní informační systém III., Lednice 2004 Subjektivita práv – nově při omezování práva jde v DB o prostou restrikci výběru z nějakého číselníku (právo stud-e na PEF -> vyber všechny uživatele – studenty PEF) výběr podmnožiny objektů dané vlastnosti... -> kvalifikátory !! místo „na subjekty“ (rozuměj na fakulty) lze tedy práva udělovat „na kvalifikátory“ použitím Q vzniká možnost zcela libovolného omezování působnosti práva (prezenční doktorandi AF, učitelé předmětů ÚI) zcela automatické je získání množiny záznamů na něž má uživatel právo (prosté vyhodnocení kvalifikátorů tabulkovou funkcí) – odpadá potřeba DB funkcí i globálních proměnných práva udělována na kvalifikátory různých tříd – podle objektu, který omezují (evidence pracovišť – Q třídy subjekt) existují „bezsubjektová“ práva (vývoj UIS, vkládání fotek)
11 Univerzitní informační systém III., Lednice 2004 Delegace práv – nově zásadní novinka: uživatelé delegují pouze role nová práva zcela atomická, svázána s aplikacemi a sdružována vždy do rolí (vazby uživatel–právo, skupina–právo zcela chybí) definici rolí zajišťuje vývoj UIS při delegaci možnost udělit právo jen na kvalifikátory podřízené Q na něž mám právo (využití stromu kvalifikátorů) historické tabulky – uchování všech změn v právním systému pro případný audit funkční časová omezení platnosti implicitní přidělování pomocí kvalifikátorů
12 Univerzitní informační systém III., Lednice 2004 Perl API – nově stávající funkce ma_pravo zůstane zachována, její význam však bude čistě zjišťovací (žádná inicializace glob. proměnných) na úrovni UIS.pm zavedeno cachování předchozích volání ma_pravo nové funkce (zatím jen PL/SQL jádro): ma_pravo_objekty vrací přímo seznam objektů (ID), na něž má daný uživatel právo možnost výběr omezit (kvalifikátorem nebo dynafikátorem) možnost rozšíření části SELECT (nedořešeno) ma_pravo_objekt klasická DB funkce k použití v části WHERE ma_pravo_subjekty seznam subjektů na něž má právo uděleno (vstupem je úroveň rozlišení – fakulty, ústavy) pro generování „znaků fakult“
13 Univerzitní informační systém III., Lednice 2004 Etapy vývoje 1. DB jádro spojovací a rozpadové tabulky, triggery zajišťující tranzitivitu 2. PL/SQL jádro zapojení kvalifikátorů, právní funkce, PKG_PRAVNI 3. Perl API zpřístupnění, případně doplnění PL/SQL funkcí 4. Servisní aplikace delegace práv, správa uživatelů a skupin, správa rolí a práv 5. Napojení na evidenci aplikací, vytvoření nových práv a rolí podrobná analýza stávajícího stavu 6. Přechod mezi starým a novým p.s. bude pozvolný, nutnost koexistence obou systému po určitou dobu synchornizování starý nový
14 Univerzitní informační systém III., Lednice 2004 Pod pokličkou Tranzitivita základem opět triggery, původní řešení z n.p.s. přepracováno počet pomocných tabulek omezen, PL/SQL kód minimalizován okruhy tabulek: čelní spojovací (uživatelé ve skupině, role v roli,...) rozpadové, 1. okruh (všichni uživatelé ve skupině) rozpadové, 2. okruh (explicitní práva a role skupin/uživatelů) výsledné rozpadové – dvě úrovně (duplicitní a „DISTINCTnutá“) základní princip: záznamy na n-té úrovni rozpadu pevně svázány (cizí klíče) se záznamy n-1. úrovně kód triggerů redukován na INSERT-SELECTy a DELETy na poslední úrovni proveden DISTINCT včetně vyřazení „zbytečných“ záznamů
15 Univerzitní informační systém III., Lednice 2004 Pod pokličkou Subjektivita přímé použití kvalifikátorů nebo parafikátorů nevhodné spojením výhod obou vzniká subjektifikátor (SF) SF je strukturou Q, nebo max. tříparametrický PQ použitý v p.s. v právním systému mohou být použity jen určité kvalifikátory omezení z důvodu snadného generování stromů speciálně pro právní systém dva stromy: strom právních fikátorů – pohromadě Q a PQ použité v p.s., nutný pro delegaci strom subjektifikátorů – vazby mezi SF, nutné pro výslednou rozpadovou tabulku práv a rolí mechanismus: role přidělena uživateli (skupině) na (parametrický) kvalifikátor jádro dohledá nebo založí subjektifikátor, vloží záznam do rozpad. tabulek spuštění kaskády triggerů a výsledně refresh funkce -> nový stav jádro pracuje se SF (buď jako s Q, nebo přes podmínky)
16 Univerzitní informační systém III., Lednice 2004 Pod pokličkou Delegace při delegaci nesmí být uživatel schopen udělit jinou roli a na jiný kvalifikátor (resp. hodnoty parametrů) než je oprávněn nutná zpětná transformace subjektifikátor -> kvali/parafikátor netriviální úkol, další komplikace vnášejí UNIONy využívají se oba stromy nutná je evidence vztahů mezi podmínkami kvalifikátorů (formální a závislé podmínky) – student programu x student oboru, zaměstnanec ústavu x zaměstnanec fakulty samotná delegace – vícekrokový postup (role – parafikátor – podmínky), řeší komplexní perlový kód
17 Univerzitní informační systém III., Lednice 2004 Problémy a nejasnosti sdružování práv různých třídy do jedné role (řešení – subjektizátory?) část SELECT v kvalifikátorech kdo vymyslí všechna nová práva role? využije se to vůbec? problém přechodu – koexistence, přepis aplikací a jádra (šablony)
18 Univerzitní informační systém III., Lednice 2004 Závěrem nový nový právní systém využívá všech možností kvalifikátorů vlastní implementace je velkou výzvou, ještě větší je však jeho zapojení do stávajícího UIS
19 Univerzitní informační systém III., Lednice 2004 Děkuji za pozornost. Dotazy ?