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 2017-05-26 09:19:46

jonalex
Member
Registered: 2017-04-26
Posts: 23

[API REST GLPI 9.1.3] ChangeActiveEntities

Bonjour !

J'ai un problème avec l'API REST (Encore :-) )

J'ai ouvert un BUG sur GITHUB  il y a 2 semaines, mais aucune réponse, je me demande si je suis le seul à rencontrer ce problème.

https://github.com/glpi-project/glpi/issues/2178

J'ai un utilisateur qui appartient à ma "root entity" et qui peut accéder récursivement aux autres.

Quand je commence ma session j'appelle "getActiveEntities" et j'obtiens 0

J'utilise changeActiveEntities vers l'ID : 4 et j'obtiens comme réponse "true"

mais si je fais de nouveau "getActiveEntities" j'obtiens encore 0 au lieu de 4

Est-ce que quelqu'un a une idée ?

Merci :-)

Offline

#2 2017-05-26 09:59:20

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

Re: [API REST GLPI 9.1.3] ChangeActiveEntities

bonjour je ne constate pas ce bug (glpi 9.1.3)

avec la page suivante qui demande l'entité, change et redemande :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- ladenree -2017-  -->
<head>
    <title>TEST API</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <meta name="Generator" content="Dev-PHP 2.6.1" />
    <meta name="Keywords" content="GLPI,API," />
    <meta name="Description" content="Tests API
    <meta http-equiv="X-UA-Compatible" content="IE=8" />
    <meta http-equiv="pragma" content="no-cache" />
    <meta http-equiv="cache-control" content="no-cache" />


</head>
<body>
<h1>test API</h1>
<?php
    $api_url="http://localhost/apirest.php";
    $user_token="montoken";
    $app_token="myapptoken";
    echo "session token<br/>";
    $ch = curl_init();
    $url=$api_url . "/initSession?Content-Type=%20application/json&app_token=".$app_token ."&user_token=".$user_token;
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $json = curl_exec($ch);
    curl_close ($ch);
    $obj = json_decode($json,true);
    $sess_token = $obj['session_token'];
    echo "session token :".$sess_token."<br/>";
    $headers =array(
        'Content-Type: application/json',
        'app-token: ' .$app_token,
'session-token: '.$sess_token  
);

//print_r($headers);

/*****get entity************/


$url=$api_url . "/getActiveEntities/";



$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);
echo "<br/>";
print_r($obj);
echo "<br/>";
/******set entity**********/

   $ch = curl_init();
    $url=$api_url . "/changeActiveEntities/";
        $fields='{"entities_id": 2, "is_recursive": true}';

    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
    $request_result = curl_exec($ch);
    curl_close ($ch);
    $obj = json_decode($request_result,true);
echo "<br/>";
print_r($obj);
echo "<br/>";

/*****get entity************/


$url=$api_url . "/getActiveEntities/";



$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);
echo "<br/>";
print_r($obj);
echo "<br/>";
?>
</body>
</html>;

la réponse est :

session token xxxx

Array ( [active_entity] => Array ( [id] => 1 [active_entity_recursive] => 1 [active_entities] => Array ( [0] => Array ( [id] => 1 ) ) ) )

1

Array ( [active_entity] => Array ( [id] => 2 [active_entity_recursive] => 1 [active_entities] => Array ( [0] => Array ( [id] => 2 ) ) ) )


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

Offline

#3 2017-05-26 10:29:34

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

Re: [API REST GLPI 9.1.3] ChangeActiveEntities

complément :
avec :

$url=$api_url . "/changeActiveEntities/";
   $fields='{"entities_id": 0, "is_recursive": true}';

j'ai bien toutes mes 4 entités :

Array ( [active_entity] => Array ( [id] => 0 [active_entity_recursive] => 1 [active_entities] => Array ( [0] => Array ( [id] => 0 ) [1] => Array ( [id] => 3 ) [2] => Array ( [id] => 1 ) [3] => Array ( [id] => 2 ) ) ) )

ma réponse précedente ne me donnait qu'une entité (id=1) car à l'ouverture de glpi je suis par défaut sur l'entité 1 non récursif.

tout semble fonctionner normalement.


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

Offline

#4 2017-06-19 11:13:00

jonalex
Member
Registered: 2017-04-26
Posts: 23

Re: [API REST GLPI 9.1.3] ChangeActiveEntities

Bonjour,

Malgré plusieurs essais, je n'arrive toujours pas à changer l'entitée active, j'obtiens bien un retour à true, mais si je fais un getactiveentities, je suis toujours à 0 au lieu de 4.

Est-il possible que j'ai un problème de droit avec mon utilisateur ?

Ou la réponse se trouve ailleurs ?

merci par avance

Offline

#5 2017-06-19 14:46:19

jonalex
Member
Registered: 2017-04-26
Posts: 23

Re: [API REST GLPI 9.1.3] ChangeActiveEntities

Je viens de faire des tests,

Si mon utilisateur X est dans l'entité 1 (configurer dans l'interface de GLPI),

Je fais un getactiveentities --> resultat 1

Ensuite changeactiveentities --> vers 4

getactiveentities --> resultat --> 0

Help :-)

Offline

#6 2017-06-19 16:31:13

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

Re: [API REST GLPI 9.1.3] ChangeActiveEntities

quelq paramètre avez vous dans votre payload json ?


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

Offline

#7 2017-06-20 09:45:11

jonalex
Member
Registered: 2017-04-26
Posts: 23

Re: [API REST GLPI 9.1.3] ChangeActiveEntities

Bonjour,

J'ai trouvé l'origine de  mon problème.

En C# la sérialisation d'objets json rajoute des "[" "]" en début et fin de paramètres. L'API ne sait donc pas l'interpréter, mais je rencontre ce problème uniquement avec le endpoint changeactiveentities, j'ai donc retiré les crochets, et ça fonctionne parfaitement

Merci encore pour votre aide

Bonne journée

Offline

Board footer

Powered by FluxBB