You are not logged in.
Bonjour,
J'ai défini une règle avec une expression régulière pour récupérer depuis le champ (LDAP) Department Number à la fois un type d'utilisateur (Administrateur Système) et le pays de cet utilisateur (Règles d'affectation d'habilitations à un utilisateur)
Voici la valeur que je teste pour ce champ (les guillemets ne sont pas saisis dans l'annuaire) : "/informatique/adminsysteme/France"
Pour mon exemle, j'ai une Entité Racine nommée "MaSociété" et une sous-entité nommée "MaSociété > France"
J'ai défini une règle comme suit:
Critère : (LDAP)Department Number expression rationnelle vérifie #.*/adminsysteme/(.*)$#
Actions : Entité depuis TAG Assigner valeur depuis expression rationnelle #0
Profils Assigner Technicien
Quand je clique sur Tester depuis la règle j'obtiens ceci:
Critère Condition Motif Validation
(LDAP)Department Number expression rationnelle vérifie #.*/adminsysteme/(.*)$# Oui
Validation Oui
Résultat de l'expression rationnelle Clé Valeur
0 France
Par contre, quand je vais dans le menu récapitulant toutes les Règles (Affectation d'habilitations à un utilisateur) (glpi/front/ruleright.php sans paramètre), et que je clique sur le bouton "Tester le moteur de règles" (en n'activant que la règle concernée), j'obtiens ceci:
Détail du résultat
Admin_System_Pays Oui
Résultat de la règle
Validation Non
Cela me semble totalement illogique: la valeur testée est la même mais le résultat de validation est différent.
Ceci ne fonctionne pas non plus si j'active mes autres règles (dont la règle Root restée à sa valeur par défaut) : l'Entité affectée devrait être France : les deux affectations d'entité sont positionnées sur MaSociété
De plus, si j'inverse la condition de la règle en mettant le critère suivant:
(LDAP)Department Number expression rationnelle ne vérifie pas #.*/adminsysteme/(.*)$#
J'obtiens ceci quand je fais "Tester le moteur de règles":
Détail du résultat
Admin_System_Pays Non
Résultat de la règle
Validation Oui
J'ai le même comportement étrange si je ne définis qu'une action d'affectation d'entité
Qu'est-ce que je rate ? Quelle est la logique sous-jacente à ceci ? Est-ce un comportement normal ?
Que faudrait-il que j'utilise comme critère/action/configuration pour faire fonctionner cette règle ?
--
Version de GLPI: 9.1.1
OS: Debian Jessie 8.6
Navigateur Mozilla Firefox 50.1.0
Offline
Bonjour,
Par contre, quand je vais dans le menu récapitulant toutes les Règles (Affectation d'habilitations à un utilisateur) (glpi/front/ruleright.php sans paramètre), et que je clique sur le bouton "Tester le moteur de règles" (en n'activant que la règle concernée), j'obtiens ceci:
Détail du résultat Admin_System_Pays Oui Résultat de la règle Validation Non
Cela signifie que votre règhle est correcte mais que la validation de la totalité n'est règles n'est pas faite vu que vos autres règles sont dé-activées
Pour faire fonctionner cette règle il faut que le tag de l'entité soit strictement identique à la valeur retournée par la regex
CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6 - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)
Offline
Bonjour,
Merci pour votre réponse.
En effet, si j'active la règle Root, Validation passe à Oui dans le résultat de la règle. Ceci dit, c'est uniquement la désactivation de la règle Root qui entraîne Validation à Non (d'autres règles peuvent être désactivées, Validation reste à Oui si Root est activée).
Si j'active Root, j'obtient ceci:
Résultat de la règle
Validation Oui
Affectation d'entités
Entité MaSociétéDémo
Entité MaSociétéDémo
Il me semblerait logique ici que l'une des deux Affectations d'entités ait pour valeur "France"
Car mon vrai problème est que si je me connecte avec avec le profil concerné, ni l'affectation d'entité ni le profil ne marchent. Donc je soupçonne que cela vient d'ici.
Dans mon LDAP, j'ai une entrée (uid=jquelqun) qui a les valeurs affectées suivantes (les guillemets ne sont pas pris en compte) :
departmentNumber=/informatique/adminsysteme/France
mail=jean.quelqun@masocietedemo.com
J'ai bien une entité dont l'orthographe exacte est "France" (sous-entité de MaSociété).
Cependant, quand je me connecte avec jquelqun, il reste sur un profil Self-Service : la règle n'est pas appliquée
Trois hypothèses :
soit l'expression régulière n'est pas correctement interprétée
soit GLPI ne prend pas en compte departmentNumber depuis mon LDAP,
soit la valeur retournée par #0 n'est pas prise en compte
J'élimine a priori la première puisque le test de ma règle me montre qu'elle fonctionne (voir mon premier post).
Comment puis-je tester d'où vient ce problème (quel fichier journal dois-je regarder, comment activer des messages de débuggage plus verbeux) ?
Offline
Pour faire fonctionner cette règle il faut que le tag de l'entité soit strictement identique à la valeur retournée par la regex
En relisant attentivement cette dernière phrase, la lumière s'est faite !
J'ai cherché dans la configuration des Entités et en effet, c'est le champ TAG qui n'était pas positionné.
En allant dans la configuration de l'entité France, onglet Informations Avancées, j'ai modifié le champ suivant:
Information de l'outil d'inventaire (TAG) représentant l'entité
Et après un nouvel essai de connexion, ça marche enfin ..!
Donc en résumé, pour qu'une règle de ce type marche:
Il faut bien définir la REGEX
Il faut bien définir la valeur dans l'annuaire
Il faut définir un TAG sur chacune des entités concernées
Validité de cette solution ?
Tout ceci marche, mais ne me semblait pas logique: en effet TAG est une information associée à OCSNG
J'ai donc modifié l'action associée à ma règle: au lieu de "Entité depuis TAG", j'ai utilisé "Entité depuis information LDAP" pour la positionner à partir de la valeur #0 de mon expression rationnelle.
Puis, dans le champs Information de l'annuaire LDAP représentant l'entité (Entité - France > Informations Avancées) j'ai mis la valeur : France
Et ça marche aussi au moment de la connexion.
Questions
Cependant, je me suis encore posé quelques questions: y a-t-il moyen de faire plus simple (par exemple en utilisant l'action "Entité depuis le nom complet", mais dans ce cas que vaut ce nom complet: "France" ou "MaSociété > France") ?
Y a-t-il un article dans la documentation qui traite de ceci ? (celui-ci semble pertinent http://glpi-project.org/DOC/FR/glpi/adm … right.html)
Y a-t-il d'autres ressources plus complètes sur ce sujet ?
Histoire que je sache où lire la prochaine fois que j'ai un problème du même genre ;-)
Offline
Le champ TAG de l'entité peut effectivement être utilisé par OCSNG mais pas seulement.
Concernant la documentation officielle, elle se trouve ici : https://forge.glpi-project.org/projects/glpidoc/files (pour les règles utilisateur, c'est toujours comme en 0.85)
CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6 - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)
Offline