Sécurité – Gestion des droits d'accès – Accès applicatifs (1/2)

La gestion des droits d'accès applicatifs aux modules OpenERP repose sur :

  • les groupes
  • les ACL (Access Control List)

Un "groupe" (objet "res.groups") caractérise une typologie d'utilisation d'un ou plusieurs modules (ex: utilisateur simple de vente, responsable  des ventes).

Un utilisateur est affecté à un ou plusieurs groupes lors de sa création ou de sa modification.

Une ACL définit les droits d'accès d'un groupe sur (en général) un objet OpenERP.

Groupe
Un groupe est déclaré dans un fichier xml "<nom module>_security.xml" présent sous le répertoire "security" du module.

1- Un groupe peut-être "transverse" (commun à plusieurs applications) ou "catégorisé" :

  • exemple de groupe "transverse"
extrait fichier "/base/res/res_security.xml"
extrait copie écran "gestion des droits utilisateurs"
  • exemple de groupes "catégorisés"
extrait fichier "yd_security.xml"

extrait copie écran "gestion des droits utilisateurs"

2- Il est possible de restreindre les accès au niveau des menus :

extrait fichier "sale_view.xml"

3- Il est possible de restreindre les accès au niveau des actions de type "Window Actions" :

extrait fichier "sale_view.xml"

4- Il est possible de restreindre les accès au niveau des vues :

extrait fichier "sale_view.xml"

5- Un groupe peut hériter des droits d'un autre groupe grâce à la clause "implied_ids" :

extrait fichier "lunch_security.xml"

 6- Il est possible d'affecter un groupe à un utilisateur (ex: "administrateur") dans la livraison du module :

extrait fichier "lunch_security.xml"

Nb: telle qu'elle est implémentée dans OpenERP, la notion de "groupe" ressemble selon moi, à celle de rôle applicatif plutôt que celle de groupe d'utilisateurs.

ACL
Une ACL définit les droits d'accès au format "CRUD" (lecture, création, modification, suppression) d'un groupe sur un objet OpenERP.
Si l'information "groupe" n'est pas renseignée dans l'ACL, c'est que l'objet est accessible à tous (sauf droits restrictifs sur menus et actions).

Nous verrons ultérieurement qu'une ACL peut adresser aussi une vue PostgreSQL (cas des rapports).

Les ACL d'un module sont déclarées dans un fichier nommé "ir.model.access.csv" présent dans le répertoire "security" du module.

Voici un exemple d'ACL (exemple de l'appli YD vue précédemment)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *