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áznamyChatService: Pro komunikaci s Mattermost APILog: Pro zaznamenávání průběhu a chyb
Metody
__construct(): Inicializuje služby a ověřuje připojení k Mattermostrun(): 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 EspoCRMemailAddress: E-mailová adresa uživatelemattermostSyncEnabled: Boolean indikující, zda má uživatel povolenou synchronizaci s MattermostmattermostToken: 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.