Domaines fonctionnels

Accès et autorisations

Les accès déterminent ce qu'un utilisateur peut voir ou faire. Dans TARS, une autorisation dépend de la personne, de son organisation active, de ses rôles, des contrats, du shop, du statut de l'objet et parfois de droits plus fins.

Accès et autorisations

Les accès déterminent ce qu'un utilisateur peut voir ou faire. Dans TARS, une autorisation dépend de la personne, de son organisation active, de ses rôles, des contrats, du shop, du statut de l'objet et parfois de droits plus fins.

Notions

NotionDéfinition fonctionnelle
PersonneCompte utilisateur nominatif
Organisation activeEntité au nom de laquelle la personne agit
RôleFonction métier de l'organisation ou de la personne: acheteur, vendeur, admin organisation, finance, etc.
DroitAutorisation précise: consulter, créer, modifier, valider, supprimer, payer
Access keyAutorisation fine nommée, cochée sur un contrat pour l'ouvrir à une organisation, ou sur la fiche d'une personne pour restreindre les siennes
Rôle métierRegroupement d'access keys attribuable à un utilisateur d'une organisation cliente
ContratSupport des accès ouverts à une organisation
Admin globalUtilisateur interne avec pouvoirs élargis selon son périmètre
ShopContexte de vente ou de configuration qui peut modifier les règles

Règle générale

Un utilisateur ne doit jamais obtenir plus de droits que ce que permettent son organisation active, ses rôles, ses contrats et son profil.

Où les accès sont définis

Les accès sont portés par les contrats. C'est dans les contrats rattachés à une organisation qu'on coche les accès, qui se répercutent ensuite sur l'organisation et sur ses utilisateurs.

NiveauOùCe qu'on y fait
OrganisationOnglet « Accès » du contrat, dans l'adminOuvrir les accès disponibles pour toute l'organisation, regroupés par thème
Personne, côté adminOnglet « Accès » de la fiche utilisateurChoisir le mode d'attribution et, si besoin, restreindre les accès de cette personne
Personne, côté clientOnglet « Utilisateurs » du menu Organisation, dans l'espace personnelAttribuer des rôles aux utilisateurs de son organisation

Certains thèmes d'accès, notamment « Interne » et « Super », ne servent qu'aux utilisateurs internes. La majorité des accès d'une organisation cliente sont posés par les contrats automatiques créés à son onboarding.

Modes d'attribution des droits d'une personne

Trois modes s'excluent, selon un ordre de priorité fixe.

ModeEffetQuand il s'applique
PersonnaliséLa personne dispose uniquement des accès cochés manuellement, dans la limite des contrats de son organisationDès que des accès personnalisés sont définis sur sa fiche; ses rôles métier sont alors ignorés
Rôles métierLa personne dispose des accès réunis par les rôles qui lui sont attribués, dans la limite des contratsAucun accès personnalisé, au moins un rôle attribué
Admin de l'organisationLa personne dispose de tous les accès ouverts par les contrats de son organisationNi accès personnalisé ni rôle; c'est le mode par défaut à la création d'un utilisateur, depuis l'admin comme depuis l'espace personnel
flowchart TD
  start["Calcul des droits d'une personne"] --> perso{"Accès personnalisés définis ?"}
  perso -->|Oui| modePerso["Mode personnalisé: ces accès uniquement, rôles ignorés"]
  perso -->|Non| roles{"Rôles métier attribués ?"}
  roles -->|Oui| modeRoles["Mode rôles: accès réunis par les rôles"]
  roles -->|Non| modeAdmin["Mode admin de l'organisation: tous les accès des contrats"]

Le détail du calcul, y compris l'héritage entre organisations d'un même groupe, les procurations et la séparation par shop, est décrit dans Calcul des droits d'accès. La liste des rôles métier et des accès qu'ils réunissent est décrite dans Rôles et autorisations. Le fonctionnement des procurations, illustré sur une organisation fictive, est décrit dans Procurations et organisations complexes.

Sélection des accès dans l'admin

Depuis l'onglet « Accès » de la fiche utilisateur :

  • « Admin de l'organisation » est coché par défaut et affiche l'ensemble des accès des contrats de l'organisation, sans possibilité de les modifier.
  • « Rôles » ouvre un menu déroulant permettant de sélectionner un ou plusieurs rôles. Les accès affichés se mettent à jour, sans être modifiables : un rôle réunit toujours les mêmes accès. Un accès prévu par un rôle mais absent des contrats de l'organisation reste décoché.
  • « Personnalisé » permet de retirer des accès par rapport à la liste disponible pour l'organisation. On ne peut jamais en ajouter au-delà des contrats.
  • Revenir sur « Admin de l'organisation » réinitialise les accès : la personne récupère l'ensemble des accès de son organisation.

