mirror of
https://github.com/suitenumerique/meet.git
synced 2026-10-13 08:21:42 +00:00
b4b2cb8da6
Before this commit: 1. Rooms could be hard-deleted from the internal API (unused by the frontend). 2. The external API had no way to delete a room. 3. The admin could hard-delete rooms. What this commit does: 1. Add a `deleted_at` field to Room. `Room.objects` hides soft-deleted rooms; `all_objects` stays the default manager so deleted rooms keep reserving their slug and PIN code. 2. Soft delete rooms from the internal API (replacing hard delete) and the external API (new DELETE, owner only, `rooms:delete` scope). The LiveKit room is closed and its participants disconnected; if closing fails, the soft delete is rolled back and an error is returned. 3. Answer 410 Gone on detail operations on a deleted room (after permission checks). Its can still be read but not modified. 4. Close LiveKit rooms recreated after deletion by participants still holding a valid token (room_started webhook). 5. Frontend: participants in the call land on the feedback page without the rejoin button, lobby participants see a "meeting deleted" screen, and opening the link shows an error instead of recreating the room. Untouched by this commit: - The admin still hard-deletes rooms, without closing the LiveKit room, and lists soft-deleted rooms alongside active ones. - Purging soft-deleted rooms (hard deletion) is not handled. - Scheduled deletion is not handled.
16 lines
396 B
Python
16 lines
396 B
Python
"""Catalog of all analytics events emitted by the backend."""
|
|
|
|
from enum import StrEnum
|
|
|
|
|
|
class AnalyticsEvent(StrEnum):
|
|
"""All trackable events. Values are the wire names sent to the provider."""
|
|
|
|
# Rooms
|
|
ROOM_CREATED = "room_created"
|
|
ROOM_UPDATED = "room_updated"
|
|
ROOM_DELETED = "room_deleted"
|
|
|
|
# Roomkit (meeting-room SIP devices)
|
|
ROOMKIT_JOINED = "roomkit_joined"
|