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 voyageur retrouve une réservation avec sa référence et son e-mail.
- Un admin détient un ou plusieurs rôles, et un rôle est un ensemble de permissions nommées
<area>.<action>, commebookings.edit. Un admin détient chaque permission de chacun de ses rôles. - L'API vérifie une permission sur chaque route du tableau de bord, quoi qu'affiche 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 affiche « You do not have access to this page. »
- 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 32 | admin@hollina.example |
| Manager | overview.view, stays.*, calendar.*, bookings.*, inquiries.*, reviews.*, destinations.view, ai_chat.* : les séjours, le calendrier, les réservations, les demandes, les avis et l'assistant, sans admins, rôles ni paramètres de la société | manager@hollina.example |
Le seed règle les deux rôles exactement sur ces listes à chaque exécution, et ne réinitialise jamais un mot de passe existant. Les Paramètres d'un Manager n'affichent que Profil et Sécurité. Changez les deux mots de passe, ou supprimez les comptes du seed, avant que le tableau de bord soit accessible depuis internet. Le guide d'installation liste les identifiants de connexion de démonstration.
Toutes les permissions
| Domaine | Permissions |
|---|---|
| Vue d'ensemble | overview.view |
| Séjours | stays.view, stays.create, stays.edit, stays.publish, stays.delete |
| Calendrier | calendar.view, calendar.block |
| Réservations | bookings.view, bookings.edit |
| Demandes | inquiries.view, inquiries.edit |
| Avis | reviews.view, reviews.moderate |
| Destinations | destinations.view, destinations.create, destinations.edit, destinations.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 la société | 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. Les questions de la page d'accueil se modifient avec settings.view et settings.edit.
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 zone (roles.assign_permissions). Pour donner à un membre de l'équipe moins que le rôle Manager, comme une personne de ménage qui n'a besoin que du calendrier, créez un rôle avec seulement les permissions nécessaires 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 permettent les autres permissions de l'admin, 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 bookings.edit il ne peut pas annuler une réservation. Il revérifie avant chaque action, si bien qu'une permission retirée pendant une conversation s'applique à la suivante.