Gestion des accès depuis l'espace personnel

La page « Utilisateurs », dans le menu « Organisation », liste les utilisateurs rattachés à l'organisation avec leur identité, le statut de leur compte et leurs rôles.

Une personne disposant de l'accès de gestion des utilisateurs peut en plus :

  • modifier les rôles des autres utilisateurs, sauf ceux dont les accès sont personnalisés;
  • inviter un nouvel utilisateur depuis l'onglet « Gestion des invitations » et lui attribuer ses rôles dès l'invitation.

Les rôles définis depuis l'espace personnel se retrouvent dans l'onglet « Accès » de la fiche utilisateur côté admin, et inversement.

Workflow d'autorisation

flowchart TD
  action["Action demandée"] --> session{"Session valide ?"}
  session -->|Non| refuseSession["Refuser: connexion requise"]
  session -->|Oui| organisation{"Organisation active compatible ?"}
  organisation -->|Non| refuseOrganisation["Refuser: mauvais contexte"]
  organisation -->|Oui| droits["Calculer rôles, contrats et access keys"]
  droits --> autorise{"Droit disponible ?"}
  autorise -->|Non| refuseDroit["Refuser: droit absent"]
  autorise -->|Oui| statut{"Statut de l'objet compatible ?"}
  statut -->|Non| refuseStatut["Refuser: statut bloquant"]
  statut -->|Oui| sensible{"Action sensible ?"}
  sensible -->|Oui| audit["Autoriser et tracer"]
  sensible -->|Non| autorisation["Autoriser l'action"]

Ce qui est implémenté

  • Les droits de session sont calculés depuis les contrats actifs de l'organisation.
  • Les contrats des organisations parentes peuvent être pris en compte uniquement quand le transfert aux enfants est autorisé.
  • Quand une personne agit pour une autre organisation, TARS applique l'intersection entre les droits de la personne et ceux de l'organisation active.
  • Les access keys d'une personne et ses rôles métier peuvent restreindre les droits issus des contrats.
  • Un profil super admin reçoit l'ensemble des droits disponibles sur tous les shops.
  • Sans organisation de rattachement ou organisation active, aucun droit de session n'est retourné.
  • L'accès à une URL de document exige une session et un lien autorisé avec l'organisation concernée, ou un profil admin compatible.
  • Les frontaux consomment l'utilisateur, l'organisation active, les droits et les entitlements via un contexte de session commun.
  • Le parcours d'enchère rafraîchit les droits après une enchère placée.
  • Une personne en mode « Admin de l'organisation » (isOrgAdmin) passe systématiquement les vérifications d'accès du frontal, sans re-vérification clé par clé côté client; la garantie qu'elle ne dépasse pas les accès de ses contrats est appliquée lors du calcul de ce statut, pas au moment de la vérification.
  • L'accès à une plateforme (admin, espace personnel, marketplace) est vérifié en plus de l'accès à l'action elle-même: une personne peut détenir un accès sans pouvoir atteindre la plateforme qui l'exploite.
  • Chaque route protégée de l'admin et de l'espace personnel peut déclarer la liste des accès requis pour l'atteindre; si aucun de ces accès n'est présent, la navigation est redirigée vers une page d'erreur dédiée avant le chargement du contenu.

Actions contrôlées

ActionContrôle métier
ConnexionCompte connu, mot de passe ou méthode d'authentification valide, compte non bloqué
Changement d'organisationLa personne doit appartenir à l'organisation cible
Lecture d'un objetL'objet doit être public ou rattaché à l'organisation/personne autorisée
CréationL'utilisateur doit avoir le droit de créer dans le domaine concerné
ModificationL'utilisateur doit avoir le droit et l'objet doit être dans un statut modifiable
ValidationAction réservée aux profils autorisés, souvent admin ou compliance
SuppressionAction limitée, toujours contrôlée par le statut et l'historique
PaiementFacture payable, utilisateur autorisé, contexte financier valide

Accès nommés et actions associées

Chaque accès porte un nom composé du domaine (thème), de la ressource et de l'action, par exemple SALES.CONTRACT.MANAGE dans le code, exposé côté session sous la forme aplatie SALES_CONTRACT_MANAGE. La liste des accès est un catalogue fermé et centralisé (le code ne permet pas d'en inventer un autre à la volée) ; en pratique, une vérification d'accès porte toujours sur une clé de ce catalogue.

Les principaux, côté organisation cliente :

