🆔Discriminant type INTERNAL/EXTERNAL
Champ ajouté sur User pour distinguer les deux audiences. Default INTERNAL pour préserver l'existant.
portal/foundation
L'espace personnel pour les utilisateurs externes (clients finaux du client métier). Distinct de l'espace admin interne. Invitation par un interne ou auto-inscription avec vérification email + consentements RGPD.
Les composants techniques que ce pattern installe, expliqués simplement.
Champ ajouté sur User pour distinguer les deux audiences. Default INTERNAL pour préserver l'existant.
Table vide par défaut. Le projet l'étend dans son schéma métier avec les champs propres (numéro client, etc.).
Table Consent générique. Le projet définit les types et versions (CGU, RGPD, newsletter, etc.).
Un interne invite depuis le back-office. L'externe reçoit un magic-link ou un lien d'activation password. Première connexion sur /portal/welcome avec acceptation des consentements.
Auto-inscription publique via /portal/register. Email + password + consentements + vérification email obligatoire (lien 24h).
Un INTERNAL sur /portal/* est redirigé vers /admin/atlas. Un EXTERNAL sur l'espace interne est redirigé vers /portal/account. Un EXTERNAL en PENDING_WELCOME est redirigé vers /portal/welcome.
🔒 Activité récente visible après connexion admin.