Permissions dans OpenERP 5
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" />
