""" باطل‌کردنِ کشِ ردیفِ کاربر (auth:user:) با هر تغییرِ User. این سیگنال‌ها همه‌ی مسیرهای نوشتنِ داخلِ اپ (SetUserGrade، لاگین، رفرش‌توکن، last_activity_at، ...) را پوشش می‌دهند؛ فقط تغییری که کاملاً بیرون از ORM اعمال شود (مثلاً UPDATE مستقیمِ SQL) تا سقفِ AUTH_USER_CACHE_TTL کهنه می‌ماند. """ from django.db.models.signals import post_delete, post_save from django.dispatch import receiver from .authentication import invalidate_user_cache from .models import User @receiver(post_save, sender=User, dispatch_uid='accounts_invalidate_user_cache_on_save') def _invalidate_on_save(sender, instance, **kwargs): invalidate_user_cache(instance.pk) @receiver(post_delete, sender=User, dispatch_uid='accounts_invalidate_user_cache_on_delete') def _invalidate_on_delete(sender, instance, **kwargs): invalidate_user_cache(instance.pk)