Přeskočit na hlavní obsah

Regenerace tokenů pro Mattermost

Tento dokument popisuje automatizovaný proces generování a obnovování přístupových tokenů pro uživatele integrované služby Mattermost v systému EspoCRM. Slouží k zajištění bezproblémové komunikace mezi EspoCRM a Mattermost pro uživatele, kteří mají povolenou synchronizaci, ale dosud nemají platný token.

Účel a funkce

Hlavním účelem této funkce je automaticky generovat přístupové tokeny pro uživatele EspoCRM, kteří mají povolenou synchronizaci s Mattermost (mattermostSyncEnabled = true), ale dosud nemají přiřazený platný token (mattermostToken = null). Tento proces běží na pozadí jako naplánovaná úloha (cron job) a zajišťuje, že všichni relevantní uživatelé mají platné přihlašovací údaje pro Mattermost.

Jak to funguje

  • Kontrola připojení: Nejprve systém ověří, zda je integrace s Mattermost aktivní a správně nakonfigurovaná (server URL a hlavní token).
  • Vyhledání uživatelů: Následně vyhledá všechny aktivní uživatele EspoCRM, kteří mají povolenou synchronizaci s Mattermost, ale nemají přiřazený token.
  • Generování tokenů: Pro každého takového uživatele:
  • Zjistí odpovídajícího uživatele v Mattermost (podle uživatelského jména nebo e-mailu)
  • Vytvoří nový přístupový token
  • Uloží token zpět do profilu uživatele v EspoCRM
  • Logování: Celý proces je podrobně zaznamenáván do systémového logu pro případné řešení problémů.

Závislosti

  • Integrace Mattermost musí být aktivní a správně nakonfigurovaná v EspoCRM.
  • Uživatelé musí mít platné uživatelské jméno a e-mail v EspoCRM.
  • Příslušná uživatelská práva pro čtení a úpravu uživatelských profilů.

Technické informace

Třída RegenerateTokens

Hlavní třída implementující logiku generování tokenů. Dědí od rozhraní JobDataLess, což znamená, že nevyžaduje vstupní data pro spuštění.

Závislosti

  • EntityManager: Pro práci s databází a uživatelskými záznamy
  • ChatService: Pro komunikaci s Mattermost API
  • Log: Pro zaznamenávání průběhu a chyb

Metody

  • __construct(): Inicializuje služby a ověřuje připojení k Mattermost
  • run(): Hlavní metoda provádějící celý proces generování tokenů

Konfigurace

Úloha je definována v scheduledJobs.json s názvem "Regenerate tokens for users with mattermostSyncEnabled and no token".

Pole uživatele

Pro identifikaci uživatelů se používají následující pole z entity User:

  • userName: Uživatelské jméno v EspoCRM
  • emailAddress: E-mailová adresa uživatele
  • mattermostSyncEnabled: Boolean indikující, zda má uživatel povolenou synchronizaci s Mattermost
  • mattermostToken: Pole pro uložení generovaného tokenu

Logování

Všechny důležité události jsou zaznamenávány s prefixem "[Mattermost]", včetně:

  • Uživatelé, kteří již mají token
  • Uživatelé nenalezení v Mattermost
  • Úspěšně vygenerované tokeny
  • Celkový počet zpracovaných uživatelů

Ošetření chyb

Pokud není integrace s Mattermost aktivní, je vyhozena výjimka ErrorSilent s příslušnou zprávou.