#!/usr/bin/env python3 import requests import urllib3 from datetime import datetime from zoneinfo import ZoneInfo import re # Disable SSL warnings for self-signed certificate urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) # Test configuration base_url = "https://admin-panel-undso.z5m7q9dk3ah2v1plx6ju.com" fallback_url = "https://localhost:443" admin_user = {"username": "rac00n", "password": "1248163264"} def test_timezone_simple(): """Simple test to verify timezone is Europe/Berlin""" session = requests.Session() print("Timezone Verification Test (Europe/Berlin)") print("=" * 50) # Test connection try: test_response = session.get(base_url, verify=True, timeout=5) verify_ssl = True print(f"✓ Using external URL: {base_url}") except: base_url_local = fallback_url verify_ssl = False print(f"ℹ Using fallback URL: {fallback_url}") else: base_url_local = base_url # Show current times utc_now = datetime.now(ZoneInfo("UTC")) berlin_now = datetime.now(ZoneInfo("Europe/Berlin")) print(f"\nCurrent times:") print(f" UTC: {utc_now.strftime('%Y-%m-%d %H:%M:%S')}") print(f" Berlin: {berlin_now.strftime('%Y-%m-%d %H:%M:%S')}") # Calculate offset time_diff = (berlin_now.hour - utc_now.hour) % 24 if berlin_now.day != utc_now.day: # Handle day boundary if berlin_now.day > utc_now.day: time_diff = (berlin_now.hour + 24 - utc_now.hour) % 24 else: time_diff = (berlin_now.hour - utc_now.hour - 24) % 24 print(f" Offset: +{time_diff} hours") # Login response = session.get(f"{base_url_local}/login", verify=verify_ssl) if response.status_code != 200: print(f"\n✗ Failed to access login page: {response.status_code}") return login_data = { "username": admin_user["username"], "password": admin_user["password"] } response = session.post(f"{base_url_local}/login", data=login_data, verify=verify_ssl, allow_redirects=False) if response.status_code != 302: print(f"\n✗ Login failed: {response.status_code}") return print(f"\n✓ Login successful") # Check dashboard for any timestamps print("\nChecking for timestamps in dashboard...") response = session.get(f"{base_url_local}/", verify=verify_ssl) if response.status_code == 200: # Look for time patterns in dashboard time_pattern = r'\d{2}:\d{2}:\d{2}' times_found = re.findall(time_pattern, response.text) if times_found: print(f"✓ Found {len(times_found)} timestamps in dashboard") # Check if any match current Berlin hour berlin_hour = berlin_now.strftime("%H:") if any(berlin_hour in time for time in times_found): print(f"✓ Timestamps appear to use Berlin time (found {berlin_hour}xx)") else: print(f"ℹ Could not confirm timezone from timestamps") else: print("ℹ No timestamps found in dashboard") # Check audit log print("\nChecking audit log for LOGIN timestamp...") response = session.get(f"{base_url_local}/audit", verify=verify_ssl) if response.status_code == 200: # Extract the most recent LOGIN entry if "LOGIN_SUCCESS" in response.text: # Look for timestamp near LOGIN_SUCCESS berlin_time_str = berlin_now.strftime("%Y-%m-%d %H:") if berlin_time_str in response.text: print(f"✓ Audit log shows Berlin time (contains {berlin_time_str}xx)") else: utc_time_str = utc_now.strftime("%Y-%m-%d %H:") if utc_time_str in response.text: print(f"✗ Audit log might show UTC time (contains {utc_time_str}xx)") else: print(f"ℹ Could not determine timezone from audit log") # Summary print("\n" + "=" * 50) print("Summary:") if time_diff == 1: print("✓ System timezone offset: +1 hour (CET - Winter time)") elif time_diff == 2: print("✓ System timezone offset: +2 hours (CEST - Summer time)") else: print(f"⚠ Unexpected timezone offset: +{time_diff} hours") print("\nNote: The system should use Europe/Berlin timezone for all new data.") print("Existing data created before the timezone change may still show UTC.") if __name__ == "__main__": test_timezone_simple()