import os
import django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'core.settings')
django.setup()

from django.contrib.auth import authenticate
from apps.accounts.models import User

print("Testing Django Authentication System")
print("=" * 50)

# Check if admin user exists
try:
    user = User.objects.get(email='admin@adtlas.com')
    print(f"✓ Admin user found: {user.email}")
    print(f"  - Is active: {user.is_active}")
    print(f"  - Is superuser: {user.is_superuser}")
    print(f"  - Is staff: {user.is_staff}")
except User.DoesNotExist:
    print("✗ Admin user not found!")
    print("Creating admin user...")
    user = User.objects.create_superuser(
        email='admin@adtlas.com',
        password='Admin@123456',
        first_name='Admin',
        last_name='User'
    )
    print("✓ Admin user created")

# Test authentication
print("\nTesting authentication...")
auth_user = authenticate(username='admin@adtlas.com', password='Admin@123456')
if auth_user:
    print("✓ Authentication successful!")
else:
    print("✗ Authentication failed!")
    print("Resetting password...")
    user.set_password('Admin@123456')
    user.save()
    auth_user = authenticate(username='admin@adtlas.com', password='Admin@123456')
    if auth_user:
        print("✓ Authentication successful after password reset!")
    else:
        print("✗ Still failing after password reset")

# Check CSRF settings
from django.conf import settings
print("\nCSRF Configuration:")
print(f"  - CSRF_TRUSTED_ORIGINS: {settings.CSRF_TRUSTED_ORIGINS}")
print(f"  - ALLOWED_HOSTS: {settings.ALLOWED_HOSTS}")
print(f"  - DEBUG: {settings.DEBUG}")
print(f"  - SECURE_PROXY_SSL_HEADER: {getattr(settings, 'SECURE_PROXY_SSL_HEADER', 'Not set')}")
