General Actions:
Usermap API (pracovní název) je agregátor údajů o identitách lidí na ČVUT, který vyvíjíme na FIT. Poskytuje základní informace o osobě jako je jméno, uživatelské jméno, emailové adresy, telefony, … a tzv. byznys role (z IDM). Dále obsahuje informace o organizačních jednotkách ČVUT a místnostech (vč. adresy).
Primárním zdrojem dat je Usermap (SSU), konkr. Usermap LDAP, jeho relační přívěšek EXT_UMAP a KOS (pro předmětové role). Více informací o datové doméně Usermap najdete na této stránce. Dále se synchronizuje s fakultním IDM FIT, odkud se přebírají další fakultní role osob a identity externistů.
Dokumentaci prvotní verze RESTového API zatím najdete tady (generované z RAML).
API podporuje parametrické dotazy pomocí RSQL. Ke standardním operátorům přidává ještě operátor =all=; hodnota nebo kolekce hodnot musí obsahovat všechny uvedené argumenty.
API je zabezpečeno protokolem OAuth 2.0 a využívá fakultní autorizační server.
Usermap API zprostředkovává všechny tzv. celoškolské business role a naše fakultně specifické business i technické role z fakultního IDM. Dále poskytuje tzv. předmětové role (vztah osoby k vyučovanému předmětu), které generuje z KOSu.
Předmětové role mají obdobnou strukturu jako business role, ale místo organizační jednotky se váží na konkrétní předmět (podle jeho kódu). Kód předmětu je v rámci ČVUT unikátní.
Název role | Český popis | Anglický popis |
---|---|---|
STUDENT | student předmětu | student of the course |
UCITEL | učitel předmětu | teacher of the course |
UCITEL-CVICICI | cvičící předmětu | instructor of the course |
UCITEL-CVICICI-LABORATORE | laboratorní cvičící předmětu | laboratory instructor of the course |
UCITEL-EDITOR * | editor předmětu | editor of the course |
UCITEL-GARANT | garant předmětu | guarantor of the course |
UCITEL-PREDNASEJICI | přednášející předmětu | lecturer of the course |
UCITEL-ZKOUSEJICI | zkoušející předmětu | examiner of the course |
* Role editor (v KOSu se jmenuje AUTORNAV) zmocňuje daného vyučujícího editovat informace o předmětu.
Některé předměty jsou ve vztahu rozvrhovaný (nadřízený) a zapisovaný (podřízený). Týká se to typicky tělocviků a jazyků. Rozvrhovaný předmět je jakýsi metapředmět, který sdružuje různé „instance“ téhož předmětu, typicky na různých fakultách. Studenti se zapisují na zapisované (podřízené) předměty a zkoušky, ale vyučující je všechny vidí v rámci rozvrhovaného (nadřízeného) předmětu. V těchto případech se generují role pouze pro rozvrhované předměty, ale v atributu role courses jsou uvedeny kódy všech předmětů, kterých se týká, tedy rozvrhovaného i příp. zapisovaných.
Předmětová role pro učitele vzniká v momentně, kdy mají rozvrháři připravený rozvrh pro příští semestr; typicky 1–2 týdny před závaznými zápisy předmětů (viz harmonogram semestru). Zaniká pak s koncem semestru (tj. koncem zkouškového období daného semestru).
Kdy má vznikat studentská role ještě není dořešeno, momentálně vzniká se začátkem semestru a zaniká s jeho koncem.
Uvedené příklady využívají CLI utilitu curl, lze však použít i libovolný jiný HTTP klient, vč. webového prohlížeče.
Vypsat uživatele jirutjak (ve formátu JSON):
Najít uživatele s uživatelským jménem jirutjak, spaceji3 a szolatib:
Najít uživatele, kteří mají role B-18000-ZAMESTNANEC a B-00000-STUDENT, a zároveň nemají roli B-18000-STUDENT:
Najít uživatele, kteří mají role B-18000-ZAMESTNANEC a B-00000-STUDENT, nebo B-13000-ZAMESTNANEC a B-00000-STUDENT:
Najít uživatele, kteří mají email kevin.flynn@fit.cvut.cz:
Najít uživatele, jejichž jméno/příjmení začíná na Pav Kor a pracují na FIT:
Vypsat detaily role B-18000-ZAMESTNANEC:
Pozor na to, že výstup je stránkovaný; výchozí hodnota je 10 záznamů. Pro zvýšení limitu slouží URI parametr limit, pro určení prvního záznamu parametr offset. Například pro získání 100 záznamů, počínaje padesátým:
Pro pohodlné parsování JSONu v shellu lze použít například nástroj jq. Výstup z curlu je možné do něj poslat přímo přes pipu.
Vypsání celého jména jednoho uživatele:
Vypsání celého jména více uživatelů v kolekci:
Vypsání všech rolí jednoho uživatele jako seznam oddělený novou řádkou:
Vypsání uživatelského jména, celého jména a preferovaného emailu kolekce uživatelů jako CSV: