Přeskočit na hlavní obsah

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í implementace UserNameProvider pro validaci uživatelských jmen.
  • UserNameProviderFactory: Továrna pro vytváření instancí UserNameProvider.
  • Chat: Služba pro komunikaci s Mattermost API.

Konfigurace

  • Metadata: Pole mattermostSyncEnabled a mattermostToken jsou přidána do entity User.
  • Layout: Přidáno pole mattermostSyncEnabled do 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.