Admins, rôles et permissions
Qui peut se connecter au tableau de bord, les deux rôles du seed, chaque permission que vérifie l'API, et comment donner à un membre de l'équipe exactement ce dont il a besoin.
Pour le pack Full Stack
Comment fonctionne l'accès
- Seuls les admins se connectent, au tableau de bord. Le site n'a pas de comptes.
- Un admin détient un ou plusieurs rôles, et un rôle est un ensemble de permissions nommées
<area>.<action>, commeproperties.publish. Un admin détient toutes les permissions de tous ses rôles. - L'API vérifie une permission sur chaque route du tableau de bord, quoi que montre l'écran. Le tableau de bord masque les éléments de la barre latérale, les onglets et les boutons que les rôles d'un admin n'incluent pas, et une page ouverte par son adresse indique « This page is not part of your role ».
- Un changement des rôles d'un admin, ou des permissions d'un rôle, atteint cet admin pendant qu'il est connecté.
Les rôles et comptes du seed
| Rôle | Permissions | Compte du seed |
|---|---|---|
| Super Admin | Les 31 | admin@velra.example |
| Agent | overview.view, properties.*, leads.view, leads.edit, viewings.view, viewings.edit, staging.*, neighborhoods.view : les biens, les demandes, les visites et le studio de mise en scène, sans l'assistant, les paramètres, les admins ni les rôles | agent@velra.example |
Le seed fixe les deux rôles à exactement ces listes à chaque exécution, et ne réinitialise jamais un mot de passe existant. Changez les deux mots de passe, ou supprimez les comptes du seed, avant que l'agence soit accessible depuis Internet. Le guide d'installation liste les identifiants de connexion de la démonstration.
Toutes les permissions
| Domaine | Permissions |
|---|---|
| Vue d'ensemble | overview.view |
| Biens | properties.view, properties.create, properties.edit, properties.publish, properties.delete |
| Demandes | leads.view, leads.edit |
| Visites | viewings.view, viewings.edit |
| Studio de mise en scène | staging.view, staging.create, staging.approve |
| Quartiers | neighborhoods.view, neighborhoods.create, neighborhoods.edit, neighborhoods.delete |
| Administrateurs | admins.view, admins.create, admins.edit, admins.delete, admins.assign_roles |
| Rôles | roles.view, roles.create, roles.edit, roles.delete, roles.assign_permissions |
| Paramètres de l'agence | settings.view, settings.edit |
| Assistant IA | ai_chat.use, ai_chat.view_models |
La liste est définie une seule fois, dans back-end/src/database/seeders/permission.seeder.ts ; le seed ajoute les nouveaux noms et retire ceux que l'API ne vérifie plus.
Gestion des admins
/en/dashboard/admins-managementliste l'équipe, dix par page, avec recherche par e-mail, nom et téléphone, et permet d'ajouter, modifier et supprimer des comptes (admins.view,admins.create,admins.edit,admins.delete).- Un nouvel admin a besoin d'un prénom et d'un nom, d'un e-mail et d'un mot de passe d'au moins six caractères, saisi deux fois ; le téléphone est optionnel.
- La page de chaque admin lui attribue ses rôles (
admins.assign_roles). - Chaque admin, quel que soit son rôle, modifie sa propre photo, son nom, son e-mail et son téléphone sous Paramètres, Profil, et change son propre mot de passe sous Paramètres, Sécurité, avec l'actuel. Ni l'un ni l'autre ne demande de permission.
Rôles des admins
/en/dashboard/admins-roles crée, renomme et supprime des rôles (roles.create, roles.edit, roles.delete), et accorde leurs permissions depuis une grille groupée par domaine (roles.assign_permissions). Pour donner moins à un membre de l'équipe que le rôle Agent, créez un rôle avec uniquement les permissions dont il a besoin et attribuez-le à la place.
Ce que l'assistant peut atteindre
ai_chat.use ouvre l'assistant IA et n'accorde rien d'autre. L'assistant ne lit et ne modifie que ce que les autres permissions de l'admin autorisent, les mêmes que vérifient les pages du tableau de bord : sans settings.edit, il ne peut pas changer un paramètre, et sans leads.view, il ne peut pas lire une demande. Il revérifie avant chaque action : une permission retirée pendant une conversation s'applique donc à la suivante.