Guest Access Mode: Cover In-Conference Functionalities

Summary

Extends the in-conference moderator controls so the waiting room becomes a three-state setting (disabled / for_guests / for_everyone) and adds an explicit toggle for guest access. Disabling guest access kicks all current guests and blocks new ones.

Parent: opentalk/product/tickets#42 (closed)

Technical Design

WaitingRoom enum: disabled | for_guests | for_everyone.

Outgoing (moderation):

  • change_waiting_room_state { new_state } (replaces enable_waiting_room / disable_waiting_room)
  • enable_guest_access, disable_guest_access

Incoming (moderation):

  • waiting_room_changed { new_state } (replaces waiting_room_enabled / waiting_room_disabled)
  • guest_access_enabled, guest_access_disabled

Frontend

Icons (added under app/src/assets/icons/): Person, PersonOff, MeetingRoom, NoMeetingRoom.

New translation keys (EN + DE):

Key EN
more-menu-manage-waiting-room Manage waiting room
more-menu-waiting-room-disabled Inactive
more-menu-waiting-room-for-guests For guests only
more-menu-waiting-room-for-everyone For all participants
more-menu-enable-guest-access Enable guest access
more-menu-disable-guest-access Disable guest access
waiting-room-for-guests-message Waiting room is enabled for guests
guest-access-enabled-message Guest access enabled
guest-access-disabled-message Guest access disabled
disable-guest-access-dialog-title Disable guest access?
disable-guest-access-dialog-content All guests currently in the meeting will be removed immediately and won't be able to rejoin.
disable-guest-access-dialog-cancel Cancel
disable-guest-access-dialog-confirm Disable guest access

Implementation notes: "Manage waiting room" uses a generic SubmenuMenuItem (Popover opening to the right, hover with grace period + click). Disabling guest access goes through DisableGuestAccessDialog (danger-styled confirm); enabling is dispatched directly. The guest-access entry is visible only to the room owner with the guests_allowed feature.

Definition of Done

Manage waiting room

  • Entry shows MeetingRoom icon when active and NoMeetingRoom when Inactive.
  • Hovering opens the submenu to the right; cursor traversal between parent and submenu keeps it open; leaving closes it after a short delay. Click also opens it.
  • Current state is marked with a check; selecting another state closes the menu and emits change_waiting_room_state with the matching new_state.
  • Other moderators see the corresponding notification (waiting-room-disabled-message / waiting-room-for-guests-message / waiting-room-enabled-message).
  • for_guests: registered users join directly, guests / dial-in wait. for_everyone: only moderators bypass.

Out of Scope

  • Update guest access mode
Edited by Maximilian Fuß