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-19 18:08:33

supertracteur
Member
Registered: 2020-07-10
Posts: 17

API REST : Probleme de droits pour ITILSolution

Bonjour

Pour plusieurs requetes POST, j'ai ce genre de messages en retour :

"id": false,
      "message": "Vous n'avez pas les droits requis pour réaliser cette action."

Je fais les opérations depuis un serveur distant avec Curl.
Exemple :
curl -X POST -k -H 'Content-type: application/json' -H "Session-Token: tok" -H "App-Token: tok" -d  @./SOLUTIONS1.json 'https://srv/apirest.php/ITILSolution?Content-Type=application/json&with_documents=true' | jq

La procedure pour POST les tickets.

Tickets :
curl -X POST -k -H 'Content-type: application/json' -H "Session-Token: yok" -H "App-Token: tok" -d  @./TICKET1.json 'https://srv/apirest.php/Ticket?Content-Type=application/json&with_documents=true' | jq

Acteurs :
curl -X POST -k -H 'Content-type: application/json' -H "Session-Token: tok" -H "App-Token: tok" -d  @./ACTEURS1.json 'https://srv/apirest.php/Ticket_User?Content-Type=application/json' | jq

Suivis : curl -X POST -k -H 'Content-type: application/json' -H "Session-Token: tok" -H "App-Token: tok" -d  @./SUIVIS1.json 'https://srv/apirest.php/ITILFollowup?Content-Type=application/json&with_documents=true' | jq

Solutions :
curl -X POST -k -H 'Content-type: application/json' -H "Session-Token: tok" -H "App-Token: tok" -d  @./SOLUTIONS1.json 'https://srv/apirest.php/ITILSolution?Content-Type=application/json&with_documents=true' | jq

Pièces jointes :
curl -X POST -k -H 'Content-type: application/json' -H "Session-Token: tok" -H "App-Token: tok" -d  @./PJ1.json 'https://srv/apirest.php/Document?Content-Type=application/json' | jq
curl -X POST -k -H 'Content-type: application/json' -H "Session-Token: tok" -H "App-Token: tok" -d  @./PJs1.json 'https://srv/apirest.php/Document_Item?Content-Type=application/json' | jq

Ca fonctionne, malgré les quelques erreurs, sauf les Solutions.
Qu'ai-je loupé?
Merci pour votre aide.
Cordialement,

Offline

#2 2024-02-19 18:19:56

supertracteur
Member
Registered: 2020-07-10
Posts: 17

Re: API REST : Probleme de droits pour ITILSolution

Bonjour,
A noter que mes requêtes GET qui enregistres dans les fichiers json ont un range de 2000.
C'est peut être trop?
Cordialement,

Offline

#3 2024-02-19 22:52:40

cconard96
Moderator
Registered: 2018-07-31
Posts: 2,435
Website

Re: API REST : Probleme de droits pour ITILSolution

Pourquoi renvoyer l’en-tête content-type en tant que paramètre de requête ? En fait, aucun de vos paramètres de requête n'a de sens pour les requêtes POST.

Pour le problème de solution, veuillez fournir la charge utile JSON réelle envoyée.


GLPI Collaborator and Plugin Developer.
My non-English comments are automated translations. Sorry for any confusion that causes.
Mes commentaires non anglais sont des traductions automatiques. Désolé pour toute confusion qui cause.
Mis comentarios que no están en inglés son traducciones automáticas. Perdón por cualquier confusión que cause.

Offline

#4 2024-02-20 09:46:34

supertracteur
Member
Registered: 2020-07-10
Posts: 17

Re: API REST : Probleme de droits pour ITILSolution

Bonjour,
Oui l'entête content-type fait doublon en effet. Le parametre with_document est inutile lui aussi? Excusez moi je ne suis pas encore très au fait sur les API REST wink
Je ne peux pas joindre de fichier, voici donc un exemple :

{"input":
    {
      "id": 2001,
      "itemtype": "Ticket",
      "items_id": 3694,
      "solutiontypes_id": 2,
      "solutiontype_name": null,
      "content": "<p>Le disque est restauré.</p>\r\n<p>La baie de disque est opérationnelle.</p>\r\n<p>Cordialement.</p>\r\n<p></p>",
      "date_creation": "2014-07-02 17:43:43",
      "date_mod": null,
      "date_approval": "2014-07-02 17:43:54",
      "users_id": 0,
      "user_name": null,
      "users_id_editor": 0,
      "users_id_approval": 0,
      "user_name_approval": null,
      "status": 3,
      "itilfollowups_id": null,
      "links": [
        {
          "rel": "Ticket",
          "href": "https://glpi/glpi/apirest.php/Ticket/3694"
        },
        {
          "rel": "SolutionType",
          "href": "https://glpi/glpi/apirest.php/SolutionType/2"
        },
        {
          "rel": "Document_Item",
          "href": "https://glpi/glpi/apirest.php/ITILSolution/2001/Document_Item/"
        }
      ]
    }
  ]
}

