Skip to content

Add support for Gitter users to start DM conversations with Matrix users

Eric Eastwood requested to merge matrix-dm-from-gitter-side into develop

Add support for Gitter users to start DM conversations with Matrix users

Fix #2671 (closed)

Matrix DM support was first added in !2134 (merged)

  • Adds Chat privately button to Matrix virtualUser popover. This will redirect you to the Matrix DM room
  • Creates Matrix DM room on demand when you visit the DM URL, ex. /matrix/5f762f95986e461e663059d1/@root:my.matrix.host
    • There are checks in place so you can't create a DM for someone else by visiting their URL
    • You also can't start a DM conversation with a Matrix user from the gitter.im homeserver because Gitter users should just chat to each other on Gitter.
  • If the Matrix user leaves the DM room, when the Gitter user sends another message, the Matrix user will be invited back to the DM room (inviteMatrixUserToDmRoomIfNeeded)
  • If the Gitter user leaves the DM room, when the Matrix user sends another message, the Gitter user will be joined back to the DM room (inviteGitterUserToDmRoomIfNeeded)

Dev notes

Todo

  • Upload avatar
    • On Gitter, we only have group avatars so they can't be individualized
    • On Element, it already picks up the avatar
  • Make sure that if Matrix user leaves, starts DM with same user, it all works in the same room
    • Add test
  • When Gitter user leaves, they can come back to the same room and join again
    • Add test
  • When Gitter user has left the room, is invited back when the Matrix user sends another message
    • Add test
  • When Matrix user has left the Matrix room, is invited back to the room when the Gitter user sends another message
    • Add test
  • Ensure that you can't initiate the DM room conversation by visiting someone else's URL
    • Add test
  • 404 when you visit a URL for a Matrix user that does not exist, http://localhost:5000/matrix/5f762f95986e461e663059d1/@this-person-does-not-exist:my.matrix.host
    • Add test
  • Block starting a DM from Gitter for any user from the gitter.im homeserver. I can imagine some weird message loops if we allowed this
    • Add test
Edited by Eric Eastwood

Merge request reports