LPS:IdM/midPoint/Magion

Z Support
< LPS:IdM | midPoint(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Info: - obrázek s modelem)
(Info: - zmínka o MAGION-OUT)
Řádka 2: Řádka 2:
  
 
Personalistika - autorizovaný zdroj o zaměstnancích.
 
Personalistika - autorizovaný zdroj o zaměstnancích.
 +
 +
Tento resource řeší pouze čtení údajů. Modifikace jdou přes jiný resource, viz [[LPS:IdM/midPoint/MAGION-OUT]].
  
 
Pohledy (viz repozitář [https://ipmil.civ.zcu.cz/midpoint/test-environment/tree/master/magion/production test-environment]).
 
Pohledy (viz repozitář [https://ipmil.civ.zcu.cz/midpoint/test-environment/tree/master/magion/production test-environment]).

Verze z 17:39, 6 srpen 2020

Obsah

Info

Personalistika - autorizovaný zdroj o zaměstnancích.

Tento resource řeší pouze čtení údajů. Modifikace jdou přes jiný resource, viz LPS:IdM/midPoint/MAGION-OUT.

Pohledy (viz repozitář test-environment).

Deaktivace objektu:

  • při deaktivaci objektu objekt "mizí" z pohledů
  • v midPointu informace zůstávají

Model v midPointu

Magion.dot.png

Objekty

V Magionu jsou "na jedné hromadě" uložena historická, aktuální i budoucí data a vždy je třeba vybírat správné záznamy podle nastavení platnosti a rozsahu datumů. Pohledy do Magionu pro IdM s tímto pracují.

Osoby

  • primární klíč OS_CIS
  • napojení OS_CIS, ROD_CIS (kvuli zmatkům při zakládání osob se již raději nechystáme na os.č., pouze na RČ)

Pohledy:

  • MAGION_EXT.V_PE_ZCU_ZAM_IDM
    • lidé - aktivní zaměstnanci
    • v datech se kontrolují aktuální i budoucí osoby (s limitem 20 dnů)
      • z akuálních záznamů se bere nejnovější, z budoucích ten první "nejstarší"
      • aktuální záznam má vždy přednost před budoucím (bylo opraveno 2019-05-13)
        • vyjímka: pokud něco chybí u aktuálního záznamu (ROD_CIS, PRIJMENI) a budoucí je OK, vezme se ten budoucí (bylo opraveno 2020-03-13)
  • MAGION_EXT.V_PE_ZCU_ZAM_ZMENA_IDM
    • lidé - rychlý pohled na detekci změn
    • poznává i začátky úvazků

Úvazky (PPV)

  • primární klíč OS_CIS + CISLO_PP
  • napojení OS_CIS + CISLO_PP

Pohledy:

  • MAGION_EXT.V_PE_ZCU_PP_IDM
    • pracovní úvazky
  • MAGION_EXT.V_PE_ZCU_PP_ZMENA_IDM
    • pracovní úvazky - rychlý pohled na detekci změn

Pracovní místa (PM)

Funkce spojené s pracovištěm.

  • primární klíč ID (SY_MISTO_ID z MAGION.SY_MISTA)
  • napojení ID (SY_MISTO_ID z MAGION.SY_MISTA)

Pohledy:

  • MAGION_EXT.V_PE_ZCU_PMISTA_PP_IDM
    • pracovní místa - vazby na pracovní úvazky
    • v Magionu drobné nekonzistence - místa zůstávají i u skončených pracovních poměrů
  • MAGION_EXT.V_PE_ZCU_PMISTA_SEZNAM_IDM
    • pracovní místa - seznam (tj. "seznam funkcí")

Pracoviště

  • primární klíč ID (SY_ORG_JED_ID z MAGION.SY_ORG_JED)
  • napojení ID (SY_ORG_JED_ID z MAGION.SY_ORG_JED)

Pohledy:

Číselníky

Obecné číselníky.

Přiřazování osobám se udržuje u:

Jinak se udržuje jen samotný organizační strom, bez přiřazování.

  • primární klíč HR_SY_CISPOL_ID (SY_CISPOL_ID z MAGION.SY_CISPOL)
  • napojení HR_SY_CISPOL_ID (SY_CISPOL_ID z MAGION.SY_CISPOL)

Pohledy:

  • MAGION_EXT.V_PE_ZCU_CISELNIKY_IDM
  • MAGION_EXT.V_PE_ZCU_CISELNIKY_ZMENA_IDM

Skupiny

Vesměs po pracovištích.

  • primární klíč ID (SY_ORG_JED_ID z MAGION.SY_ORG_JED)
  • napojení ID (SY_ORG_JED_ID z MAGION.SY_ORG_JED)

Pohledy: jako pracoviště

Co hlídat

  • stub pracoviště - bez linku na resource
  • pracoviště bez rodiče
  • deaktivovaná pracoviště - vhodné zkontrolovat a smazat kvuli recyklacím kódů, viz #Údržba
  • úvazek v seznamu u osoby, ale není přiřazený přes assignment

Záměna identit (!):

Dost nebezpečná věc je změna osobního čísla u osoby v Magionu, protože může dojít k záměně identity (na dané osobě s přiřazeným CRO ID se prostě změní jméno, příjmení, RČ, ...). Naštěstí se děje spíše jen u nově zadávaných záznamů.

Lze kontrolovat sledováním změny datumu narození (prefixu RČ). Potenciálně nebezpečné události lze získat např. z historie v emulovaném CRO (zde příklad s omezením na 6 měsíců):

SELECT
    CRO_ID,
    COUNT(DISTINCT SUBSTR(RODNE_CISLO, 0, 6)) RC_PREFIX_COUNT,
    COUNT(DISTINCT OS_CISLO) OS_CISLO_COUNT
FROM IDM_OSOBY_LOG
WHERE LAST_ACTION_TSTAMP + 182 > SYSDATE
GROUP BY CRO_ID
HAVING
    COUNT(DISTINCT SUBSTR(RODNE_CISLO, 0, 6)) > 1
    OR COUNT(DISTINCT OS_CISLO) > 1;

A pak detaily:

DEFINE CRO_ID = ...;
SELECT CRO_ID, RODNE_CISLO, OS_CISLO, LAST_ACTION_TSTAMP FROM IDM_OSOBY_LOG WHERE CRO_ID = &CRO_ID ORDER BY LAST_ACTION_TSTAMP;

Propojování identit (platí i pro IS/STAG):

U cizinců se obvykle zadává RČ podle datumu narození a doplňuje se koncovka "23XX", kde XX jsou iniciály ze jména. Správně by se měly hlídat rozdíly jména a příjmení mezi Magion a IS/STAG.

Ale to RČ není to až tak jednoduché - pokud byl daný člověk dříve na jiné škole, má se použít to původní RČ z jiné školy (přiteče ze SIMS). A v kombinaci s Magionem je pak nutné RČ změnit odpovídajícím způsobem i v Magionu - to musí udělat administrátoři, protože se hlídá koncovka "23XX".

Údržba

Mazání deaktivovaných pracovišť

  1. zjistit seznam, např.:
    ./query-org.py subtype=deactivated-hr-org-str --csv activation/validTo,name,extension/ext:OU_NAZEV
  2. zkontrolovat, že není používané: 1) v midPoint GUI ve stromu (users, roles), 2) v dumpech hledat OID
  3. zkontrolovat, že není na resourcech (v projections)
  4. smazání

Kategorie úvazků

Použito pro generování skupin akademik, vedec, thp, manual. [1]

Příklad - prvotní založení těchto skupin:

./group.py -g 1005 -s 'Akademičtí pracovníci' akademik
./group.py -g 1006 -s 'Vědci' vedec
./group.py -g 1007 -s 'Technicko-hospodářští pracovníci' thp
./group.py -g 1008 -s 'Manuální pracovníci' manual

#./query-org.py subtype=hr-codes-str 'name startsWith HR PE_KATEG' --csv subtype,identifier,name

for i in 10 11 12 13 14 15 20 26; do
  ./modify-org.py --query subtype=hr-codes-str identifier=$i extension/ext:HR_SCI_NAZEV=PE_KATEG1 -a role-group-akademik:role
done
./modify-org.py --query subtype=hr-codes-str identifier=21 extension/ext:HR_SCI_NAZEV=PE_KATEG1 -a role-group-vedec:role
./modify-org.py --query subtype=hr-codes-str identifier=22 extension/ext:HR_SCI_NAZEV=PE_KATEG1 -a role-group-thp:role
./modify-org.py --query subtype=hr-codes-str identifier=24 extension/ext:HR_SCI_NAZEV=PE_KATEG1 -a role-group-thp:role
./modify-org.py --query subtype=hr-codes-str identifier=23 extension/ext:HR_SCI_NAZEV=PE_KATEG1 -a role-group-manual:role

Kontrola (všichni někam patří):

ldapsearch -h themis.civ.zcu.cz '(&(!(|(memberof=cn=thp,ou=groups,ou=rfc2307,o=zcu,c=cz)(memberof=cn=vedec,ou=groups,ou=rfc2307,o=zcu,c=cz)(memberof=cn=akademik,ou=groups,ou=rfc2307,o=zcu,c=cz)(memberof=cn=manual,ou=groups,ou=rfc2307,o=zcu,c=cz)))(idmStatus=A1)(memberof=cn=staff,ou=groups,ou=rfc2307,o=zcu,c=cz))' uid

Resource

kind objectClass intent strom
account AccountObjectClass zamestnanec -
entitlement GroupObjectClass ppv subtype='ppv'
generic (focus OrgType) CustomOrganizationObjectClass org-str subtype='hr-org-str'/'deactivated-hr-org-str'/'hosted-org-str'
generic (focus OrgType) CustomCodeObjectClass code subtype='hr-codes-str'
entitlement (focus RoleType) CustomJobTitleObjectClass pm subtype='pm'
entitlement (focus RoleType) CustomIdmRoleStaffObjectClass global-group-staff subtype='hr-global-group-staff'
entitlement (focus RoleType) CustomIdmRoleDppDpcObjectClass global-group-dppdpc subtype='hr-global-group-dppdpc'
entitlement (focus RoleType) CustomIdmRoleSecretariatObjectClass global-group-secretariat subtype='hr-global-group-secretariat'
entitlement (focus RoleType) CustomIdmRoleSecretaryDptObjectClass global-group-secretarydpt subtype='hr-global-group-secretarydpt'
entitlement (focus RoleType) CustomIdmRoleManagerDptObjectClass global-group-managerdpt subtype='hr-global-group-managerdpt'

Role

ppv

  • prefix: "PPV: "
  • pracovně právní vztah ("zaměstnanecké pozice")

pm

  • prefix: "PM: "
  • pracovní místa ("funkce")

hr-global-group-staff

  • prefix: "GLOBAL: Zaměstnanci "
  • zaměstnanci na hlavní nebo vedlejší pracovní poměr (TODO: check!!)
  • UROVEN = 4 OR UROVEN = 3 OR LOWER(NAZEV) LIKE '%katedra%'
  • TODO: úroveň pracovišť asi neřešit

hr-global-group-dppdpc

  • prefix: "GLOBAL: Dohodáři "
  • zaměstnanci na dohodu
  • UROVEN = 4 OR UROVEN = 3 OR LOWER(NAZEV) LIKE '%katedra%'
  • TODO: úroveň pracovišť asi neřešit

hr-global-group-secretariat

  • prefix: "GLOBAL: Sekretariát "
  • sekretářky
  • (UROVEN = 4 OR UROVEN = 3 OR UROVEN = 2 OR LOWER(NAZEV) LIKE '%fakulta%' OR LOWER(NAZEV) LIKE '%katedra%')
  • TODO: úroveň pracovišť asi neřešit

hr-global-group-secretarydpt

  • prefix: "GLOBAL: Tajemník "
  • tajemníci
  • (UROVEN = 4 OR UROVEN = 3 OR UROVEN = 2 OR LOWER(NAZEV) LIKE '%fakulta%' OR LOWER(NAZEV) LIKE '%katedra%')
  • TODO: úroveň pracovišť asi neřešit

hr-global-group-managerdpt

  • prefix: "GLOBAL: Vedoucí "
  • vedoucí pracovišť (TODO: check!)
  • (UROVEN = 4 OR UROVEN = 3 OR UROVEN = 2 OR LOWER(NAZEV) LIKE '%fakulta%' OR LOWER(NAZEV) LIKE '%katedra%')
  • TODO: úroveň pracovišť asi neřešit

TODO

Funkce:

  • nefunguje dobře synchronizace funkcí - při odpojení v Magionu nemizí z inducements (u PPV) v midPointu - asi překopat i SQL pohledy
  • chtělo by to celé předělat a zobecnit (možná zapojit tenent feature - společná funkce (tejemník, vedoucí, ...) pro více pracovišť - ale interně to tak v Magionu uloženo není a do skupin je to potřeba také rozbalit, tak třeba ne...)
Osobní nástroje
Jmenné prostory

Varianty
Zobrazení
Akce
Kdo jsem
Navigace
Často hledaná témata
Nástroje