Cordialement,

Offline

#5 2024-02-20 12:56:32

supertracteur
Member
Registered: 2020-07-10
Posts: 17

Re: API REST : Probleme de droits pour ITILSolution

Bonjour,
Petite précision, quand je POST les solutions en premier (Avant les Tickets), celà fonctionne.
Cordialement,

Offline

#6 2024-02-20 14:19:40

cconard96
Moderator
Registered: 2018-07-31
Posts: 2,435
Website

Re: API REST : Probleme de droits pour ITILSolution

Pour autant que je sache, "with_documents" n'affecte que l'obtention d'éléments de l'API.

Votre exemple est ce que vous envoyez pour créer la solution ?
Certaines données n'ont aucune signification dans une requête POST comme les "liens".
Cela n’a pas non plus de sens que vous puissiez créer une solution avant de créer le ticket auquel elle est liée.


GLPI Collaborator and Plugin Developer.
My non-English comments are automated translations. Sorry for any confusion that causes.
Mes commentaires non anglais sont des traductions automatiques. Désolé pour toute confusion qui cause.
Mis comentarios que no están en inglés son traducciones automáticas. Perdón por cualquier confusión que cause.

Offline

#7 2024-02-20 14:29:15

supertracteur
Member
Registered: 2020-07-10
Posts: 17

Re: API REST : Probleme de droits pour ITILSolution

Bonjour,
Ok, je vais refaire les requetes.
Oui c'est l'exemple que j'envoie.
L'idée est de passer d'une base glpi ancienne à une installation propre.
Les deux instances sont en 10.0.12.
Je fais une requete GET sur l'ancien puis une POST sur le nouveau.
Les liens sont générés automatiquement, je ne fais qu'un GET (curl -k -X GET -H 'Content-Type: application/json' -H "Session-Token: $OLD_session_token" -H "App-Token: tok" 'https://glpi/glpi/apirest.php/ITILSolution?Content-Type=application/json&range=0-2000&with_documents=true' > ./SOLUTIONS1.json)

Pour la solution crée avant le ticket, je suis d'accord avec vous mais l'API ne m'en empêche pas et ne me génère pas d'erreur de droit. Si je poste la solution en dernier, je n'ai que des erreurs.

Je pars d'une instance tout fraiche sur un serveur frais pour faire les POSTs.

Cordialement,

Offline

#8 2024-02-21 03:01:47

cconard96
Moderator
Registered: 2018-07-31
Posts: 2,435
Website

Re: API REST : Probleme de droits pour ITILSolution

Ah... Vous essayez de transférer vos données d'un autre GLPI vers un nouveau ? Il est de loin préférable de simplement faire un mysqldump sur l'ancienne base de données et d'importer ce dump sur la nouvelle.

Il est peu probable que le simple fait d'effectuer un POST sur le nouveau GLPI avec des données provenant directement d'un GET sur l'ancien serveur fonctionne correctement. À tout le moins, vous devrez vous assurer que les ID des éléments du nouveau GLPI correspondent à l'ancien serveur, ce qui n'est pas possible car les ID sont automatiquement choisis par la base de données elle-même. Il n'utilisera pas l'ID que vous spécifiez dans la requête POST.


GLPI Collaborator and Plugin Developer.
My non-English comments are automated translations. Sorry for any confusion that causes.
Mes commentaires non anglais sont des traductions automatiques. Désolé pour toute confusion qui cause.
Mis comentarios que no están en inglés son traducciones automáticas. Perdón por cualquier confusión que cause.

Offline

#9 2024-02-21 09:48:38

supertracteur
Member
Registered: 2020-07-10
Posts: 17

Re: API REST : Probleme de droits pour ITILSolution

Bonjour,
Je suis d'accord avec vous, l'ennui c'est que sur ma vieille base il y a des gros soucis d'ID sur l'inventaire.
Les remontées des postes ne se font plus, les remote inventories non plus ^^

D'ou la nécessité de repartir sur une base propre.
A moins que vous ayez la liste des tables de gestion des tickets (+ base de connaissance) a dump/load.?

Merci pour votre aide.
Cordialement,

Offline

Board footer

Powered by FluxBB