AccèsCe qu'il autoriseOù l'effet est visible
PURCHASE_BID_CREATEEnchérir sur un lot en venteMarketplace, formulaire d'enchère
ITEM_ITEM_MANAGECréer et modifier des fiches produitAdmin et espace personnel, formulaire d'item
ITEM_ITEM_PUBLISHRendre un item visible sur la marketplace, valider un item en adminBascule de visibilité sur la fiche item; bouton de validation d'item en admin
ITEM_ITEM_DELETE / ITEM_ITEM_REMOVESupprimer une fiche item, ou la retirer de la vente sans la supprimerAdmin et espace personnel, fiche item
ITEM_ITEM_AUTHORISATIONGérer les autorisations d'achat requises sur un item (catégories professionnelles)Fiche item, section autorisations
SALES_ITEM_MANAGECréer et modifier des ventes et leurs lotsEspace personnel, mise en vente et brouillons
SALES_ITEM_ASSIGN / SALES_ITEM_MANUAL_ASSIGNAffecter un item à une vente, y compris manuellementAdmin, affectation des items
SALES_SALES_INVOICE_MANAGEConsulter et gérer les factures de venteEspace personnel et admin, section Factures d'une vente
SALES_SALES_INVOICE_GENERATE / SALES_SALES_INVOICE_VALIDATE / SALES_SALES_INVOICE_DELETEGénérer, valider ou supprimer une facture de venteAdmin, workflow factures
SALES_COMMISSION_INVOICE_GENERATE / SALES_COMMISSION_INVOICE_MANAGEGénérer et gérer une facture de commissionAdmin, workflow factures de commission
SALES_CONTRACT_MANAGECréer et modifier des contrats (hors contrats gabarits, réservés à INTERNAL_TEMPLATE_MANAGE)Admin, onglet Contrats de l'organisation
SALES_CONTRACT_ARCHIVEArchiver un contratAdmin, onglet Contrats de l'organisation
SALES_ORGANISATION_LOGASSe connecter à la place d'une organisation (impersonation)Admin, fiche organisation
SALES_ORGANISATION_MANAGE / SALES_ORGANISATION_DELETEGérer ou supprimer une organisation (usage interne)Admin, fiche organisation
SALES_USER_MANAGEGérer un utilisateur (variante du thème Sales, distincte de ORGANISATION_USER_MANAGE)Admin legacy (V1); pas encore consommée dans le code de l'admin moderne exploré
SALES_BID_ASSIGN / SALES_BID_MANUAL_ASSIGNAttribuer une enchère, y compris manuellementAdmin legacy (V1); pas encore consommée dans le code de l'admin moderne exploré
SALES_SLIPS_GENERATEGénérer des bordereauxAdmin legacy (V1); pas encore consommée dans le code de l'admin moderne exploré
ORGANISATION_ADDRESS_MANAGEAjouter, modifier et supprimer les adresses de l'organisationEspace personnel, Mon organisation
ORGANISATION_USER_MANAGEInviter, modifier, valider, bloquer, débloquer et supprimer les utilisateurs de l'organisationEspace personnel et admin, page Utilisateurs
ORGANISATION_USER_DELETESupprimer un utilisateur de l'organisationAdmin, fiche utilisateur
ORGANISATION_ORGANISATION_MANAGEModifier les données de l'organisation elle-même (profil, paramètres)Admin et espace personnel, fiche organisation
ORGANISATION_ORGANISATION_MERGEFusionner deux organisationsAdmin, fiche organisation
ORGANISATION_DOCUMENT_MANAGEGérer les documents de l'organisationEspace personnel et admin, documents
ORGANISATION_STATS_EXTRACTExtraire des statistiques de l'organisationEspace personnel, statistiques
ORGANISATION_CONTRACT_SIGNSigner un contratAdmin legacy (V1); pas encore consommée dans le code de l'admin moderne exploré
SEANCE_SEANCE_MANAGE / SEANCE_SEANCE_PUBLISH / SEANCE_SEANCE_DELETEGérer, publier ou supprimer une séance de venteAdmin, séances
EVENT_EVENT_MANAGEGérer un événement (rendez-vous, visite)Admin, événements
EVENT_SALES_INVOICE_MANAGEGérer une facture de vente dans le contexte d'un événementAdmin legacy (V1); pas encore consommée dans le code de l'admin moderne exploré
FINANCE_SALES_INVOICE_MANAGE / FINANCE_SALES_INVOICE_EDITGérer et éditer les factures de vente côté financeAdmin, module finance
FINANCE_SERVICE_INVOICE_GENERATE / ..._VALIDATE / ..._DELETEGénérer, valider ou supprimer une facture de serviceAdmin legacy (V1); pas encore consommée dans le code de l'admin moderne exploré
FINANCE_PAYMENT_MANAGEGérer les paiementsAdmin, module finance
FINANCE_CREDIT_NOTE_MANAGE / ..._GENERATE / ..._EDIT / ..._VALIDATE / ..._DELETEGérer le cycle de vie des avoirsAdmin, module finance
FINANCE_COMMISSION_INVOICE_EDIT / ..._VALIDATE / ..._DELETEGérer les factures de commissionAdmin, module finance
SUPER_ITEM_STATUS_MANAGEForcer manuellement le statut d'un lot, en dehors du workflow standardAdmin, garde-fou réservé aux super-admins
SUPER_BID_MANAGE / SUPER_BID_DELETEGérer ou supprimer une enchère hors workflow standardAdmin, garde-fou réservé aux super-admins
SUPER_CONTRACT_DELETESupprimer un contratAdmin, garde-fou réservé aux super-admins
INTERNAL_ADMIN_USERS_MANAGE / INTERNAL_BRAND_MANAGE / INTERNAL_CATEGORY_MANAGE / INTERNAL_MODEL_MANAGE / INTERNAL_STATS_MANAGE / INTERNAL_TEMPLATE_MANAGEGérer les référentiels internes (utilisateurs admin, marques, catégories, modèles, statistiques globales, contrats gabarits)Admin uniquement

