Synchronizace uživatelů s Mattermost
Tato funkcionalita umožňuje automatickou synchronizaci uživatelských účtů mezi systémem EspoCRM a platformou Mattermost. Když je synchronizace povolena, každá změna uživatelských údajů (jméno, příjmení, email, heslo) v EspoCRM se automaticky promítne do Mattermostu. Pokud uživatel v Mattermostu ještě neexistuje, systém jej automaticky vytvoří.
Hlavní funkce
- Automatická synchronizace: Při změně uživatelských údajů v EspoCRM se aktualizují i v Mattermostu.
- Vytváření nových uživatelů: Pokud uživatel v Mattermostu neexistuje, systém jej automaticky vytvoří s odpovídajícími údaji.
- Správa tokenů: Systém automaticky generuje a spravuje přístupové tokeny pro Mattermost.
- Omezení synchronizace: Synchronizace je dostupná pouze pro běžné uživatele a administrátory, nikoli pro systémové nebo portálové uživatele.
- Validace uživatelských jmen: Uživatelská jména jsou validována podle pravidel Mattermostu (povoleny jsou pouze písmena, číslice, tečky, pomlčky a podtržítka).
Závislosti
- Mattermost integrace: Pro fungování synchronizace musí být správně nakonfigurována Mattermost integrace v EspoCRM (URL serveru, tým ID, master token).
- Uživatelské typy: Synchronizace funguje pouze pro uživatele typu 'regular' a 'admin'.
- Povinná pole: Pro vytvoření nového uživatele v Mattermostu je vyžadováno jméno, příjmení, email a heslo.
Pracovní postup
- Při uložení uživatele: Systém zkontroluje, zda je synchronizace povolena a zda uživatel splňuje podmínky (typ, povolená synchronizace).
- Existující uživatel: Pokud uživatel v Mattermostu existuje, aktualizují se jeho údaje.
- Nový uživatel: Pokud uživatel v Mattermostu neexistuje, vytvoří se nový účet s poskytnutými údaji.
- Generování tokenu: Pro každého synchronizovaného uživatele se vygeneruje přístupový token pro Mattermost.
- Odstranění uživatele: Při odstranění uživatele v EspoCRM se odpovídající účet v Mattermostu deaktivuje.
Technické informace
Hlavní komponenty
SyncUser: Hook, který zpracovává synchronizaci při uložení nebo odstranění uživatele.UserNameProvider: Rozhraní pro získání validního Mattermost uživatelského jména.DefaultUserNameProvider: Výchozí implementaceUserNameProviderpro validaci uživatelských jmen.UserNameProviderFactory: Továrna pro vytváření instancíUserNameProvider.Chat: Služba pro komunikaci s Mattermost API.
Konfigurace
- Metadata: Pole
mattermostSyncEnabledamattermostTokenjsou přidána do entity User. - Layout: Přidáno pole
mattermostSyncEnableddo detailního pohledu uživatele.
API endpointy
User/action/forceMattermostSync: Vynucená synchronizace uživatele s Mattermostem (pouze pro administrátory).
Validace uživatelských jmen
Uživatelská jména jsou validována pomocí regulárního výrazu ^[A-Za-z0-9.\-_]+, který povoluje pouze:
- písmena (A-Z, a-z)
- číslice (0-9)
- tečky (.)
- pomlčky (-)
- podtržítka (_)
Pokud uživatelské jméno nevyhovuje tomuto formátu, je vyhozena výjimka s lokalizovanou chybovou zprávou.