anonymize.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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 "{}" can\'t be ananymized'.format(event.event_type))
  13. event.event_context = {
  14. 'user': {
  15. 'id': None,
  16. 'username': user.username,
  17. 'url': reverse('misago:index'),
  18. },
  19. }
  20. event.save(update_fields=['event_context'])
  21. def anonymize_post_last_likes(user, post):
  22. cleaned_likes = []
  23. for like in post.last_likes:
  24. if like['id'] == user.id:
  25. cleaned_likes.append({
  26. 'id': None,
  27. 'username': user.username
  28. })
  29. else:
  30. cleaned_likes.append(like)
  31. if cleaned_likes != post.last_likes:
  32. post.last_likes = cleaned_likes
  33. post.save(update_fields=['last_likes'])