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 2024-02-23 16:27:04

CozImAPI
Member
Registered: 2024-02-23
Posts: 4

Ajouter un utilisateur à un groupe, erreur 400

Bonjour,

Je désire associer un utilisateur à un groupe à l'aide de l'API rest (depuis du powershell). J'ai noté que le champs "groupe" est un onglet de la fiche utilisateur et non un champs encapsulé dans le form à la différence du champs groupe des équipements (ordinateur, écran..). Quelle est la syntaxe s'il vous plait ?

J'ai tenté le code suivant, mais j'obtiens une erreur 400 :

$uid="46xxx" #id de l'utilisateur
$grid ="17xx" #id du groupe
      $Bodygrp = '{"input": {"users_id": "' + $uid + '"}}'
    Invoke-RestMethod -Method patch -Uri "$AppURL/Group/$grid/Group_User" -Headers @{"Content-Type" = "application/json"; "session-token"=$SessionToken.session_token; "App-Token" = "$AppToken"} -Body $Bodygrp

Merci par avance.

Last edited by CozImAPI (2024-02-29 12:06:06)

Offline

#2 2024-02-29 12:03:13

CozImAPI
Member
Registered: 2024-02-23
Posts: 4

Re: Ajouter un utilisateur à un groupe, erreur 400

Finalement, j'ai trouvé la solution.

La méthode POST à fonctionné dans mon cas plutôt que la méthode PATCH (Je craignais qu'un Post ne vide les autres utilisateurs déjà existants du groupe. Ce n'est pas ce qui est arrivé  d'après ce que j'ai constaté). Je me suis rendu aussi compte qu'un utilisateur peut appartenir à plusieurs groupes différents alors qu'un équipement (ordinateur, écran..) ne peut appartenir qu'à un seul groupe unique (ce qui explique pourquoi le champs groupe est un onglet pour les utilisateurs et un champs de form pour les équipements).

Le script corrigé suivant a fonctionné sans webexception (erreur 400) :

$uid="46xxx" #id de l'utilisateur
$grid ="17xx" #id du groupe
$Bodygrp='{ "input" : {"itemtype": "User","groups_id": "' + $grid + '","users_id": "' + $uid + '", "is_dynamic":"0" ,"is_manager": "0" }}'
            Invoke-RestMethod -Method post -Uri "$AppURL/Group/$grid/Group_User" -Headers @{"Content-Type" = "application/json; charset=utf-8"; "session-token"=$SessionToken.session_token; "App-Token" = "$AppToken"} -Body $Bodygrp

Offline

Board footer

Powered by FluxBB