diff --git a/scripts/includes/GLPIAPI.py b/scripts/includes/GLPIAPI.py index bf3e6d3..c811c33 100644 --- a/scripts/includes/GLPIAPI.py +++ b/scripts/includes/GLPIAPI.py @@ -82,6 +82,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/includes/airwatchAPI.py b/scripts/includes/airwatchAPI.py index b314e7c..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: @@ -182,8 +185,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"] diff --git a/scripts/syncGLPI.py b/scripts/syncGLPI.py index 3b2898f..f54e821 100644 --- a/scripts/syncGLPI.py +++ b/scripts/syncGLPI.py @@ -230,6 +230,10 @@ 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['5'] != device.SerialNumber): logger.info(f"Updating serial number from {data['5']} to {device.SerialNumber} in GLPI (id={deviceID})") glpiapi.UpdateSerialNumber(deviceID, device.SerialNumber)