Suggestion d’amélioration au niveau des droits d’accès d’OpenERP

Bonjour à tous,

J’aimerai vous faire part de quelques réflexions que je me fais au niveau du support des droits d’accès dans OpenERP, et comment je pense qu’il serait souhaitable de les améliorer.

Les droits d’accès dans OpenERP sont déjà très bien implémentés, en permettant notamment :
-De mettre des droits d’accès sur les différents menus, ou au niveau de l’action sur lesquels ils pointent.
-De mettre des droits d’accès sur l’objet lui-même, avec droit lecture/écriture/création/suppression.
-De définir des droits sur les champs eux-mêmes, soit au niveau de la vue soit au niveau de l’objet.
-De définir de la segmentation avec un moteur de règles d’accès qui est à mon sens déjà très puissant.

Ces outils permettent selon moi de faire face à une bonne partie des situations où les droits d’accès sont nécessaires, que ce soit si on veut interdire globalement l’accès à un objet, bloquer un menu spécifique, agir sur un champ en particulier ou ne donner accès qu’à une partie des enregistrements d’un objet (une partie des partenaires par exemple).

Il y a toutefois un cas qui n’est pas couvert, et je pense que les besoins des entreprises sont tels que ce cas pourrait se révéler très rapidement bloquant. Ce cas c’est la dualité lecture/écriture sur les droits d’accès.

Certes on le retrouve au niveau des objets, mais pas au niveau des droits des champs ou au niveau des règles d’accès.
Ainsi, si on met un droit sur un champ, alors ce champ disparait de l’interface de l’utilisateur n’ayant pas les droits même si on aurait voulu qu’il conserve un droit en lecture sur le champ et que seul le manager ait le droit en écriture.
De même, si par exemple un utilisateur ne remplit pas les conditions pour les règles d’accès sur un enregistrement de partenaire, alors il ne pourra même pas consulter l’enregistrement en lecture.

Pourtant, le cas où une entreprise a besoin de donner accès en lecture au plus grand nombre à une information tandis que seuls quelques personnes peuvent le modifier est très courant.
Par exemple, imaginer les commerciaux qui ont accès aux devis de la gestion des ventes. Aujourd’hui, tous ont accès en écriture aux devis de tous les commerciaux, alors que normalement ils ne devrait avoir accès en écriture qu’à leurs devis, et en lecture sur les autres car ils peuvent avoir le client d’un autre commercial au téléphone et avoir besoin de consulter l’offre qui lui a été faite.
Je pense ainsi que c’est une amélioration importante à effectuer sur le coeur d’OpenERP, OpenObject.

Je propose de remplacer le many2many des droits d’accès au niveau des droits des éléments des vues, des champs des objets et des règles d’accès par deux many2many, l’un qui renseignerai les groupes ayant le droit en lecture et l’autre qui renseignerai les groupes ayant le droit en écriture sur le champ ou l’enregistrement.

Bien entendu, le principe de cumul qui prévaut dans le système de droit d’OpenERP s’applique aussi ici.
Si l’utilisateur est membre d’un ou plusieurs groupes ayant le droit en lecture, il aura le droit en lecture. (Je précise que le droit en lecture n’est pas suffisant pour activer les boutons de workflow de l’enregistrement, par exemple confirmer une commande de vente)
Si il est membre d’un groupe ayant le droit en lecture et un autre ayant le droit en écriture sur le même champ ou enregistrement, alors il aura le droit en écriture.
Si il n’est membre d’aucun groupe ayant au moins le droit en lecture, le champ n’apparaitra pas sur son écran.

Il s’agit réellement du seul reproche que je peux faire à l’actuel système de droit d’accès. Avec cette correction, je pense que il n’y aura plus une seule situation où le système de droit d’accès ne sera pas capable de faire face.

J’ai déjà transmis mes remarques à Tiny, attendons de voir ce qu’ils en pensent. En attendant, n’hésitez pas à réagir dans les commentaires.

2 thoughts on “Suggestion d’amélioration au niveau des droits d’accès d’OpenERP”

  1. bsr,
    tu as là une très boe reflection c’est justemnt ce sur quoi je travaille actuellement. et aussi coet faire pour que les devis ne soient visible uniquement que par ceux qui les crais un peu coe pour les vente.
    STP si depuis t’a eu qlqchose dessus fais moi signe et merci pr le blog.

    1. J’ai été écouté, ce que je décris ici a été implémenté avec la V6 d’OpenERP. Désormais dans les règles d’accès on peut spécifier si la règle va apporter un droit en lecture/ecriture/creation/suppression.

      Pour le cas dont tu parle, tu dois être plus précis dans ta demande. Le commercial ne voit que ses propres devis ou il peut voir mais sans modifier les autres? Es-ce que c’est spécifique au statut Devis?

      En tous cas tu peux gérer ça dans les règles d’accès désormais sans problème. Pense aussi à créer des règles pour les managers, qu’ils puissent voir tous les devis.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>