Aperçu des rôles
Les 11 rôles NQLA, répartis en trois niveaux : plateforme, entreprise et utilisateur final.
3 min de lecture
Aperçu des rôles
NQLA contrôle les accès via le contrôle d’accès basé sur les rôles (RBAC) reposant sur le paquet Spatie Permission. Chaque compte se voit attribuer un rôle ; ce rôle accorde un ensemble fixe d’autorisations, et les données que le compte peut voir sont ensuite délimitées par-dessus ces autorisations.
Les trois groupes de rôles
- Plateforme / personnel — exploitent toute la plateforme sur chaque locataire :
super_admin,admin,staff,customer_support. - Entreprise — exploitent une seule entreprise de livraison ou de stockage :
storage_company_admin,storage_company_staff,delivery_company_admin,delivery_company_staffet le rôle transitoirepending_company. - Utilisateur final —
driver(effectue les livraisons via l’API mobile) etclient(le marchand / vendeur).
Les 11 rôles
| Rôle | Groupe | Périmètre des données | Objectif |
|---|---|---|---|
super_admin |
Plateforme | Tout (sans restriction) | Contrôle total — les 297 autorisations |
admin |
Plateforme | Tout (inter-locataires) | Administration quotidienne et données de référence |
staff |
Plateforme | Tout (surtout en lecture) | Examen opérationnel interne de l’inventaire et des commandes |
customer_support |
Plateforme | Tout (lecture seule) | Consulter utilisateurs/commandes/abonnements pour aider les clients |
storage_company_admin |
Entreprise | Sa propre entreprise de stockage | Gérer le personnel + confirmer le stock entrant |
storage_company_staff |
Entreprise | Sa propre entreprise de stockage | Confirmer/refuser le stock entrant (sans gestion des utilisateurs) |
delivery_company_admin |
Entreprise | Sa propre entreprise de livraison | Gérer chauffeurs/personnel + répartir les commandes |
delivery_company_staff |
Entreprise | Sa propre entreprise de livraison | Mettre à jour le statut de livraison (sans gestion des utilisateurs) |
pending_company |
Entreprise | Uniquement son abonnement en attente | Nouvelle entreprise en attente d’approbation |
driver |
Utilisateur final | Commandes affectées uniquement | Livrer les commandes qui lui sont affectées |
client |
Utilisateur final | Ses propres données uniquement | Marchand / vendeur — produits, commandes, portefeuille |
Comment fonctionnent les autorisations
- Il existe 297 autorisations granulaires (par ex.
view orders,create products,approve withdrawal-requests). Elles sont stockées comme des lignes d’autorisation Spatie et reflétées dans le code comme constantes dansapp/Constants/Permissions.php. - L’accès est refusé par défaut : une route ou une action est bloquée sauf si le rôle détient explicitement l’autorisation requise. Les routes sont protégées par
middleware('permission:…')et les actions par@can/authorize(). - Les rôles sont initialisés dans
database/seeders/SaasRoleSeeder.php.super_adminest particulier — il est synchronisé avec toutes les autorisations, donc les nouvelles lui sont automatiquement accessibles. - La séparation des tâches est imposée pour l’argent : consulter la file des paiements (
manage withdrawal-requests) est un droit distinct du déblocage des fonds (approve withdrawal-requests).
Comment fonctionne la délimitation
Détenir une autorisation est nécessaire mais pas suffisant — les lignes réellement visibles sont restreintes par le périmètre :
- Périmètre locataire / plateforme — les rôles plateforme voient les enregistrements de tous les locataires.
- Périmètre entreprise — les rôles entreprise ne voient que les enregistrements de leur propre entreprise (commandes/inventaire qui lui sont affectés, ses utilisateurs).
- Périmètre propriétaire — un
clientne voit que les lignes dont il est propriétaire (ses produits, commandes, portefeuille, litiges). - Périmètre affecté — un
driverne voit que les commandes dont il est le chauffeur affecté.
Consultez les pages par rôle pour les autorisations, écrans et points de terminaison exacts de chaque rôle.