Skip to content

feat: Da się stosunkowo łatwo zrobić żeby anonimowe wiadomości były w pełni anonimowe #79

@soma115

Description

@soma115

Wystarczy nie zapisywać id użytkownika do bazy.

Wymaga to kilku zmian w kodzie, ponieważ sender jest obecnie używany w kilku miejscach:

Główne problemy:

  1. consumers.py linia 317: msg = Message(sender=user, ...) - trzeba zmienić na sender=user if not is_anonymous else None
  2. consumers.py linia 325-334: participated_only używa user.id do śledzenia roomów - trzeba obsłużyć None
  3. consumers.py linia 363: other_members = [m for m in room_members if m.id != sender.id] - trzeba obsłużyć None sender.id
  4. views.py linia 139: Message.objects.filter(sender=request.user) - to zostaje bez zmian (sender=request.user nigdy nie jest None)
  5. services.py linia 165: room.messages.filter(sender=self.user) - to też zostaje bez zmian

Kod już częściowo obsługuje None sendera:

  • utils.py już ma obsługę None (linie 211, 246)
  • services.py już ma obsługę None (linie 364, 448, 475)

Podsumowanie: Technicznie możliwe, ale wymaga modyfikacji w send_message_to_room w consumers.py, aby:

  • Ustawiać sender=None gdy is_anonymous=True
  • Pomijać participated_only logikę gdy sender jest None
  • Poprawnie obsługiwać other_members gdy sender.id jest None

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions