LPS:IdM/midPoint/JIS
Info
- endpointy:
- při udatech: vyplňuje se položka stagUser podle přihlášeného uživatele
- konektor: connector-jis
- WSDL: https://stag-demo.zcu.cz/ws/services/soap/jis_osoby?wsdl
Resource
Do resource se ukládají osoby a zpět se načítají informace o kartách.
Aktivní vždy jen jedna. V midPointu reprezentováné jako atributy u osoby.
Poznámky
Atribut D. založení v GUI: změna stavu studenta např. na Studující, nastavuje JIS WS
Reset atributů: použít prázdný řetězec (např. <titulName/>).
Číselníky (titul, titulZa, mistoStudia):
- "0" je neplatná hodnota (vrací se pouze při čtení, kdy atribut není vyplněný) - číselné verze nelze použít pro reset
- mistoStudiaName: používáme pouze řetězcové verze:
- titulName, titulZaName: používáme řetězcové verze
- pokud k dispozici číslo z Magionu (HR_TITUL_PRED, HR_TITUL_ZA), pošle se i číslo
- pokud k dispozici číslo z číselníku IdM (organizace 'hr-codes-str'), pošle se i číslo
==> JIS mění svůj číselník pouze, pokud dostane i pořadové číslo; tímto se zajistí update číselníku i ze Stagu s dynamickým hledáním v IdM
fakulta: posíláme 1:1 zkratku pracoviště ze studia ve Stagu; u doktorandů se jedná o katedru, ale vypadá to, že by to nemělo vadit
posledniRocnik: pokude existuje jakékoliv jiné studium, kde není poslední roční, posíláme, že není poslední ročník
LiveSync
Operace selectChangedKarty() skenuje změny všech karet, nejen té aktivní.
==> může přijít "falešná" deaktivační událost (událost na jiné kartě)
==> věřit pouze údajům o osobě a např. podle osoId si explicitně zavolat selectOsobu()
Vrací pouze změny karet, ne osob (změny u osob dělá IdM). Pokud dojde ke změně karty kvuli změnám v osobě, je to OK a změna karty přiteče - např. po smazání osoby přiteče zpět událost smazání karty.
Workflow
- IdM posílá do JIS stavy osob hned a JIS na to v noci reaguje ==> blokace de-facto hned, včetně přechodu student -> zaměstnanec, apod.
- v rámci JIS systému do toho lze sáhnout (nastavit kartu jinak do doby, než přijde další změna) - mimo IdM
Objekty
kind | objectClass | intent | strom |
---|---|---|---|
account | ri:AccountObjectClass | osoba | - |
Hostovské karty
- vidět jen interně v JIS, nejsou součástí WS rozhraní ani resourcu (jdou mimo IdM)
- v IdM jen "superkarty" s JUK, co potřebujeme i do ISKAMu
- každá HOST karta má vlastní CRO ID
- RČ uvnitř JIS se u HOST karet běžně recyklují, ale superkarty by měly mít vždy jiné RČ kvuli tomu odlišnému CRO ID (jsou vidět i navenek a ať nejsou duplicity identit)
Development
- jedná se o nativní connector v Javě
- používá se knihovna CFX
- k dispozici jsou unit testy - viz README.md
- netolerantní atributy nutno udržovat také v cz.zcu.connectors.jis.Utils.resetAttributes (resetování při počátečním napojování - pokud se vyrábí identita, jejíž záznam již v JIS existuje)
TODO
Chyby ve WS IS/STAG a DB JIS:
WS: nelze nastavovat oba tituly najednou (míchají se čísla pro číselník) - po opravení zrušit workaroundy v konektoruWS: problém kolem titulů při create - po opravení zrušit workaround v nastavení resourcu- WS: při chybě kolem úprav v číselníku obecná výjimka (vede na FATAL ERROR v midPointu a zastaví to update identity)
- (WS+)DB: nefunguje přechod stavu studenta P -> S (tohle asi moc nevadí, narazilo se na to jen při zavádění stavu "P" do WS JIS)