Cette liste reprend l'intégralité du catalogue AccessKeys du package partagé @auctelia/access-manager (consommé aussi bien par les fronts de tars-monorepo que par le backend auctelia/api), soit une cinquantaine de clés au total. Certaines n'apparaissent pour l'instant que dans l'admin legacy (V1) et ses traductions: elles restent valides et actives côté droits, mais aucun usage n'a été retrouvé dans le code de l'admin moderne exploré — signe probable d'un écart de parité entre les deux versions plutôt que d'un accès obsolète.

Ces accès sont regroupés par thème (INTERNAL, FINANCE, SALES, SUPER, PURCHASE, ORGANISATION, SEANCE, EVENT, ITEM), ce qui correspond aux thèmes affichés dans l'onglet « Accès » d'un contrat. Les thèmes INTERNAL et SUPER ne comportent que des accès à usage interne.

Quand l'accès manque, le frontal ne réagit pas toujours de la même façon : l'action peut être masquée, désactivée, ou échouer avec un message explicite au moment du clic. Par exemple, une personne disposant de ITEM_ITEM_MANAGE sans ITEM_ITEM_PUBLISH voit l'item et peut l'enregistrer, mais la bascule de publication reste grisée; une personne sans ORGANISATION_USER_MANAGE voit la liste des utilisateurs sans les boutons d'invitation, de blocage et de modification; une personne sans PURCHASE_BID_CREATE voit le formulaire d'enchère et reçoit un message d'erreur au clic. Certaines pages entières sont protégées en amont : la navigation vers une route déclarée avec une liste d'accès requis redirige vers une page d'erreur (403) si aucun des accès n'est présent, avant même l'affichage du contenu.

Effets du changement d'organisation

Quand l'utilisateur change d'organisation active:

  • ses ventes accessibles changent;
  • ses factures accessibles changent;
  • ses documents visibles changent;
  • ses limites d'enchère peuvent changer;
  • ses contrats applicables changent;
  • ses rôles admin organisation peuvent changer;
  • ses actions marketplace peuvent être autorisées ou bloquées.

Blocages courants

BlocageExplication utilisateur
Non connectéL'action exige une session
Mauvaise organisationL'utilisateur agit depuis une organisation qui n'a pas accès à l'objet
Droit absentLe rôle ou contrat ne permet pas l'action
Statut incompatibleL'objet n'est plus dans une étape modifiable
Document manquantUne validation ou enchère exige un document conforme
Contrat absentL'organisation n'a pas le contrat requis
Compte bloquéLa personne ou l'organisation est au statut BLOCKED

Le statut d'une personne suit une progression TO_VALIDATE → EMAIL_VALIDATED → MOBILE_VALIDATED → VALIDATED → COMPLETED, avec deux statuts de sortie possibles à tout moment : DISABLED et BLOCKED (le statut ARCHIVED clôt le compte). Une personne bloquée (BLOCKED) ne peut être débloquée que depuis ce statut précis; un admin disposant de ORGANISATION_USER_MANAGE peut bloquer une personne dans n'importe quel statut de la progression, hors BLOCKED, et la débloquer seulement si elle est BLOCKED. L'organisation suit une logique de statuts comparable (TO_VALIDATE, VALIDATED, DISABLED, BLOCKED, ARCHIVED).

Interaction frontaux

FrontalRôle des autorisations
MarketplacePermettre ou bloquer suivi, questions, enchères et accès ventes privées
Espace personnelFiltrer achats, ventes, documents, factures et organisations
AdminLimiter les actions internes selon le périmètre de responsabilité

Pour lever un doute entre le paramétrage et les droits réellement appliqués à une session, voir Vérifier les accès d'un utilisateur.

Copyright © 2026