Home / ERP/CRM : OpenERP / Admin Guide OpenERP / Permissions dans OpenERP 5

Permissions dans OpenERP 5

La version 5 de OpenERP possède un système de gestion des permissions puissant et facile à utiliser.

Dans OpenERP 5 (version trunk) chaque module est fournit avec ses propres permissions.

Le répertoire 'security' du module contient 2 fichiers.

Fichier de définition des groupes d'utilisateurs

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">

Fichier de définition des permissions

Il s'agît d'un fichier .csv avec la syntaxe suivante:

id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
<access>_
<class_name>_
<group_name>
<class_name> <group_name> <model>_
<class_name>
<group_name> 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'

Access Control

Pour se connecter, un user doit être membre d'un groupe qui possède au minimum les accès suivants;

res.users
ir.actions.actions
ir.actions.act_window
ir.ui.view
ir.ui.menu

Correspondance des groupes

base.group_user = Employee
base.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.

Contrôle des wizards

Pour qu'un wizard s'affiche dans la bande de droite d'un écran il faut que les 2 conditions suivantes soient satisfaites;

L'utilisateur à des droits de lecture sur ir.actions.wizard
La définition du wizard dans le fichier XML comporte un groupe dont l'utilisateur est membre

 <wizard groups="base.group_extended" 

Condition sur un bouton

<button name="add_reply" string="Add Last Mail for Replying" states="open" type="object" />