Commit Graph

10 Commits

Author SHA1 Message Date
Torsten Schulz (local)
016de9e5cf Implement access control enhancements in ChatRoom and related classes
- Introduced a new overloaded method `accessAllowed` in `ChatRoom` to include user age verification for adult rooms.
- Added `falukant_user_id` method in `ChatUser` to retrieve user ID for age checks.
- Implemented `getUserAge` method in `ChatUser` to fetch and decrypt user birthdate from the database for age validation.
- Updated `roomAllowed` methods in `Server` and `SSLServer` to utilize the new access control logic, ensuring proper user context is considered.
- Enhanced debugging output for better traceability during access checks.
2025-12-18 14:10:50 +01:00
Torsten Schulz (local)
0c18a97ed7 Refactor ChatRoom and ChatUser classes for improved message handling and user management
- Introduced new methods in ChatRoom for processing message queues and broadcasting messages to users.
- Refactored message suppression logic into a dedicated method to enhance readability and maintainability.
- Updated ChatUser to streamline user initialization and database interactions, including legacy support.
- Enhanced WebSocket message handling in SSLServer with clearer routing and error handling.
- Added helper functions for WebSocket header management to improve code organization and clarity.
2025-11-21 10:49:44 +01:00
Torsten Schulz (local)
59c6e46c08 Füge Unterstützung für die Verwaltung von WebSocket-Verbindungen im ChatRoom und SSLServer hinzu
- Implementiere die Methode `findUserByToken` in `ChatRoom`, um Benutzer anhand ihres Tokens zu finden.
- Ergänze die Logik zur Entfernung von WebSocket-Verbindungen im `SSLServer`, wenn ein Benutzer die Verbindung trennt.
- Füge die Methode `isWebSocket` in `ChatUser` hinzu, um zu überprüfen, ob ein Benutzer über eine WebSocket-Verbindung verfügt.
- Aktualisiere die Verarbeitung von Verbindungsabbrüchen, um sicherzustellen, dass sowohl die ChatRoom- als auch die SSLServer-Verbindungen korrekt verwaltet werden.
- Ergänze Debug-Ausgaben zur Nachverfolgbarkeit der WebSocket-Verbindungen und deren Status.
2025-09-05 16:20:56 +02:00
Torsten Schulz (local)
fe81e19bef Füge Methode zum Senden von Nachrichten an alle Benutzer im ChatRoom hinzu
- Implementiere die Methode `sendToAllUsers`, um Nachrichten an alle aktiven Benutzer im Raum zu senden.
- Aktualisiere die WebSocket-Nachrichtenverarbeitung im SSLServer, um die aktualisierte Benutzerliste an alle Benutzer im Raum zu senden, wenn sich die Benutzerfarbe ändert.
- Ergänze Debug-Ausgaben zur Nachverfolgbarkeit der gesendeten Benutzerliste.
2025-09-05 15:29:23 +02:00
Torsten Schulz (local)
97456d99e7 Füge Unterstützung für Token in der Benutzeranmeldung im ChatRoom hinzu
- Implementiere eine neue Methode `addUser`, die einen Token als Parameter akzeptiert, um die Benutzeranmeldung über WebSockets zu verbessern.
- Aktualisiere den Konstruktor von `ChatUser`, um den Token zu verarbeiten und sicherzustellen, dass Benutzer korrekt initialisiert werden.
- Ergänze Debug-Ausgaben, um den Ablauf beim Hinzufügen von Benutzern und beim Senden von Nachrichten zu protokollieren, um die Nachverfolgbarkeit zu erhöhen.
2025-09-05 14:37:28 +02:00
Torsten Schulz (local)
228e9b7ea2 Füge Unterstützung für WebSocket-Nutzer in ChatUser und ChatRoom hinzu
- Implementiere einen neuen Konstruktor in der Klasse `ChatUser`, der einen WebSocket-Pointer akzeptiert, um die Benutzerkommunikation über WebSockets zu ermöglichen.
- Aktualisiere die Methode `addUser` in `ChatRoom`, um den neuen Konstruktor zu verwenden und sicherzustellen, dass Benutzer korrekt hinzugefügt werden.
- Ergänze die Logik in der `send`-Methode von `ChatUser`, um Nachrichten über WebSockets zu senden, wenn ein gültiger WebSocket-Pointer vorhanden ist.
- Füge Debug-Ausgaben hinzu, um den Ablauf beim Hinzufügen von Benutzern und beim Senden von Nachrichten über WebSockets zu protokollieren.
2025-09-05 13:26:52 +02:00
Torsten Schulz (local)
dce5a56316 Ergänze Unterstützung für Datenbankintegration in ChatRoom und ChatUser
- Implementiere einen neuen Konstruktor in der Klasse `ChatUser`, der eine Datenbankverbindung akzeptiert, um Benutzerinformationen zu laden.
- Füge eine Methode `setDatabase` in der Klasse `ChatRoom` hinzu, um die Datenbankverbindung zu setzen.
- Aktualisiere die Logik in `ChatRoom`, um den neuen Konstruktor zu verwenden, wenn eine Datenbankverbindung vorhanden ist, andernfalls wird der alte Konstruktor verwendet.
- Stelle sicher, dass die Datenbankverbindung in den Server- und SSLServer-Klassen beim Erstellen neuer Räume gesetzt wird.
2025-09-05 09:56:14 +02:00
Torsten Schulz (local)
d92c40748e Implementiere Benutzerverbindungskontrolle und verbessere Nachrichtenverwaltung
- Füge die Methode `removeUserDisconnected` in der ChatRoom-Klasse hinzu, um Benutzer bei Verbindungsabbrüchen zu entfernen und entsprechende Nachrichten zu senden.
- Aktualisiere die ChatUser-Klasse, um einen Token-Getter bereitzustellen und die Verbindungsprüfung zu optimieren.
- Ändere die Server-Klasse, um die Benutzerverwaltung bei Raumwechseln zu verbessern und Debug-Informationen hinzuzufügen.
- Optimiere die Socket-Optionen für eine schnellere Fehlererkennung und verbessere die Handhabung von Anfragen.
2025-09-01 15:30:19 +02:00
Torsten Schulz (local)
7338f1a740 Füge Unterstützung für Würfelspiele hinzu und verbessere Debugging-Optionen
- Implementiere neue Funktionen in der ChatRoom-Klasse für das Starten, Rollen und Beenden von Würfelspielen.
- Füge eine Option zur Aktivierung von Debug-Logging in CMake hinzu, um die Entwicklung zu erleichtern.
- Aktualisiere die ChatUser-Klasse, um die Interaktion mit dem Würfelspiel zu ermöglichen.
- Verbessere die Socket-Verwaltung im Server, um WebSocket-Verbindungen zu unterstützen und die Handhabung von Anfragen zu optimieren.
- Aktualisiere die Konfiguration, um die neue Funktionalität zu unterstützen und die Benutzererfahrung zu verbessern.
2025-08-16 22:43:08 +02:00
Torsten Schulz (local)
864d86aa09 Refactor chat system: Introduce ChatRoom and ChatUser classes
- Created ChatRoom class to manage chat room functionalities, including user management, message handling, and game mechanics.
- Developed ChatUser class to represent individual users, handling user-specific actions and interactions within chat rooms.
- Implemented a Config class for loading configuration settings from a JSON file.
- Established a Server class to manage connections, handle requests, and facilitate communication between users and chat rooms.
- Introduced a Database class for database interactions, utilizing PostgreSQL for user and room data management.
- Added utility functions in the Base class for JSON handling and socket communication.
- Created Object classes for Room and User to encapsulate their properties and behaviors.
- Updated main function to initialize server and load chat rooms from configuration.
2025-08-11 16:07:15 +02:00