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ô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.

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
outer_salesystem, admin, managertransaction métier standard
client_saleagent sur une branchel'agent doit être rattaché à une branche
approvisioning, inner_sale, inner_request, crates_adjustmentsystem, admin ou cas très encadrésréservé aux organisations de type A / contexte admin
create_empty, create_empty_full, create_empty_lost, inner_loan, local_salesystem, adminpas une opération terrain simple

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

À 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