From 2fa704f381aec9a0dfd2423db80db753f2a0d0b4 Mon Sep 17 00:00:00 2001 From: Jason SECULA Date: Tue, 26 Aug 2025 09:35:02 +0200 Subject: [PATCH 1/5] Correctifs --- scripts/includes/GLPIAPI.py | 1 + scripts/includes/airwatchAPI.py | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/scripts/includes/GLPIAPI.py b/scripts/includes/GLPIAPI.py index 39e147d..2b3b984 100644 --- a/scripts/includes/GLPIAPI.py +++ b/scripts/includes/GLPIAPI.py @@ -55,6 +55,7 @@ class GLPIAPI: return deviceID, data, search["totalcount"] elif(search["totalcount"] > 1): + deviceID = list(search["data"].keys()) return deviceID, search["data"], search["totalcount"] else: return None, None, 0 diff --git a/scripts/includes/airwatchAPI.py b/scripts/includes/airwatchAPI.py index b314e7c..d649817 100644 --- a/scripts/includes/airwatchAPI.py +++ b/scripts/includes/airwatchAPI.py @@ -182,8 +182,12 @@ class AirwatchDevice: self.GroupId = device["LocationGroupId"]["Id"]["Value"] self.Group = device["LocationGroupName"] self.GroupUuid = device["LocationGroupId"]["Uuid"] - self.UserId = device["UserId"]["Id"]["Value"] - self.User = device["UserName"] + if(device["UserId"].get("Id") != None): + self.UserId = device["UserId"]["Id"]["Value"] + self.User = device["UserName"] + else: + self.UserId = None + self.User = None self.UserEmail = device["UserEmailAddress"] self.PlatformId = device["PlatformId"]["Id"]["Value"] self.Platform = device["Platform"] From 2bb3eec21949a16d96802c00ab33525b8bde1ddf Mon Sep 17 00:00:00 2001 From: Jason SECULA Date: Wed, 3 Sep 2025 16:24:55 +0200 Subject: [PATCH 2/5] Correction d'une erreur si l'utilisateur n'a pas d'appareils --- scripts/includes/airwatchAPI.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/includes/airwatchAPI.py b/scripts/includes/airwatchAPI.py index d649817..cbc0fef 100644 --- a/scripts/includes/airwatchAPI.py +++ b/scripts/includes/airwatchAPI.py @@ -168,7 +168,10 @@ class AirwatchUser: self.Group = user["Group"] self.GroupId = user["LocationGroupId"] self.OrgUuid = user["OrganizationGroupUuid"] - self.DeviceCount = int(user["EnrolledDevicesCount"]) + if(user["EnrolledDevicesCount"] != ''): + self.DeviceCount = int(user["EnrolledDevicesCount"]) + else: + self.DeviceCount = 0 class AirwatchDevice: From 20f28b71db7a6fae9f0b82c0077f37f81e46b5eb Mon Sep 17 00:00:00 2001 From: Jason SECULA Date: Fri, 12 Sep 2025 09:50:58 +0200 Subject: [PATCH 3/5] =?UTF-8?q?Ajout=20d'une=20fonction=20pour=20mettre=20?= =?UTF-8?q?=C3=A0=20jour=20l'utilisateur=20GLPI=20lors=20de=20la=20synschr?= =?UTF-8?q?o=20s'il=20est=20vide?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/includes/GLPIAPI.py | 11 +++++++++++ scripts/syncGLPI.py | 4 ++++ 2 files changed, 15 insertions(+) diff --git a/scripts/includes/GLPIAPI.py b/scripts/includes/GLPIAPI.py index 2b3b984..e3e2a26 100644 --- a/scripts/includes/GLPIAPI.py +++ b/scripts/includes/GLPIAPI.py @@ -78,6 +78,17 @@ class GLPIAPI: } uri = f"{self.Server}/apirest.php/Computer/" return requests.put(uri, headers=self.Headers, json=body) + + def UpdateUser(self, deviceid, username): + + body = { + "input" : { + "id" : deviceid, + "users_id" : username + } + } + uri = f"{self.Server}/apirest.php/Computer/" + return requests.put(uri, headers=self.Headers, json=body) def CreateInventoryForAirwatchDevice(self, device, deviceName, apps=None): platforms = { diff --git a/scripts/syncGLPI.py b/scripts/syncGLPI.py index 1d2a2b0..1b87b5c 100644 --- a/scripts/syncGLPI.py +++ b/scripts/syncGLPI.py @@ -224,6 +224,10 @@ for device in devices: logger.info(f"Updating {deviceID} on GLPI") glpiapi.UpdateInventory(inventory.Json()) + if(data['70'] == '' and device.User != settings["AIRWATCH"]["StagingUser"]): + logger.info(f"Updating user from {data['70']} to {device.User} in GLPI (id={deviceID})") + glpiapi.UpdateUser(deviceID, device.User) + if(data['5'] != device.SerialNumber): logger.info(f"Updating serial number from {data['5']} to {device.SerialNumber} in GLPI (id={deviceID})") glpiapi.UpdateSerialNumber(deviceID, device.SerialNumber) From 078d4f0923322fde281483d9b1e3e3083a0c6c08 Mon Sep 17 00:00:00 2001 From: Jason SECULA Date: Fri, 12 Sep 2025 10:00:33 +0200 Subject: [PATCH 4/5] =?UTF-8?q?Modification=20de=20la=20v=C3=A9rification?= =?UTF-8?q?=20de=20l'utilisateur=20non=20pr=C3=A9sent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/syncGLPI.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/syncGLPI.py b/scripts/syncGLPI.py index 1b87b5c..60dc0b4 100644 --- a/scripts/syncGLPI.py +++ b/scripts/syncGLPI.py @@ -224,7 +224,7 @@ for device in devices: logger.info(f"Updating {deviceID} on GLPI") glpiapi.UpdateInventory(inventory.Json()) - if(data['70'] == '' and device.User != settings["AIRWATCH"]["StagingUser"]): + if(data['70'] == None and device.User != settings["AIRWATCH"]["StagingUser"]): logger.info(f"Updating user from {data['70']} to {device.User} in GLPI (id={deviceID})") glpiapi.UpdateUser(deviceID, device.User) From a89a17020abc7ec7af5d2dfa22d93f0bc71583bb Mon Sep 17 00:00:00 2001 From: Jason SECULA Date: Fri, 12 Sep 2025 10:22:38 +0200 Subject: [PATCH 5/5] =?UTF-8?q?D=C3=A9sactivation=20de=20la=20v=C3=A9rif?= =?UTF-8?q?=20utilisateur=20pour=20maj=20glpi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/syncGLPI.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/syncGLPI.py b/scripts/syncGLPI.py index 60dc0b4..a4638ce 100644 --- a/scripts/syncGLPI.py +++ b/scripts/syncGLPI.py @@ -224,9 +224,9 @@ for device in devices: logger.info(f"Updating {deviceID} on GLPI") glpiapi.UpdateInventory(inventory.Json()) - if(data['70'] == None and device.User != settings["AIRWATCH"]["StagingUser"]): - logger.info(f"Updating user from {data['70']} to {device.User} in GLPI (id={deviceID})") - glpiapi.UpdateUser(deviceID, device.User) + #if(data['70'] == None and device.User != settings["AIRWATCH"]["StagingUser"]): + #logger.info(f"Updating user from {data['70']} to {device.User} in GLPI (id={deviceID})") + #glpiapi.UpdateUser(deviceID, device.User) if(data['5'] != device.SerialNumber): logger.info(f"Updating serial number from {data['5']} to {device.SerialNumber} in GLPI (id={deviceID})")