Chat - OpenSlides/OpenSlides GitHub Wiki

State of the art:

  • Chat groups and chat messages are managed by the backend. User groups can gain permissions to read or write chat-messages within a chat group (calling read/write groups).
  • There is the permission chat.can_manage to create/update/delete/sort/clear chat groups.
  • The chat system is enabled on a per-meeting basis with meeting/enable_chat and globally on an organization by organization/enable_chat. This works for chat groups.
  • To receive chat-messages from a chat group, a user needs either chat.can_manage or they must be in at least one read group of the chat group.
  • To send a chat-message to a chat group, the user needs either chat.can_manage or they must be in at least one write group of the chat group.
  • Sending and receiving chat-messages to/from chat groups is only possible, if organization/enable_chat and meeting/enable_chat (for the related meeting) is true.
  • Other things the backend needs to manage:
    • Deletion of a single chat-message: This is allowed for a user with chat.can_manage or if the request user is the message user
    • Clearing a group chat. This is allowed for a user with chat.can_manage.
    • Sorting of chat groups (weight field, action chat_group.sort)

Wishes for OS4:

  • User2User chats
  • Serverside persistence of read-status.
  • Clearing a user chat. This is allowed for both participants of the chat.
  • A read-confirmation approach:
    • The client needs to know the number of unread messages per chat group/per user
    • The client needs to highlight unread messages of some kind
    • When a client reads messages, this needs to be propagated to other clients, so that the messages there are marked as read (and the number displaying the amount of unread messages can be updated)
⚠️ **GitHub.com Fallback** ⚠️