Preskoči na glavno vsebino

Správa používateľov cez API

Nasledujúce postupy zhŕňajú overené volanie pre správu používateľov v cloudovom prostredí ABRA Flexi cez API.

Avtor: Alexander Pečeňák

Čo je potrebné odlíšiť

Pri práci s používateľmi cez API rozlišujte dve samostatné operácie:

  1. Založenie globálneho používateľa – používateľ vznikne na úrovni služby.

  2. Pridanie používateľa do konkrétnej firmy – používateľ získa prístup do vybranej firmy a konkrétnu rolu.

Bez pridania do firmy nebude mať samotné založenie používateľa praktický dopad na prístup do firmy.

💡 Info: Postupy nižšie sú overené v aplikácii Postman voči cloudovej inštancii Flexi.


Vytvorenie globálneho používateľa

Globálneho používateľa založíte požiadavkou PUT alebo POST na endpoint /u.json

Podporuje JSON v tele požiadavky. Dostupné položky na úpravu zistíte dotazom GET na uvedený endpoint /u.json

Práva servera (vhodné pre rolu ADMIN) s hodnotami true/false zodpovedajúcimi tomuto nastaveniu:

  • createCompany > povolí zakladať firmy

  • deleteCompany > povolí mazanie firiem

  • createUser > povolí zakladať používateľov

  • changePassword > povolí meniť používateľom heslo

  • grantPermisson > povolí udeľovať oprávnenia používateľom

  • licenseMgmt > povolí spravovať licencie

Postup

  1. Pošlite PUT na endpoint /u

  2. Nastavte hlavičku Content-Type: application/json.

  3. V JSON tele uveďte údaje, ktoré chcete upraviť

  4. Po úspešnom vykonaní vznikne globálny používateľ.

Overený príklad

PUT

https://alpe.flexibee.eu:5434/u.json
Content-Type: application/json
{
"username": "json",
"givenName": "name",
"familyName": "familyN",
"email": "json@admin.cz",
"userType": "READ_ONLY",
"password": "heslo_uzivaele_123",
"blocked": false,
"permissions": {
"manageAll": false,
"createCompany": false,
"deleteCompany": false,
"createUser": false,
"changePassword": false,
"grantPermission": false,
"licenseMgmt": false
},
"defaultRole": "UZIVATEL",
"overrideRole": false,
"apiAccessEnabled": false
}

Týmto volaním založíte používateľa json.


Úprava používateľa

Úprava používateľa prebieha volaním PUT na endpoint /u/{uzivatel}.json

a podporuje JSON zápis v tele požiadavky.

Postup

  1. Pošlite PUT na endpoint /u/{uzivatel}.json

  2. Nastavte hlavičku Content-Type: application/json.

  3. V JSON tele uveďte údaje, ktoré chcete upraviť

Overený príklad

PUT

https://alpe.flexibee.eu:5434/u/api_new.json
Content-Type: application/json
{
"email": "new_email@email.cz"
}

Pridanie používateľa do firmy

Po založení globálneho používateľa je potrebné pridať ho do konkrétnej firmy. To vykonáte cez firemný endpoint evidencie používateľov.

Postup

  1. Pošlite PUT na endpoint /c/{firma}/uzivatel

  2. Nastavte hlavičku Content-Type: application/json

  3. V JSON tele uveďte používateľa a rolu, ktorú má mať v danej firme

Overený príklad

PUT

https://alpe.flexibee.eu:5434/c/sk_firma_cloud/uzivatel
Content-Type: application/json
{ "winstrom": { "uzivatel": [ { "id": "code:api_new", "role": "code:ADMIN" } ] } }

V uvedenom príklade sa používateľ api_new pridá do firmy sk_firma_cloud s rolou ADMIN.

💡 Info: Predvolená rola pri založení globálneho používateľa a rola pridelená vo firme sú dve rozdielne veci.


Úprava role používateľa vo firme

Rovnako ako pridanie, úprava používateľa prebieha volaním PUT na endpoint /c/{firma}/uzivatel

s hodnotami v tele požiadavky v JSON.

Postup

  1. Pošlite PUT na endpoint /c/{firma}/uzivatel

  2. Nastavte hlavičku Content-Type: application/json.

  3. V JSON tele uveďte údaje, ktoré chcete upraviť, napríklad zmeníme rolu na SKLADNIK

Overený príklad

PUT

https://alpe.flexibee.eu:5434/c/flexi_gui_s_r_o_/uzivatel
Content-Type: application/json
{
"winstrom": {
"uzivatel": [
{
"id": "code:api_new",
"role": "code:SKLADNIK"
}
]
}
}

Odobratie používateľa z firmy

Ak potrebujete používateľovi zrušiť prístup do konkrétnej firmy, zmažte jeho väzbu na firmu v evidencii uzivatel.

