Source code for admin_access_log.receivers

import logging

from django.contrib.auth import user_logged_in, user_login_failed
from django.dispatch import receiver

login_logger_error = logging.getLogger("login_logger_error")
login_logger_success = logging.getLogger("login_logger_success")


[docs]@receiver(user_logged_in) def user_logged_in_callback(sender, request, user, **kwargs): ip = get_client_ip(request) login_logger_success.info(f"{ip} {user.username}")
[docs]@receiver(user_login_failed) def user_login_failed_callback(sender, credentials, request, **kwargs): ip = get_client_ip(request) login_logger_error.error(f"{ip} {credentials}")
[docs]def get_client_ip(request): if request: x_forwarded_for = request.META.get("HTTP_X_FORWARDED_FOR") if x_forwarded_for: ip = x_forwarded_for.split(",")[0] else: ip = request.META.get("REMOTE_ADDR") return ip return None