From d433b2957e6ec6009b08b43c84bd4f3782570b66 Mon Sep 17 00:00:00 2001 From: Jason Secula Date: Sat, 25 Apr 2026 21:20:06 +0200 Subject: [PATCH] Updated profile interaction methods --- GLPIAPI.py | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/GLPIAPI.py b/GLPIAPI.py index 5ffebd5..9916b18 100644 --- a/GLPIAPI.py +++ b/GLPIAPI.py @@ -14,7 +14,7 @@ class GLPIAPI: self.ActiveProfile = None self.InitConnection() if(Profile == None): - self.ActiveProfile = self.GetActiveProfile() + self.ActiveProfile = self.GetActiveProfile()[0] else: self.ActiveProfile = Profile profileId = self.GetItems('Profile', 'Profile.name', Profile)[1]['2'] @@ -39,9 +39,12 @@ class GLPIAPI: "Session-Token": self.SessionToken, "App-Token": self.AppToken } - if(self.GetActiveProfile() != self.ActiveProfile and self.ActiveProfile != None): - profileId = self.GetItems('Profile', 'Profile.name', self.ActiveProfile)[1]['2'] - self.SetActiveProfile(profileId) + if(self.GetActiveProfile()[0] != self.ActiveProfile and self.ActiveProfile != None): + profile = [p for p in self.GetUserProfiles()['myprofiles'] if p["name"] == self.ActiveProfile] + if(profile != []): + self.SetActiveProfile(profile[0]["id"]) + else: + raise Exception(f"{self.ActiveProfile} is not in user profiles") else: raise Exception(f"{result.status_code} - {result.json()[0]}") @@ -50,7 +53,7 @@ class GLPIAPI: result = requests.get(sessionUri, headers=self.Headers) if(result.status_code != 200 and result.json()[0] == 'ERROR_SESSION_TOKEN_INVALID'): self.InitConnection() - return + return result.status_code def GetUserProfiles(self): self.CheckConnection() @@ -66,12 +69,19 @@ class GLPIAPI: uri = f"{self.Server}/apirest.php/getActiveProfile" req = requests.get(uri, headers=self.Headers) if(req.status_code == 200): - return req.json()['active_profile']['name'] + return (req.json()['active_profile']['name'],req.json()['active_profile']['id']) else: return req.status_code - def SetActiveProfile(self, profileId): + def SetActiveProfile(self, profile): self.CheckConnection() + if(type(profile) == str): + profileFound = [p for p in self.GetUserProfiles()['myprofiles'] if p["name"] == profile] + if(profileFound != []): + print(profileFound) + profileId = profileFound[0]["id"] + else: + profileId = profile body = { "profiles_id" : profileId }