Proposition de patch
a valider
fichier inc/rulesengine.class.php
691,692c691,703
< $res |=
matchRules($tmp,$criteria->fields["condition"],$criteria->fields["pattern"]);
<
---
> switch
($criteria->fields["condition"]) {
> case PATTERN_IS_NOT :
> if
(matchRules($tmp,$criteria->fields["condition"],$criteria->fields["pattern"])) {
> $res =
1;
> } else {
> $res =
0;
> break 2;
> }
> break ;
> default :
> $res |=
matchRules($tmp,$criteria->fields["condition"],$criteria->fields["pattern"]);
> break ;
> }
Mais à mon avis, il faut aussi revoir les autres cas de type IS_NOT
Et peut-etre changer l'initialisation de
$res à true ou false en fonction des cas
ainsi que son affectation à soit
$res |=
matchRules($tmp,$criteria->fields["condition"],$criteria->fields["pattern"]);
soit
$res &=
matchRules($tmp,$criteria->fields["condition"],$criteria->fields["pattern"]);
Rappelle des faits
J'ai deux pool d'utilisateur
A simple utilisateur membre du group societeA
et un groupe de responsable de service
membre du group societeA et responsable
Je crée deux règles non récursives
règle 1 :
Si group == societeA et group != responsable
alors
fixé l'entité à A
profile 'simpleUtilisateur'
règle 2 :
Si group == societeA et group == responsable
alors
fixé l'entité à A
profile 'responsable'
et mes simple utilisateur ont bien uniquement le profile simpleUtilisateur, mais
les responsables on les doubles profiles.
Le seul moyen que j'ai trouvé poru corriger ce problème est d'exclure
explicitement les responsables automatiquement avec une règle sur le (LDAP)uid
!= lulu, (LDAP)uid != fred etc...
Pourriez-vous m'indiquer quel fichier modifier pour que la gestion des règles
dynamiques vérifie bien tous les groupes utilisateurs
_______________________________________________
Glpi-dev mailing list
[email protected]
https://mail.gna.org/listinfo/glpi-dev