Problem description
La gestion des habilitations sur les contraintes ne fonctionne pas comme attendu.
Steps to reproduce
Dans une première contrainte, je désactive la possibilité de modifier des attributs sur un objet (cf exemple de la démo).
Dans une deuxième contrainte, j’ai paramétré l’expression
[VALUE:sicEcheanceStatut]=='ENCOURS' || [VALUE:sicEcheanceStatut]=='VALIDATION'
et ajouté une habilitation à un groupe particulier pour donner accès en modification à un des attributs.
Un utilisateur n’appartenant pas au groupe peut modifier l’attribut.
Il semble que le moteur de contrainte crée la règle suivante, introduisant une erreur dans la gestion des priorités :
(obj.getFieldValue("sicEcheanceStatut")=='ENCOURS' || obj.getFieldValue("sicEcheanceStatut")=='VALIDATION' && ( grant.hasResponsibility("SIC_GROUP")));
En effet, ça fonctionne comme attendu si :
- je retire l’habilitation au groupe et que je mets dans l’expression
[HASRESP:SIC_GROUP] && ([VALUE:sicEcheanceStatut]=='ENCOURS' || [VALUE:sicEcheanceStatut]=='VALIDATION')
- Si je remets l’habilitation au groupe et que je mets dans l’expression entre parenthèses
([VALUE:sicEcheanceStatut]=='ENCOURS' || [VALUE:sicEcheanceStatut]=='VALIDATION')
Technical information
[Platform]
Status=OK
Version=5.2.33
BuiltOn=2023-03-01 13:52
Git=5.2/67ba88993d759d4a47b6e802922b500621fa2665
Encoding=UTF-8
EndpointIP=127.0.0.1
EndpointURL=https://demo.simplicite.io:23273
TimeZone=Europe/Paris
SystemDate=2023-03-11 09:19:26