You are not logged in.
Pages: 1
Bonjour,
Question bête, mais je galère à trouver la réponse.
Comment récupérer l'id de l'user connecté à l'API ? Les méthodes getMyEntities, getActiveEntities ne fournissent que l'id du poste du l'utilisateur (post-only, admin...) mais j'ai pas trouvé l'id "normale".
Est-ce que quelqu'un aurait une idée ?
Merci d'avance.
Offline
vous pouvez utiliser le endpoint : /getFullSession
$api_url="http://localhost/glpi/apirest.php";
$headers = [
'Content-Type: application/json',
'app-token: ' .$app_token,
'session-token: '.$sess_token
];$ch = curl_init();
$url=$api_url . "/getFullSession/";
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$json = curl_exec($ch);
curl_close ($ch);
$obj = json_decode($json,true);$glpi_myuser_id =$obj['session']['glpiID'];
echo "<br/>ID utilisateur ".$glpi_myuser_id;
//**********il y a plein d'autres infos dans la réponse :*********;
print_r($obj);
Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1 Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6
Online
Bonjour,
Comment récupérer l'id d'un utilisateur en effectuant une recherche via l'api ? Quand j'effectue une recherche je récupère uniquement le username et l'entité
Merci par avance
Offline
Bonjour,
je le fais en 2 etapes : recherche de l'utilisateur et de l'ID qui me renvoie un tableau avec l'ID puis recherche de l'utilisateur avec l'ID.
ATTENTION : j'ai l'impression que la recherche ne focntionne qu'avec "contient [0]" et que equals[1] et notequals[2] renvoient la même chose : donc il est possible d'avoir plusieurs réponses dans la recherche de l'ID (adaptez le code dans ce cas)
$headers = [
'Content-Type: application/json',
'app-token: ' .$app_token,
'session-token: '.$sess_token
];
/*****get user************/
$username="Ladenree";//username à rechercher;
$ch = curl_init();
$url=$api_url . "/search/User?criteria[0][field]=2&criteria[0][searchtype]=2&criteria[0][value]=&criteria[1][link]=AND&criteria[1][field]=1&criteria[1][searchtype]=2&criteria[1][value]=" . $username;
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$json = curl_exec($ch);
curl_close ($ch);
$obj = json_decode($json,true);
print_r($obj['data'][0]);
$user_id=$obj['data'][0][2];
echo "<br/> userid $user_id <br/>";$ch = curl_init();
$url=$api_url . "/User/" . $user_id;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$json = curl_exec($ch);
curl_close ($ch);
$obj = json_decode($json,true);
print_r($obj);
Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1 Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6
Online
j'ai trouver plus simple pour afficher les colonnes qu'on veut dans la réponse :
il suffit de passer un tableau avec les id des colonnes dans l'url
$url=$api_url . "/search/User?forcedisplay[0]=2&forcedisplay[1]=5&criteria[1][field]=1&criteria[1][searchtype]=2&criteria[1][value]=" . $username;
la requete affiche le login (field1) l'id (field 2) et l'email utilisateur (field 5)
Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1 Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6
Online
Décodage pour le noob que je suis : forcedisplay est un tableau des colonnes à afficher, les numéros sont ceux des searchoptions de l’objet (qu’il est possible de lister avec /apirest.php/listSearchOptions/User).
Ici la première colonne se voit affecter la valeur 2 qui correspond à la searchoption « id », la colonnesuivante à la searchoption 5 « email ».
On s’aperçoit que le critère de recherche apparait lui aussi sans qu’on ait eu besoin de le spécifier dans le forcedisplay.
La recherche se fait sur le champ 1 qui est « name » avec un searchtype 2 « equals » et une value $username. On cherche donc l’usager qui a un identifiant exactement égal à .username et le résultat apparaîtra sous la forme d’un tableau associatif associant les numéros de searchoptions et les valeurs.
C'est bien ça ?
GLPI 9.1.4 API REST/Client JavaEE/fusionInventory/Debian 8 Jessie
Offline
oui,
avec un petit doute sur le searchtype 2 « equals » : sur le papier c'est "egal" mais d'après mes observations c'est "contient"
je pense que c'est un bug ( déclaré sur github)
http://forum.glpi-project.org/viewtopic.php?id=157720
Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1 Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6
Online
Oui c'est clair, ça fonctionne toujours en enlevant des lettres. Je m'étais fondé sur la doc de /apirest.php qui donne un tableau
searchtype: type of search in [contains¹, equals², notequals², lessthan, morethan, under, notunder].
GLPI 9.1.4 API REST/Client JavaEE/fusionInventory/Debian 8 Jessie
Offline
listsearchoptions renvoie une liste plus réduite pour la recherche sur name :
$url=$api_url . "/listSearchOptions/User/";
[1] => Array (
[name] => Identifiant
[table] => glpi_users
[field] => name
[datatype] => itemlink
[available_searchtypes] =>
Array (
[0] => contains
[1] => equals
[2] => notequals )
[uid] => User.name )
https://github.com/glpi-project/glpi/issues/2182
la correction est prévue pour la version 9.1.5.
Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1 Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6
Online
OK donc ils se comporteraient tous comme "contains" en fait, comme par hasard celui qui aurait la valeur 0. Heureusement c'est probablement le plus utilisé.
GLPI 9.1.4 API REST/Client JavaEE/fusionInventory/Debian 8 Jessie
Offline
pour des recherches utilisateurs par le login je dirais plutot que c'est "equals" le plus utilisé et encore plus sur une recherche par ID.
ça oblige à prévoir une réponse à plusieurs lignes et d'affiner si besoin.
pour m'assurer d'avoir le bon je suis obligé de scanner mon tableau de resultats pour vérifier que la valeur retournée est exactement celle que je veux.
Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1 Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6
Online
Oui tout à fait! J'ai fait preuve de courte vue et je me suis mal exprimé, le plus générique en fait. Si ça avait été equals, donc le plus restrictif qui avait été la valeur par défaut l'effet aurait été plus gênant puisque des données attendues n'auraient pas été retournées.
GLPI 9.1.4 API REST/Client JavaEE/fusionInventory/Debian 8 Jessie
Offline
Pages: 1