You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2019-02-21 17:43:25

ibrahim
Member
Registered: 2019-02-21
Posts: 17

API comment je peux obtenire l'ID d'un utilisateur en sechant son nom

Bonjour
je travaille sur un projet comporte une page web contineant un formulaire a fin de créer un ticket mais les soucie quej'arrive pas a touver l'id de mon utilisateur car mon serveur me donne des erreur depasser le 30s pour excuter la script ci-dessous,
ex : utilisateur a le nom x je peux obtenire son id 10
ex : utilisateur a le nom y je ne  peux pas obtenire son id 500
pour moi c'est un probelem de temps d'excution
merci d'avance pour tous ce qui vont particper et essayer de resoudre mon probleme smile
function get_id_user($headers,$nom){
$ok=false;
    $min=0;
    $max=100;
    while(!$ok){
        $i=$min;
       // for($i=$min;$i<$max;$i++){
        while(!$ok&&$i<$max){
            $user=get_user($headers,$i);
           
            if($user["name"]==$nom){
                echo $user["name"];
                $id=$user["id"];
                $ok=true;
                echo "<pre>";
                 print_r($user);
                echo "</pre>";
                }
               $i++;
          }
          $min=$max;
          $max+=100;

    }
       
     }
function get_user($headers,$id){
    $api_url="http://support-test.calt.local.com/apirest.php/";
    $url=$api_url."User/".$id;
    $ch = curl_init($api_url);
    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);
    return $obj;

}

Last edited by ibrahim (2019-02-21 18:03:18)

Offline

#2 2019-02-21 18:28:03

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,287

Re: API comment je peux obtenire l'ID d'un utilisateur en sechant son nom

utilisez tous simplement search :
$url=$api_usl."/search/User/?forcedisplay[0]=2&forcedisplay[1]=34&is_deleted=0&criteria[0][field]=1&criteria[0][searchtype]=contains&criteria[0][value]=^ladenree$";

pour les critères j'ai mis 1 pour retrouver à partir du login mais pour chercher sur le nom utilisez 34

pour avoir la correspondance exacte ajoutez ^  au début et $ à la fin


edit : url corrigée suite erreur typo


Trouver la panne avant de réparer...
GLPI10.0.16 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.3 reports 1.16.0 formcreator 2.13.9, datainjection 2.13.5 fields 1.21.9

Offline

#3 2019-02-22 10:23:26

ibrahim
Member
Registered: 2019-02-21
Posts: 17

Re: API comment je peux obtenire l'ID d'un utilisateur en sechant son nom

je vous  remercie pour votre  reponse , en fait  je voudrais que la function get user me  rend objet user   pour  recuperer  id ,  app token ...
mais ce url me rend le fait que l'utilisateur  est existe ou pas
la reponse reçue :

Array
(
    [totalcount] => 1
    [count] => 1
    [sort] => 1
    [order] => ASC
    [data] => Array
        (
            [0] => Array
                (
                    [1] => ibra
                )

        )

    [content-range] => 0-0/1
)

la reponse souhaitée

Array
(
    [id] => 534
    [name] => ibra
    [phone] => 
    [phone2] => 
    [mobile] => 
    [realname] => 
    [firstname] => Ibrahim
    [locations_id] => 0
    [language] => 
    [use_mode] => 0
    [list_limit] => 
    [is_active] => 1
    [comment] =>  service Informatique
    [auths_id] => 1
    [authtype] => 3
    [last_login] => 2019-02-21 11:40:14
    [date_mod] => 2018-09-05 11:52:12
    [date_sync] => 2019-02-21 11:40:14
    [is_deleted] => 0
    [profiles_id] => 0
    [entities_id] => 0
    [usertitles_id] => 0
    [usercategories_id] => 0
......

Last edited by ibrahim (2019-02-22 10:35:23)

Offline

#4 2019-02-22 12:12:11

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,287

Re: API comment je peux obtenire l'ID d'un utilisateur en sechant son nom

dans la réponse reçue vous avez $reponse[data][0][1]=ibra

je suis surpris qu'il n'y ait pas $reponse[data][0][2]= "idUser"

avez vous bien mis forcedisplay[0]=2 ?

une fois que vous avez son id   $url=$api_url."User/".$id;

   $url=$api_url."User/".$id;


Trouver la panne avant de réparer...
GLPI10.0.16 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.3 reports 1.16.0 formcreator 2.13.9, datainjection 2.13.5 fields 1.21.9

Offline

#5 2019-02-22 12:44:02

ibrahim
Member
Registered: 2019-02-21
Posts: 17

Re: API comment je peux obtenire l'ID d'un utilisateur en sechant son nom

c'est bon c'est reglé ,il y avait juste une faut dans l'url que vous m'avez envoyé , j'ai remplacé ( , ) par ( &) entre forcedisplay[0]=2&forcedisplay[1]
Merci

Last edited by ibrahim (2019-02-22 12:45:16)

Offline

Board footer

Powered by FluxBB