Multi-Sites & Zones
XetaSuite est conçu pour gérer plusieurs sites (multi-tenant), chacun avec ses propres zones, équipements et permissions.
Hiérarchie des entités
Section intitulée « Hiérarchie des entités »Organisation└── Sites ├── Siège (is_headquarters = true) │ └── Gère les Companies globalement │ └── Sites réguliers └── Zones (imbriquées) └── Matériels ├── Maintenances ├── Incidents └── NettoyagesSite Siège (Headquarters)
Section intitulée « Site Siège (Headquarters) »Ressources HQ-Only
Section intitulée « Ressources HQ-Only »| Ressource | Description |
|---|---|
| Companies | Fournisseurs de pièces et/ou maintenanciers |
Protection dans les Policies
Section intitulée « Protection dans les Policies »class CompanyPolicy{ public function before(User $user, string $ability): ?bool { // Bloque l'accès si l'utilisateur n'est pas sur le siège if (! isOnHeadquarters()) { return false; } return null; // Continue vers la vérification de permission }}Changement de site
Section intitulée « Changement de site »Les utilisateurs peuvent changer de site via le SiteSwitcher :
// Frontend - SiteSwitcher.tsxconst handleSiteChange = async (site: UserSite) => { await switchSite(site.id); // PATCH /api/v1/user/site window.location.reload(); // Recharge les permissions};Structure de données User
Section intitulée « Structure de données User »interface User { id: number; current_site_id?: number; roles: string[]; // Rôles du site actuel permissions: string[]; // Permissions du site actuel sites: UserSite[]; // Tous les sites accessibles}
interface UserSite { id: number; name: string; is_headquarters: boolean;}Prochaines étapes
Section intitulée « Prochaines étapes »- Gestion Utilisateurs - Créer et gérer les utilisateurs
- Gestion des Rôles - Configurer les rôles par site