Postup

  1. Pošlite PUT na endpoint /c/{firma}/uzivatel.

  2. Nastavte hlavičku Content-Type: application/json.

  3. V tele použite akciu delete a identifikáciu používateľa.

Overený príklad

PUT

https://alpe.flexibee.eu:5434/c/sk_firma_cloud/uzivatel
Content-Type: application/json
{ "winstrom": { "uzivatel": [ { "@action": "delete", "id": "code:api_new" } ] } }

Týmto volaním odoberiete používateľa api_new z firmy sk_firma_cloud.

⚠️ Warning: Týmto krokom používateľa odoberiete z konkrétnej firmy, ale ak je to jeho jediná pridelená firma, vymaže sa globálne.

Ak sú na používateľa už historicky naviazané záznamy v databáze, odobratie používateľa neprejde, v takom prípade sa vykonáva Blokácia používateľa.


Blokácia používateľa

Blokácia používateľa normal_v1 v cURL:

curl -u "user:password" -X POST -d "blocked=true" "https://moje.flexibee.eu/u/normal_v1.json"

V Postman:

POST

https://alpe.flexibee.eu:5434/u/normal_v1.json

Body JSON

{
"blocked": true,
"blocked@message": "Blocked from API"
}

⚠️ Warning: Blokáciou používateľa uvoľníte jeho licenciu a znemožníte jeho prihlásenie. Odblokovanie vykonáte rovnako s hodnotou "false".


Výpis všetkých používateľov

Na kontrolu všetkých globálnych používateľov použite výpis nad endpointom /u.json.

Postup

GET

https://alpe.flexibee.eu:5434/u.json

Vracia zoznam všetkých používateľov.


Výpis používateľov z konkrétnej firmy

Ak potrebujete zistiť, ktorí používatelia sú pripojení do konkrétnej firmy, použite firemnú evidenciu používateľov.

Postup

GET

https://alpe.flexibee.eu:5434/c/sk_firma_cloud/uzivatel.json?limit=0&detail=full

Vracia používateľov naviazaných na konkrétnu firmu.

⚠️ Warning
Parameter limit=0 ruší predvolený limit 20 záznamov na neobmedzený, na získanie všetkých používateľov danej firmy.

Parameter detail=full zobrazuje všetky polia a ich hodnoty pre úplný detail.


Výpis rolí vo firme

Dostupné role vo firme zistíte cez dotaz nad evidenciou role.

Postup

  1. Pošlite GET na c/{firma}/role.json

  2. V JSON tele nastavte požadovaný detail výstupu.

  3. Pre prehľadný zoznam vráťte len ID, kód a názov.

Overený príklad

GET

https://alpe.flexibee.eu:5434/c/sk_firma_cloud/role.json?limit=0

Takto získate prehľad rolí dostupných vo vybranej firme.

⚠️ Warning
Parameter detail=full tu vracia zoznam všetkých nastavených práv, tj. cez 10 000 riadkov za každú 1 rolu. Ak je nutné čítať nastavenie práv na role, odporúčaním je obmedziť dotaz iba za jednu, napríklad za rolu ADMIN:

https://alpe.flexibee.eu:5434/c/sk_firma_cloud/role/code:ADMIN.json?detail=full 

Prehľad endpointov

Operácia

Metóda a endpoint

Poznámka

Vytvorenie globálneho používateľa

PUT alebo POST /u

JSON telo

Úprava globálneho používateľa

PUT /u

JSON telo

Úprava používateľa vo firme

PUT /c/{firma}/uzivatel

JSON telo

Pridanie používateľa do firmy

PUT /c/{firma}/uzivatel

JSON telo

Odobratie používateľa z firmy

PUT /c/{firma}/uzivatel

@action: delete

Blokácia používateľa

POST/u/{uzivatel}.json

hodnota blocked=true sa v Postman posiela cez body typu x-www-form-urlencoded

Výpis všetkých používateľov

GET /u.json

Globálni používatelia

Výpis používateľov z firmy

GET/c/{firma}/uzivatel.json?limit=0&detail=full

Používatelia konkrétnej firmy

Výpis rolí

GET/c/{firma}/role.json?limit=0

Odporúčaný custom detail
opatrne s ?detail=full!


Na čo dať pozor

⚠️ Warning: Založenie používateľa a pridanie do firmy sú dve oddelené operácie. Je potrebné vykonať obe.

⚠️ Warning: Výpisy s detail=full môžu byť výrazne rozsiahle a menej prehľadné.

⚠️ Warning: Prácu s používateľmi cez API je vhodné vyladiť na testovacom prostredí alebo voči testovacej databáze.

⚠️ Warning: Role sú zatiaľ iba na čítanie, nie je možné do nich v API zapisovať.


Súvisiace články

Ste s tem dobili odgovor na svoje vprašanje?