signals.py 996 B

12345678910111213141516171819202122232425262728293031
  1. from django.contrib.auth import get_user_model
  2. from django.dispatch import Signal, receiver
  3. from misago.core.signals import secret_key_changed
  4. delete_user_content = Signal()
  5. username_changed = Signal()
  6. """
  7. Signal handlers
  8. """
  9. @receiver(username_changed)
  10. def handle_name_change(sender, **kwargs):
  11. sender.user_renames.update(changed_by_username=sender.username)
  12. sender.warnings_given.update(giver_username=sender.username,
  13. giver_slug=sender.slug)
  14. sender.warnings_canceled.update(canceler_username=sender.username,
  15. canceler_slug=sender.slug)
  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'])