Introduction
L’erreur AccessError dans Odoo survient quand un utilisateur tente d’ouvrir, modifier ou supprimer une donnée sans y être autorisé. Plutôt qu’un bug logiciel, c’est le mécanisme de sécurité d’Odoo qui refuse l’opération pour protéger les données de l’entreprise.
Le message affiché dans l’interface ressemble généralement à ceci :
AccessError: You are not allowed to access this document.
Ce comportement n’est pas une anomalie : il traduit l’application des règles d’accès prévues par Odoo pour contrôler qui peut faire quoi dans le système.
Ce guide décrit les raisons courantes d’apparition d’une AccessError et propose des méthodes de résolution sûres, sans affaiblir la protection du système.
Qu’est-ce qu’une AccessError dans Odoo ?
Odoo s’appuie sur plusieurs couches de sécurité complémentaires, parmi lesquelles on retrouve :
- Les groupes d’utilisateurs
- Les listes de contrôle d’accès (ACL)
- Les règles de partage des enregistrements (record rules)
- Les restrictions liées au multi-sociétés
Quand un utilisateur lance une action (lecture, écriture, création, suppression) et qu’une de ces couches refuse l’opération, Odoo génère une AccessError.
L’AccessError se manifeste le plus souvent dans l’interface utilisateur, mais elle peut aussi apparaître lors d’automatisations ou de scripts de traitement.
Causes fréquentes d’AccessError dans Odoo
1. Permissions manquantes au niveau du modèle (problème d’ACL)
Les ACL définissent pour chaque groupe si l’on peut :
- Lire
- Écrire
- Créer
- Supprimer
Si le groupe de l’utilisateur n’a pas la permission requise, Odoo bloque l’action.
Exemple concret :
Un commercial qui tente de modifier des écritures comptables sans droit adapté.
2. Règle d’enregistrement (record rule) trop restrictive
Les record rules appliquent des filtres (domaines) pour limiter les enregistrements visibles ou modifiables.
Exemple concret :
Par exemple : [('user_id', '=', user.id)]
Si l’enregistrement ne correspond pas au domaine, l’accès est refusé.
Ces règles sont souvent la cause de situations où tout marche pour l’administrateur mais pas pour un utilisateur standard.
3. Contexte multi-sociétés
Si un enregistrement appartient à une autre société, Odoo empêche l’accès lorsqu’on travaille dans le contexte d’une société différente.
Ce comportement est fréquent dans les environnements multi-sociétés.
4. Conflits entre permissions héritées
Un utilisateur peut appartenir à plusieurs groupes dont les règles se chevauchent.
Des hiérarchies de groupes complexes peuvent conduire à des restrictions imprévues.
5. Mauvaise configuration des modules personnalisés
Un module sur-mesure peut déclarer des éléments incorrects tels que :
- ir.model.access (règles d’accès) mal définis
- Les règles de partage des enregistrements (record rules)
- Assignments de groupes inappropriés
Ces erreurs de configuration bloquent parfois l’accès sans le vouloir.
Comment corriger une AccessError dans Odoo
Étape 1 – Vérifier les groupes utilisateur
Procédez à :
Paramètres → Utilisateurs & Sociétés → Utilisateurs
Contrôlez les groupes auxquels appartient l’utilisateur concerné.
Assurez-vous que le groupe adéquat est bien attribué pour l’action souhaitée.
Étape 2 – Vérifier les Access Control Lists (ACL)
Allez dans :
Paramètres → Technique → Sécurité → Access Control Lists
Vérifiez que le modèle autorise les permissions (lecture/écriture/création/suppression) pour le groupe de l’utilisateur.
Étape 3 – Contrôler les record rules
Allez dans :
Paramètres → Technique → Sécurité → Record Rules
Examinez les domaines appliqués au modèle concerné.
Désactivez temporairement les règles suspectes pour tester si elles sont la cause du blocage.
Étape 4 – Tester avec un administrateur
Si un Administrateur peut effectuer l’action tandis que l’utilisateur ne le peut pas, c’est quasi certain que le problème vient d’une configuration de sécurité.
Étape 5 – Vérifier le contexte multi-sociétés
Changez le contexte de société et voyez si l’enregistrement devient accessible.
Comment éviter les AccessErrors dans vos futurs projets Odoo
- Conseils pratiques : privilégiez des règles de sécurité simples et lisibles
- Évitez des domaines trop complexes ou hyper-restreints qui bloquent le fonctionnement normal
- Consignez toutes les modifications d’ACL dans la documentation projet
- Testez systématiquement les nouveaux modules avec des comptes non-admin pour détecter tôt les problèmes
- Auditez régulièrement les configurations multi-sociétés pour anticiper les conflits de visibilité
La sécurité dans Odoo doit être stricte mais prévisible : les comportements attendus doivent rester compréhensibles pour les équipes opérationnelles.
Les règles d’enregistrement excessivement complexes sont une source récurrente d’incidents et de perte de productivité.
Comment Dasolo organise le contrôle d’accès sécurisé dans Odoo
Les AccessError révèlent le plus souvent un décalage entre les droits attribués, les règles appliquées aux enregistrements et les usages métiers réels. Derrière un simple message d’interdiction se cachent souvent des incohérences de configuration à corriger.
Chez Dassolo, nous abordons les erreurs d’accès par un audit complet de l’architecture des permissions. Les causes les plus courantes sont :
- Des record rules qui se chevauchent ou se contredisent
- Des groupes mal configurés ou trop nombreux
- Des restrictions de visibilité liées au multi-sociétés mal paramétrées
- Des droits incorrects définis dans des modules personnalisés
- Des comptes techniques d’intégration sans permissions adaptées
Au lieu d’ouvrir large les droits par facilité, nous construisons des couches de permissions alignées sur les processus métier. Un modèle de sécurité clair diminue les AccessErrors inattendues tout en protégeant les données et l’intégrité du système.
Conclusion
L’AccessError d’Odoo intervient lorsqu’une action est tentée sans les permissions nécessaires. Bien qu’elle paraisse souvent comme une simple restriction, sa cause se situe généralement au niveau des règles d’enregistrements, des groupes ou du paramétrage multi-sociétés.
En vérifiant méthodiquement les droits, en clarifiant l’organisation des groupes et en s’assurant que les record rules correspondent aux besoins métiers, on évite la répétition des conflits de permissions. Un modèle de sécurité structuré et transparent est indispensable pour concilier efficacité opérationnelle et confidentialité des données.
Corriger correctement les AccessErrors renforce la gouvernance du système et garantit que l’environnement Odoo reste sécurisé et prévisible à mesure qu’il grandit.