import logging from inventory import models from django.utils import timezone logger = logging.getLogger('user_activity') class LogUserActivityMiddleware: def __init__(self, get_response): self.get_response = get_response def __call__(self, request): response = self.get_response(request) if request.user.is_authenticated: action = f"{request.method} {request.path}" models.UserActivityLog.objects.create( user=request.user, action=action, timestamp=timezone.now() ) return response def get_client_ip(self, request): x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR') if x_forwarded_for: return x_forwarded_for.split(',')[0] return request.META.get('REMOTE_ADDR') class InjectParamsMiddleware: def __init__(self, get_response): self.get_response = get_response def __call__(self, request): try: request.entity = request.user.dealer.entity except Exception as e: pass response = self.get_response(request) return response