From 420b57592a11f70ef3d7b8e5bc11e37cc1161e19 Mon Sep 17 00:00:00 2001 From: tuxudo Date: Sun, 8 Sep 2024 22:01:13 -0400 Subject: [PATCH] Fixes issue #2 --- macos_security_compliance_controller.php | 4 +++- scripts/macos_security_compliance | 9 ++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/macos_security_compliance_controller.php b/macos_security_compliance_controller.php index c1f93e5..ebea742 100644 --- a/macos_security_compliance_controller.php +++ b/macos_security_compliance_controller.php @@ -87,7 +87,9 @@ public function get_tab_data($serial_number = '') $sql = "SELECT `last_compliance_check`, `baseline`, `compliant`, `fails`, `passes`, `exempt`, `total`, `compliance_json` FROM macos_security_compliance - WHERE serial_number = '$serial_number'"; + LEFT JOIN reportdata USING (serial_number) + ".get_machine_group_filter()." + AND serial_number = '$serial_number'"; $queryobj = new Macos_security_compliance_model(); $macos_security_compliance_tab = $queryobj->query($sql); diff --git a/scripts/macos_security_compliance b/scripts/macos_security_compliance index 2135e74..eca320d 100755 --- a/scripts/macos_security_compliance +++ b/scripts/macos_security_compliance @@ -45,7 +45,14 @@ def process_audit(audit): for item in pl: if item == 'lastComplianceCheck': - out['last_compliance_check'] = str(int(time.mktime(datetime.datetime.strptime(pl[item], "%a %b %d %H:%M:%S %Z %Y").timetuple()))) + try: + out['last_compliance_check'] = str(int(time.mktime(datetime.datetime.strptime(pl[item], "%Y-%m-%d %H:%M:%S%z").timetuple()))) # Sonoma baselines v3.0 and newer + except: + try: + out['last_compliance_check'] = str(int(time.mktime(datetime.datetime.strptime(pl[item], "%a %b %d %H:%M:%S %Z %Y").timetuple()))) # Ventura and older, US local only + except: + out['last_compliance_check'] = str(int(os.path.getmtime(audit))) # Use file last modified time + else: total += 1 try: