anonymize.py 933 B

123456789101112131415161718192021222324252627282930313233
  1. from django.urls import reverse
  2. ANONYMIZABLE_EVENTS = (
  3. "added_participant",
  4. "changed_owner",
  5. "owner_left",
  6. "removed_owner",
  7. "participant_left",
  8. "removed_participant",
  9. )
  10. def anonymize_event(user, event):
  11. if event.event_type not in ANONYMIZABLE_EVENTS:
  12. raise ValueError('event of type "%s" can\'t be ananymized' % event.event_type)
  13. event.event_context = {
  14. "user": {"id": None, "username": user.username, "url": reverse("misago:index")}
  15. }
  16. event.save(update_fields=["event_context"])
  17. def anonymize_post_last_likes(user, post):
  18. cleaned_likes = []
  19. for like in post.last_likes:
  20. if like["id"] == user.id:
  21. cleaned_likes.append({"id": None, "username": user.username})
  22. else:
  23. cleaned_likes.append(like)
  24. if cleaned_likes != post.last_likes:
  25. post.last_likes = cleaned_likes
  26. post.save(update_fields=["last_likes"])