signals.py 994 B

123456789101112131415161718192021222324252627282930
  1. from django.contrib.auth import get_user_model
  2. from django.dispatch import receiver, Signal
  3. delete_user_content = Signal()
  4. username_changed = Signal()
  5. """
  6. Signal handlers
  7. """
  8. @receiver(username_changed)
  9. def handle_name_change(sender, **kwargs):
  10. sender.user_renames.update(changed_by_username=sender.username)
  11. sender.warnings_given.update(giver_username=sender.username,
  12. giver_slug=sender.slug)
  13. sender.warnings_canceled.update(canceler_username=sender.username,
  14. canceler_slug=sender.slug)
  15. from misago.core.signals import secret_key_changed
  16. @receiver(secret_key_changed)
  17. def update_signatures_checksums(sender, **kwargs):
  18. User = get_user_model()
  19. for user in User.objects.iterator():
  20. if user.signature:
  21. new_checksum = make_signature_checksum(user.signature_parsed, user)
  22. user.signature_checksum = new_checksum
  23. user.save(update_fields=['signature_checksum'])