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 2025-03-04 15:38:07

rac
Member
Registered: 2022-01-18
Posts: 33

Mise à jour habilitation d'un utilisateur

Bonjour,
J'utilise glpi 10.0.18

J'essai de mettre à jour l'habilitation d'un user via l'api rest
exemple pour le user 1690 à qui je veux appliquer l'id de profil 14 :
URL => https://xxxxxxxxxxx/apirest.php/User/1690
Méthode => PUT
Paramètre =>
{
    "input":{"profiles": 14}
}

Je précise que le APP_Token et le Session-Token sont bien transmis dans le header et sont corrects. J'obtiens ce message en retour
[
    "ERROR_GLPI_UPDATE",
    "Vous n'avez pas les droits requis pour réaliser cette action."
]

Je suis allé dans glpi puis j'ai coché "Mettre à jour" pour "Utilisateurs" et "Profil" pour le profil "API" dans Administration > Profils  puis onglet "Administration" mais j'ai toujours le même message.
Que faut-il autoriser de plus ?
Par avance merci.

Offline

#2 2025-03-04 16:12:29

rac
Member
Registered: 2022-01-18
Posts: 33

Re: Mise à jour habilitation d'un utilisateur

En complément si je vérifie le profil actif de l'api je suis bien sur le bon profil "API"
apirest.php/getActiveProfil

    "active_profile": {
        "id": 28,
        "name": "API",
        .....
et au niveau de l'entité l'utilisateur de l'API a bien accès à toutes les entités (checké avec le endpoint getActiveEntities)

Offline

#3 2025-03-17 12:35:42

rac
Member
Registered: 2022-01-18
Posts: 33

Re: Mise à jour habilitation d'un utilisateur

Bonjour,

A priori, personne ne sait comment mettre à jour ou supprimer une habiltation à un user via l'api ...
Peut-être que c'est impossible de remplacer une habilitation existante par une autre ou à défaut de remplacer, de supprimer une habilitation existante pour pouvoir en ajouter une autre...
Ex. j'ai un user avec un profile_id = 5 comment faire pour que le user est un profile_id = 4 à la place ?
Merci

Offline

#4 2025-03-17 12:39:39

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

Re: Mise à jour habilitation d'un utilisateur

il faut creer un lien entre l'utilisateur et le profil, pas mettre à jour le profil.

et comme pour l'interface graphique ajouter une profil (methode POST) et supprimer l'ancien;

methode POST (pour ajouter le profil
$payload='{"input":{"users_id":1690,"profiles_id":14,"entities_id":2,"is_recursive":0,"is_dynamic":0,"is_default_profile":0}}';
$url="/User/1690/Profile_User";

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 2025-03-19 16:44:50

rac
Member
Registered: 2022-01-18
Posts: 33

Re: Mise à jour habilitation d'un utilisateur

Bonjour,

Merci pour le retour.

J'ai pu ajouter une habilitation avec le POST sur /User/1690/Profile_User. Encore merci.

Par contre j'ai essayé le DELETE sur la même route en passant l'id de profil dans l'url mais le profil concerné reste toujours associé à l'utilisateur.
J'ai une réponse 200 OK mais aucun message

method DELETE
URL : /apirest.php/User/1690/Profile_User/5

Est-ce que l'appel n'est pas correct ?

Offline

#6 2025-03-19 17:39:27

cconard96
Moderator
Registered: 2018-07-31
Posts: 3,222
Website

Re: Mise à jour habilitation d'un utilisateur

Non, l'API actuelle est un peu bizarre. Vous devez spécifier l'ID dans un corps JSON au lieu de l'URL comme ceci :

method DELETE
URL : /apirest.php/User/1690/Profile_User
{ input: { id: 5 } }


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 2025-03-19 17:45:06

rac
Member
Registered: 2022-01-18
Posts: 33

Re: Mise à jour habilitation d'un utilisateur

Bonjour,
Merci pour le retour avec l'exemple
Je partage l'avis sur l'aspect "bizarre" de l'api !

Pour information j'ai réussi à supprimer le profile à force d'essais...
Je donne la solution pour ceux que cela pourrait intéresser.

J'ai utilisé le DELETE sur la route suivante : apirest.php/User/1690/Profile_User/2062

En fait l'id 2062 (dans mon exemple) correspond à l’identifiant de l’enregistrement dans la table glpi_profiles_users et non pas à l'identifiant dans la table glpi_profiles

Merci en tout cas pour vos réponse

Offline

#8 2025-03-19 18:18:59

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

Re: Mise à jour habilitation d'un utilisateur

avec ../apirest.php/Profile_User/2062

le delete fonctionne sur ma version 10.0.18


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

#9 2025-03-19 18:26:27

rac
Member
Registered: 2022-01-18
Posts: 33

Re: Mise à jour habilitation d'un utilisateur

API plus que déconcertante...

Enfin, problème st résolu, tout est bien qui fini bien !

Bonne fin de journée à tous et encore merci.

Offline

#10 2025-03-19 18:29:18

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

Re: Mise à jour habilitation d'un utilisateur

plutôt logique, vous ne voulez pas supprimer un profil mais le lien entre le profil et l'utilisateur


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

Board footer

Powered by FluxBB