Contrainte - expression et habilitation

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

Oui effectivement il manquait un parenthèsage autour de la condition quand la contrainte est habilitée.

A partir de la 5.2.34 cela génèrera (<condition>) && (<responsabilités>).

C’est étonnant que cela ne nous ait pas été remonté jusqu’ici car ce pb date de l’origine des contraintes…

This topic was automatically closed 60 minutes after the last reply. New replies are no longer allowed.