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_staff et le rôle transitoire pending_company.
  • Utilisateur finaldriver (effectue les livraisons via l’API mobile) et client (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 dans app/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_admin est 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 client ne voit que les lignes dont il est propriétaire (ses produits, commandes, portefeuille, litiges).
  • Périmètre affecté — un driver ne 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.