Règles sur les enregistrements
Les règles sur les enregistrements définissent les droits d'accès aux différents enregistrements par utilisateur (exemple : un commercial ne doit avoir accès qu'à ses clients). Pour limiter les erreurs et garantir le bon suivi des flux, il peut être nécessaire d'autoriser uniquement certains utilisateurs à modifier ou supprimer certains éléments. Ces règles sont gérées depuis le sous-menu Configuration > Technique > Sécurité > Règles sur les enregistrements.
Création de règles
À la création, renseigner :
-
Le nom la nouvelle règle, de préférence en fonction du menu sur lequel elle va porter ;
-
L’objet (= table de la base de données) administré, à sélectionner à partir de la liste des objets du système.
On définit ensuite la règle, en utilisant la syntaxe Python–des exemples sont fournis plus bas.
La notation utilisée est la « polonaise inversée ».
On l'affecte ensuite à un ou plusieurs groupes d'utilisateurs en particulier. Le champ Global se coche automatiquement si aucun groupe n'est sélectionné (dans ce cas, la règle s'appliquera à l'ensemble des utilisateurs), et se décoche dans le cas contraire.
Une fois la règle d'accès renseignée, il faut définir les droits attribués : lecture, écriture, création, suppression. En effet, un utilisateur peut avoir accès à l'ensemble des ventes sans pour autant avoir tous les droits dessus.
Enfin, en décochant le champ Actif, on pourra facilement désactiver la règle ultérieurement, sans pour autant la supprimer.
Exemple de règle, illustrée ci-contre :
-
La règle régit les droits utilisateurs sur les devis (objet « quotation ») ;
-
Pour pouvoir afficher les devis, l'utilisateur devra faire partie du groupe des fonctionnels des ventes ;
-
La règle [('seller_id.id','=',user.id)] qui est définie ici stipule que l'utilisateur n'aura accès qu'aux devis pour lesquels il est le vendeur. Il ne verra que ces derniers dans la vue liste des devis ;
-
Tous les droits d'accès sont cochés : l'utilisateur pourra donc créer, consulter, modifier et supprimer des devis.
Règles à conditions multiples
Il est possible de créer des règles contenant plusieurs conditions. Quelques exemples de syntaxe sont fournis ci-dessous, sur l'objet commande de vente.
Exemple 1 : Condition1 OU Condition2
['|','|',
('partner_id.seller_id','=',False),
('partner_id.seller_id.id','=',user.id),
('partner_id.sales_manager_id.id','=',user.id),
]
L'utilisateur soumis à cette règle verra les ventes pour lesquelles il est le vendeur ou l'ADV, ou sans vendeur défini.
Exemple 2 : Condition1 ET Condition2
[
('partner_id.seller_id.id','=',user.id),
('partner_id.sales_manager_id.id','=',user.id),
]
L'utilisateur soumis à cette règle verra les ventes pour lesquelles il est à la fois le vendeur et l'ADV.
Exemple 3 : (Condition1 ET Condition2) OU Condition3
['|'
('partner_id.seller_id','=',False),
'&'
('partner_id.seller_id.id','=',user.id),
('partner_id.sales_manager_id.id','=',user.id),
]
L'utilisateur soumis à cette règle verra les ventes sans vendeur défini ou pour lesquelles il est à la fois le vendeur et l'ADV.
Exemple 4 : (Condition1 ET Condition2) OU (Condition3 et Condition4)
['|'
'&'
('partner_id.seller_id','=',False),
('partner_id.sales_manager_id.id','=',False),
'&'
('partner_id.seller_id.id','=',user.id),
('partner_id.sales_manager_id.id','=',user.id),
]
L'utilisateur soumis à cette règle verra les ventes sans vendeur défini et sans ADV défini ou pour lesquelles il est à la fois le vendeur et l'ADV.
Exemple 5 : Condition1 ET (Condition2 ou Condition3)
[('type','=','in'),
'|',
('company_id','=',False),