Požadavek get-user
Účel a dopady
Vrátí informace o zadaném (nebo, není-li uveden žádný identifikátor, o aktuálně přihlášeném) uživateli. Požadavek nic nemění, jen čte.
Dostupnost, kontext, oprávnění apod.
- Dostupnost základních údajů řídí getuser_behaviour. Výchozí
genericzpřístupňuje základní údaje bez dalšího omezení touto volbou. V omezujících režimechnone,division,division0aadmin-filterzákladní blok odemkne také kterékoli právo volajícíhor_users,r_admin,r_managenebor_live. Právor_usersse mapuje boolean polem p_users v registru uživatelů. - Přihlašovací jméno
useridse vrací jen přir_admin,r_manage,r_live, dotazu na sebe nebo u vnořeného impersonujícího uživatele. Samotnér_usersho nezpřístupňuje. - Privilegovaný blok atributů (role, systémová oprávnění
r_*, poslední přihlášení, mailový profil, impersonace, přihlašovací metoda, přídavné role) se ale přidává jen tehdy, je-li splněna aspoň jedna z podmínek: volající már_admin, volající már_manage, dotazovanýidje shodný sidvolajícího, nebo jde o vnořený záznam skutečného impersonovaného uživatele (viz „Zpracování“).
V aktuálně ověřeném serverovém gate základního bloku chybí explicitní výjimka
pro dotaz na sebe. Běžný uživatel bez uvedených práv tak v režimu none
nedostane ani svůj <user-details>; u admin-filter záleží na filtru. Výjimka
pro sebe u userid a privilegovaného bloku se vyhodnotí až uvnitř základního
gate. Před změnou konfigurace ověřte <get-user/> pro běžného uživatele.
XML požadavek (syntax + popis)
<request>
<get-user
id="{number}"
userid="{string}"
/>
</request>
Parametry a pravidla (atributy, potomci)
id- Číslo uživatele - Identifikátor (pdk) dotazovaného uživatele. Má přednost předuserid. Nepřevede-li se na číslo, chová se jako-1(vede k chybě „Nerozpoznane id“). (typ:number; nepovinný)userid- Přihlašovací jméno - Alternativa kid: server dohledá uživatele podle přesné shody přihlašovacího jména v interním registru – jde jen o překlad jména naid, žádné heslo se přitom neověřuje. Použije se, jen není-li uvedenid. Nenalezené jméno se chová jakoid="-1". (typ:string; nepovinný)
Požadavek nemá potomky.
Závislosti
- Nejsou-li uvedeny ani
id, aniuserid, server vrací informace o samotném volajícím.
Příklady požadavku
(Zatím bez ověřeného příkladu.)
Zpracování a vedlejší účinky
- Identifikace cílového uživatele:
idmá přednost předuserid; nejsou-li uvedeny žádné, použije se volající sám. - Údaje se čtou primárně z živého, aktuálně načteného registru uživatelů v paměti serveru. Není-li tam uživatel nalezen, načtou se záložně přímo z databáze; to typicky nastává u smazaných nebo archivovaných uživatelů a vede k odpovědi s
valid="false"bez privilegovaného bloku atributů (ten se generuje jen pro platné, živé uživatele). - Příznak
nohistvgetuser_behaviourzakáže toto záložní databázové dohledání běžným uživatelům. Volající sr_adminnebor_manageho může použít i nadále; samotnér_userstuto výjimku neposkytuje. autoresolveje samostatný příznak téže konfigurace: doplňuje zobrazovaná jména autorů doget-documentaget-historybez vyhodnocovánír_userskonkrétního čtenáře. Nezpřístupňuje privilegovaný blokget-user.- Impersonace: je-li aktuální session impersonovaná a požadavek nezadal ani
id, aniuserid(dotaz „na sebe“), do odpovědi se za atributy impersonované identity vloží ještě jeden vnořený uzel<user-details>se stejnou strukturou popisující skutečného, impersonujícího uživatele. Vnější uzel se v tom případě neuzavírá sebeuzavírající značkou, ale otevřeným/uzavřeným párem s vnořeným záznamem uvnitř. Tato možnost není ve staré dokumentaci vůbec zmíněna. current-rolev odpovědi vždy odráží efektivní roli volajícího v okamžiku požadavku (ne roli dotazovaného uživatele) – roli dotazovaného uživatele nese privilegovaný atributrole.
XML odpověď (syntax + popis)
<response>
<user-details
type="ok|error"
id="{number}"
userid="{string}"
name="{string}"
email="{string}"
folder="{string}"
team="{string}"
function="{string}"
division="{number}"
intid="{number}"
first-name="{string}"
last-name="{string}"
title-before="{string}"
title-after="{string}"
intstr="{string}"
assistant="{string}"
phone="{string}"
mobile="{string}"
address="{string}"
notes="{string}"
lang="{string}"
current-role="{number}"
valid="{bool}"
live="{bool}"
online="{bool}"
licenses="{number}"
r_admin="{bool}"
r_power="{bool}"
r_db="{bool}"
r_efiles="{bool}"
r_export="{bool}"
r_guest="{bool}"
r_import="{bool}"
r_manage="{bool}"
r_stat="{bool}"
r_unlock="{bool}"
r_pubsaves="{bool}"
r_publoads="{bool}"
r_fimport="{bool}"
r_dorequest="{bool}"
r_doaction="{bool}"
r_repeat="{bool}"
r_impersonate="{bool}"
r_users="{bool}"
role="{number}"
lic-coef="{number}"
sms="{string}"
lastlogon="{datetime}"
mailprofile="{number}"
impersonate="{string}"
login-method="{string}"
add-roles="{string}"
detail="{string}"
>
<user-details ... /> ?
</user-details>
</response>
Parametry a pravidla (atributy, potomci) – odpověď
Základní blok (jen pokud projde gate getuser_behaviour):
type- Výsledek -"ok"/"error". (typ:enum; povolené hodnoty:ok,error)id- Číslo uživatele - Přítomno vždy, i při chybě. (typ:number)userid- Přihlašovací jméno; podmínky jeho vrácení jsou samostatné a jsou uvedeny v „Dostupnost“. (typ:string)name,email,team,function,division,first-name,last-name,title-before,title-after,assistant,phone,mobile,address,notes,lang- Identifikační a kontaktní údaje uživatele - Textové hodnoty mohou být prázdné, nejsou-li v registru vyplněny. (typ:string/number)folder,intid,intstr- Další pole uživatelského záznamu - Přítomna stejně jako ostatní základní atributy; jejich přesný provozní význam nebyl na této úrovni kódu dále ověřován (otevřený bod). (typ:string/number)current-role- Efektivní role volajícího - Vždy přítomno při úspěchu; netýká se dotazovaného uživatele, viz „Zpracování“. (typ:number)valid- Platnost -"true", byl-li uživatel nalezen v živém registru;"false", byl-li dohledán jen záložně v databázi (smazaný/archivovaný). (typ:bool)live- Právo LIVE režimu - Přítomno jen přivalid="true". (typ:bool)online- Aktuální LIVE připojení - Přítomno jen přivalid="true"a zároveňlive="true". (typ:bool)licenses- Počet licencí uživatele - Přítomno jen přivalid="true". (typ:number)
Privilegovaný blok (jen za podmínek popsaných v „Dostupnost“ výše, a jen při valid="true"):
r_admin,r_power,r_db,r_efiles,r_export,r_guest,r_import,r_manage,r_stat,r_unlock,r_pubsaves,r_publoads,r_fimport,r_dorequest,r_doaction,r_repeat,r_impersonate,r_users- Systémová oprávnění dotazovaného uživatele.r_usersse zde vrací pouze v privilegovaném bloku, i když slouží k odemčení základního bloku. (typ:bool)role- Vlastní role dotazovaného uživatele. (typ:number)lic-coef- Koeficient licence. (typ:number)sms- Režim SMS autentizace -"Y"(vždy vyžadována),"P"(jen z veřejné sítě),"N"(nevyžadována). (typ:enum; povolené hodnoty:Y,P,N)lastlogon- Poslední přihlášení - FormátYYYY-MM-DD HH:MM:SS; prázdné, pokud se uživatel dosud nepřihlásil. (typ:datetime)mailprofile- Mailový profil - Prázdné, není-li nastaven. (typ:number)impersonate,login-method- Nastavení impersonace a metody přihlášení uživatele. (typ:string)add-roles- Přídavné role - Čárkou oddělený seznam čísel rolí; atribut zcela chybí, je-li seznam prázdný. (typ:string)
Chybový atribut:
detail- Popis chyby - Přítomen jen přitype="error". (typ:string)
Příklady odpovědi
(Zatím bez ověřeného příkladu.)
Chyby a reakce
- Pokud existující uživatel neprojde gate základního bloku, server žádný
<user-details>nevloží. Nejde o<user-details type="error">; klient musí rozlišovat i chybějící uzel. <user-details type="error" id="{id}" detail="Nenalezen"/>– zadané (kladné)id/useridnebylo dohledáno ani v živém registru, ani v databázi.<user-details type="error" id="-1" detail="Nerozpoznane id"/>–idchybí, není číselné či je záporné, nebouseridnebyl přeložen na existujícího uživatele; echovanéidodpovídá skutečně zpracované, typicky ale ne nutně-1, hodnotě.<user-details type="error" detail="Pri provadeni doslo k chybe">…</user-details>– selhání databázového záložního čtení; uzel je otevřený/uzavřený pár a může obsahovat vnořené diagnostické uzly error.- Výraz pro identifikaci chyb v odpovědi serveru:
user-details[@type='error'].
Související požadavky
- get-versions, get-messages – další informační požadavky ve stejné skupině.
Revize 13. 10. 2026 ověřena čtením Flexinet core.cpp:1184–1195,
engine.cpp:10722, 10886–10892, 10941, 10955 a 12937–12945,
cache.cpp:6756–6771 a 6965–6967. Běhové ověření serveru není součástí revize.