Administrace uživatelů přes GraphQL dotazy

Od Sofa verze 5.3 byla implementována možnost administrace uživatelů dálkově přes GraphQL dotazy. Nyní je tedy možné takto vytvářet i odebírat uživatele, případně měnit jejich atributy.

V této kapitole je uveden jen rámcový popis, podrobné informace najdete v samostatné kapitole Využití API v rámci Sofa.

GraphQL (Graph Query Language) je dotazovací jazyk pro API, který umožňuje získávat potřebná data pomocí dotazů. Takto lze tedy rovněž vyžádat údaje o uživatelích v Sofa. Jako výsledek obdržíte přehled uživatelů a jejich atributů a posoudíte, co je třeba doplnit či změnit.

K získání informací o uživatelích Sofa tímto způsobem lze použít postup využívající snadno dostupné doplňky webových prohlížečů – RESTer a Altair. Prostřednictvím prvního z nich získáte tzv. token organizace a ve druhém položíte jeho pomocí na tuto organizaci potřebný dotaz.

Příkladem dotazu na některé vlastnosti uživatelů firmy může být query:

query{
  company{
    users{
      completeName
      createdOn
      email
      superior{
        completeName
      }
    }
  }
}

Pro změnu atributů uživatelů je třeba použít tzv. mutace. Ty umožňují přidávání, aktualizování a mazání dat – v našem případě uživatelů. Zatímco dotazy data pouze načítají, mutace s daty přímo manipulují.

Příklad mutace pro změnu vlastností uživatele může být:

mutation changeUser(
  $userId: String!
  $parameters: SofaOrg_ChangeUserInput!
  $dryRun: Boolean = null
  $sendNotification: Boolean = null
) {
  company {
    changeUser(
      userId: $userId
      parameters: $parameters
      dryRun: $dryRun
      sendNotification: $sendNotification
    )
  }
}
Oba příklady jsou zde jen pro ilustraci, bližší informace najdete ve výše zmíněné kapitole.

K této administraci lze přistupovat buď pod kontextem přihlášeného uživatele, který je administrátorem oprávněným pracovat s GraphQL, případně pomocí externího informačního systému, který má nastavené oprávnění uživatele spravovat.