Home / ERP/CRM : OpenERP / User Guide OpenERP5 / Utilisateurs et permissions

Utilisateurs et permissions

La gestion des groupes

La gestion des permissions dans OpenERP5 passe par la gestion de groupes. Un utilisateur est membre d'un, ou de plusieurs groupes.

Par défaut, tous les utilisateurs sont implicitement membre du groupe 'user', ensuite les permissions sont additives en fonction des groupes dont l'utilisateur est membre.

En fonction des droits d'accès, les menus correspondants sont visibles ou cachés à l'utilisateur.

Pour offrir une vue synthétique de ces droits, OpenERP utilise 2 tableaux disponible dans le menu 'Administration > Sécurité > Contrôle des accès'.

Liste des contrôles d'accès

Un tableau qui permet de visualiser les permissions d'un groupe. Par exemple, quelles sont les permissions du groupe 'Employee'?

Grille des contrôles d'accès

Un tableau qui permet de visualiser les permissions sur un objet. Par exemple, Quelles sont les groupes qui ont des permissions sur l'objet 'Partenaire'?

La gestion des formulaires imbriqués

De nombreux formulaires dans OpenERP sont imbriqués. Par exemple le formulaire d'un partenaire qui liste la, ou les, adresses de contact de ce partenaire.

Si vous voulez donner le droit à un groupe d'utilisateur d'ajouter des nouvelles adresses de contact à des partenaires, mais pas les droits d'édition sur le partenaire, il semble logique de donner les permissions lecture, écriture et création sur l'objet 'contact' et lecture sur l'objet 'partenaire'. Si l'utilisateur passe par le formulaire des adresses de partenaire, il aura la possibilité d'ajouter un contact.
Par contre, si il tente de passer par le formulaire des partenaires, qui contient la vue des contacts, il ne pourra pas faire sa saisie sans avoir également les droits en écriture sur le partenaire (car en fait c'est le formulaire 'partenaire' - qui contient 'contact' - qui doit être sauvé.)
Dans OpenERP, la majorité des objets sont reliés les uns aux autres. Par exemple une adresse de contact est liée à un partenaire. Vous devez tenir compte de ces liaisons lorsque vous gérez les droits d'accès.
Pour donner l'autorisation à un utilisateur d'ajouter des adresses de contact à un partenaire, il faut bien sûr lui donner les droits en lecture, écriture et création sur l'objet adresse de contact (res.partner.address) mais aussi les droits en lecture et en écriture sur le partenaire (res.partner) car l'enregistrement de ce nouveau contact va aussi modifier le partenaire.

La gestion des rôles

Si l'appartenance d'un utilisateur à un groupe défini ses droits sur les données, l'appartenance d'un utilisateur à un rôle défini ses droits sur les processus, comme la validation d'une commande ou l'approbation d'une note de frais.

La gestion des règles

Les règles permettent de définir des droits d'accès plus fins au niveau des enregistrements d'un objet. Donner des droits d'accès de manière globale sur les adresses ou les écritures comptables n'est parfois pas suffisant.

Une règle va exprimer qu'une écriture comptable n'est visible que pour un utilisateur qui appartient à la même société que la société à laquelle appartient le compte de l'écriture. Cette méthode est typiquement utilisée dans un mode multi company pour restreindre l'accès des filiales à leur propre comptabilité.
Une règle peut être globale, c'est-à-dire qu'elle s'applique à tous les utilisateurs de manière implicite ou, si elle n'est pas définie comme globale, s'appliquer à un, ou plusieurs, groupe d'utilisateur.

Fichier de définition des groupes d'utilisateurs

Dans OpenERP 5 chaque module est fournit avec ses propres permissions. Le répertoire 'security' du module contient 2 fichiers.

Un fichier qui définit les groupes , Il s'agît d'un fichier XML avec la syntaxe suivante:

<?xml version="1.0" encoding="utf-8"?>
   <openerp>
      <data>
         <record id="group_name" model="res.groups">
            <field name="name">Group visible name</field>
         </record>
      </data>
   </openerp>

Il est possible de bloquer la mise à jour en indiquant:

<data noupdate="1">

Un fichier qui définit les permissions, Il s'agît d'un fichier .csv avec la syntaxe suivante:

id name model_id:id group_id:id
<access>_<class_name>_<group_name> <class_name> <group_name> <model>_<class_name> <group_name>
perm_read perm_write perm_create perm_unlink
1 ou rien 1 ou rien 1 ou rien 1 ou rien

Pour indiquer une rêgle qui s'applique à tous, utiliser le groupe 'group_user' dans les colonnes 'id' et 'Name' et laisser vide la colonne 'Group'

Correspondance des groupes

base.group_user = Employeebase.group_system = Administrator / Configuration

La table res_groups_users_rel donne les liens entre les users (uid) et les group (gid)

Customisation des écrans

OpenERP pemet d'adapter les écrans à l'utilisateur en indiquant les groupes qui possèdent des permissions, par exemple,

<page groups="base.group_extended" string="Packaging">
<field groups="base.group_extended" name="product_manager" select="2"/>

La valeur 'groups' se compose du nom du module dans lequel le groupe est défini, séparé par un point du nom du groupe.