Přejít na obsah
Skip to main content

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í generic zpřístupňuje základní údaje bez dalšího omezení touto volbou. V omezujících režimech none, division, division0 a admin-filter základní blok odemkne také kterékoli právo volajícího r_users, r_admin, r_manage nebo r_live. Právo r_users se mapuje boolean polem p_users v registru uživatelů.
  • Přihlašovací jméno userid se vrací jen při r_admin, r_manage, r_live, dotazu na sebe nebo u vnořeného impersonujícího uživatele. Samotné r_users ho 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ý id je shodný s id volají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řed userid. 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 k id: 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 na id, žádné heslo se přitom neověřuje. Použije se, jen není-li uveden id. Nenalezené jméno se chová jako id="-1". (typ: string; nepovinný)

Požadavek nemá potomky.

Závislosti​

  • Nejsou-li uvedeny ani id, ani userid, 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: id má přednost před userid; 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 nohist v getuser_behaviour zakáže toto záložní databázové dohledání běžným uživatelům. Volající s r_admin nebo r_manage ho může použít i nadále; samotné r_users tuto výjimku neposkytuje.
  • autoresolve je samostatný příznak téže konfigurace: doplňuje zobrazovaná jména autorů do get-document a get-history bez vyhodnocování r_users konkrétního čtenáře. Nezpřístupňuje privilegovaný blok get-user.
  • Impersonace: je-li aktuální session impersonovaná a požadavek nezadal ani id, ani userid (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-role v 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ý atribut role.

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ři valid="true". (typ: bool)
  • online - Aktuální LIVE připojení - Přítomno jen při valid="true" a zároveň live="true". (typ: bool)
  • licenses - Počet licencí uživatele - Přítomno jen při valid="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_users se 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át YYYY-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ři type="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/userid nebylo dohledáno ani v živém registru, ani v databázi.
  • <user-details type="error" id="-1" detail="Nerozpoznane id"/> – id chybí, není číselné či je záporné, nebo userid nebyl přeložen na existujícího uživatele; echované id odpoví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​

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.