Modèle métier

Sécurité et rôles

Rôles globaux, rôles d'organisation et logique d'autorisation.

Sécurité et rôles

Syrcow sépare les droits globaux du SaaS et les droits au niveau de chaque organisation. Le point clé à retenir est simple: un utilisateur peut être puissant au niveau plateforme, mais limité dans une organisation précise, et l'inverse. Cette séparation sert à éviter qu'un compte voit ou modifie des données hors de son périmètre réel.

RôlesHiérarchie des rôlesEmplacement réservé pour un visuel, un schéma ou une capture.
Schéma en arbre: niveau plateforme (system → admin → manager → user) et niveau organisation (admin → manager → agent → none). Montrer qu'un rôle plateforme n'équivaut pas au rôle organisation.

Rôles globaux

RôlePortéeCe qu'il peut faireLimites
systemplateforme entièreaccès total, administration complètedoit rester réservé au système ou aux comptes de maintenance
adminplateforme entièregérer les organisations, les utilisateurs et les paramètres globauxne remplace pas automatiquement le rôle métier dans une organisation
managersupervision opérationnellepiloter plusieurs organisations et des actions avancéesn'est pas un super-admin de la plateforme
userusage standardaccès limité aux fonctions autorisées par son organisationne doit pas être utilisé pour administrer la plateforme

À quoi servent les rôles globaux

  • system sert aux traitements internes, aux migrations et aux maintenances très sensibles.
  • admin sert à piloter le SaaS dans son ensemble.
  • manager sert à superviser l'activité avec plus de portée qu'un simple utilisateur métier.
  • user sert au quotidien quand la personne n'a pas de responsabilité d'administration.

Rôles d'organisation

RôleCe qu'il couvreCe qu'il ne couvre pas
adminadministration complète de l'organisation, paramètres, membres, branches et opérations sensiblesne donne pas automatiquement accès au niveau plateforme
managergestion opérationnelle quotidienne, création d'objets métier, suivi des opérationsne remplace pas un admin de plateforme
agentexécution des opérations terrain, ventes et saisies minimalesne peut pas administrer la structure ni valider les actions sensibles
noneaucun rôle effectif dans cette organisationaucune action métier n'est attendue

À quoi servent les rôles d'organisation

  • admin donne la main sur les membres, les paramètres et les opérations critiques de la structure.
  • manager permet de suivre et corriger l'activité sans gérer la plateforme entière.
  • agent permet d'exécuter le travail de terrain sans risque de toucher à la gouvernance.
  • none signifie que l'utilisateur existe mais ne doit pas agir dans cette organisation.

Scénarios concrets

Centrale d'achat avec points de vente franchisés

Une centrale d'achat (organisation Type A) donne accès à son catalogue à des points de vente franchisés (organisations Type B).

PersonneRôle globalRôle organisationActions possibles
Directeur de la centraleadminadmin (Type A)tout: gérer les utilisateurs, les produits, les branches, les transactions
Employé centraleuseragent (Type A)saisir des inventaires, préparer les commandes, lire le stock
Franchiséusermanager (Type B)voir le catalogue, passer des commandes, suivre les livraisons
Vendeur du franchiséuseragent (Type B)utiliser l'app en magasin, saisir les ventes, synchroniser

Le franchisé voit uniquement les produits et tarifs que la centrale a partagés. Il ne peut pas accéder aux données des autres franchisés ni aux paramètres de la centrale.

ScénarioRôles dans une centrale + points de venteEmplacement réservé pour un visuel, un schéma ou une capture.
Schéma montrant deux organisations: la centrale (Type A) avec ses employés, le franchisé (Type B) avec ses vendeurs. Les flèches relient chaque personne à son rôle et aux actions autorisées.

Réseau de magasins multi-sites

Un réseau exploite 5 magasins, chacun est une organisation Type A distincte. Un superviseur régional doit voir les stocks de tous les magasins de sa zone.

PersonneRôle globalRôle(s) organisationActions possibles
Superviseur régionmanagermanager dans chaque magasin de sa zonelire les stocks et tableaux de bord de tous ses magasins
Directeur de magasinuseradmin (son magasin)gérer son établissement, créer des branches, des produits
Chef de rayonusermanager (son magasin)gérer les opérations quotidiennes de son rayon
Vendeur / caissieruseragent (son magasin, branche boutique)faire des ventes depuis la caisse uniquement

Le superviseur ne peut pas modifier les paramètres d'un magasin (rôle manager, pas admin), mais il voit l'activité de tous ses établissements sur un seul tableau de bord.

Ce que le code impose vraiment

Les règles sont ensuite appliquées par action, pas seulement par étiquette de rôle.

ActionRôles autorisésLimite importante
créer une organisationsystem, adminréservé au niveau plateforme
créer un fournisseursystem, adminpas ouvert aux rôles de terrain
créer une branchesystem, adminlié à la gouvernance d'organisation
créer un produitsystem, admin, managerle manager doit rester dans le cadre de son organisation
ajouter une dépensesystem, admin, managerdépend du contexte d'organisation actif
approuver une dépensesystem, admin, manager globalréservé aux profils les plus élevés
voir la caissesystem, admin, managerl'accès est plus large que la validation
valider une écriture de caissesystem, adminla validation est plus stricte que la lecture
vente externe (outer_sale)system, admin, managertransaction métier standard
vente client (client_sale)agent sur une branchel'agent doit être rattaché à une branche
entrée fournisseur, vente interne, demande interne, ajustement de caissessystem, admin ou cas très encadrésréservé aux organisations de type A / contexte admin
création de vides, prêt interne, vente localesystem, adminpas une opération terrain simple

Audit et traçabilité

Chaque action sensible est enregistrée dans l'historique d'audit:

Information tracéeDétail
Quiidentifiant de l'utilisateur + rôle au moment de l'action
Quoitype d'action (création, modification, validation, suppression)
organisation et branche actives
Quandhorodatage précis
Contextesession, appareil (si disponible)

L'audit permet de remonter à l'origine d'une modification sans supposer la bonne foi: on sait exactement qui a fait quoi, dans quel contexte et à quel moment.

Comment vérifier qu'un rôle est correct

Quand un utilisateur ne voit pas un bouton ou reçoit un refus:

  1. vérifier l'organisation active;
  2. vérifier le rôle de l'utilisateur dans cette organisation;
  3. vérifier le rôle global si l'action touche la plateforme;
  4. vérifier si l'action est réservée à l'administration;
  5. relire le message renvoyé par l'API ou l'écran.

Conséquence pratique

Un même utilisateur peut voir plusieurs organisations, mais n'exécute pas les mêmes actions partout. Le rôle doit être vérifié au niveau de l'organisation active, sinon on ouvre des actions au mauvais niveau.

Exemples concrets:

  • un manager de plateforme ne peut pas se comporter comme un admin de plateforme pour créer des entités globales
  • un agent ne peut faire une vente client que si son organisation active possède une branche
  • un admin d'organisation n'est pas automatiquement un super-admin de la plateforme
  • les transactions de caisse vide et d'ajustement ne doivent pas être utilisées comme raccourci pour contourner le workflow normal
  • un utilisateur avec rôle none dans une organisation ne peut rien y faire, même s'il est admin global

À surveiller

  • les écrans publics login et register
  • les routes API protégées
  • les actions qui manipulent les transactions ou les quotas
  • les permissions sur une organisation active, pas uniquement sur l'utilisateur
  • les différences entre lecture, création, validation et suppression
  • les écrans d'administration qui ne doivent pas être visibles aux agents

À lire ensuite