Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Story] Differentiate between room previews depending on join rules #2586

Open
5 of 6 tasks
mxandreas opened this issue Oct 17, 2024 · 3 comments
Open
5 of 6 tasks

[Story] Differentiate between room previews depending on join rules #2586

mxandreas opened this issue Oct 17, 2024 · 3 comments

Comments

@mxandreas
Copy link

mxandreas commented Oct 17, 2024

Description

Background

In order knocking to work, the join rules of the room need to be accessible to a user that is not yet member of the room. This was a challenge because even for rooms which were published in the room directory (and thus the information was available in principle), there was no proper API for getting the info & join rules by room alias or ID (the publicRooms API was not designed for that purpose). This led to getting MSC3266 into production (provides the necessary roomSummary API) and thus also revisiting the different scenarios the user may encounter.

For the context, the diagram below depicts all the different scenarios and room previews.
image

The overall goal is to minimize the chance that the user is presented with misleading information or actions when they get a link to a room or find it in the room directory.

Scope

In the scope of this story, there are 3 previews in which either the join rules are not known and/or the user may not be be able to join the room:

  1. RP-06: The room info & join rules are available but the join rule is invite. This means that the user can not join the room without an invite. The user are shown the room information, but are informed that they need an invite; and there is no button to join.
  2. RP-07: The room info & join rules available but the join rule is restricted. This means that the user is able to join only if they are member of a space (that is authorized for joining this room). However, the latter this is not straightforward to be checked in advance - thus user is shown the room information and a join button but they are warned that joining requires membership of a space, thus might fail.
  3. RP-08: The room info & join rules are not available. This scenario should be much less likely with MSC3266 implemented, but can still happen. The user is informed that information about this room is not available and joining it may require an invite or being part of a space.

In the case of RP-07 and RP-08, joining is expected to fail. In that case the user is expected to receive a meaningful non-technical message about that. The same non-technical message can be used whenever the joining the room is logically denied (e.g. it does not fail because of a technical/network errors but the user does not have the right to join the room).

Designs:

Acceptance criteria

  • The user is shown the correct preview and they understand what to expect.

Size estimate

None

Dependencies

  • None

Out of scope

  • Nothing

Open questions

Questions

Preview Give feedback
No tasks being tracked yet.

Subtasks

Android

Preview Give feedback
  1. T-Task

iOS

Preview Give feedback
  1. T-Task
    stefanceriu

Rust

Preview Give feedback
No tasks being tracked yet.

Other

Preview Give feedback
@mxandreas mxandreas changed the title [Story] Set users expectations better when previewing a private room [Story] Set user's expectations better when previewing a private room Oct 17, 2024
@mxandreas mxandreas changed the title [Story] Set user's expectations better when previewing a private room [Story] [WIP] Set user's expectations better when previewing a private room Oct 22, 2024
@mxandreas mxandreas changed the title [Story] [WIP] Set user's expectations better when previewing a private room [Story] [WIP] Differentiate between room previews depending on join rules Nov 28, 2024
@mxandreas
Copy link
Author

@gaelledel We need a few designs for this story - have look at the "Other" task list in the issue for details.

@gaelledel
Copy link

You can find all room previews in Figma for EX. Web will follow https://www.figma.com/design/7TqjqdMBaPpm3IavKsMYu6/Ask-to-join-(Knocking)?node-id=4766-43955&t=g2HrRvguv9eR0eDz-4

@morguldir
Copy link

Can i also suggest a room not being joinable due to the room version not being supported by the server? (some room versions also require client support but that's probably rarer)

Checking if the room version supports knocking might also be a good idea, but i don't know if that's something that will happen often

Optimistic knocking might also be worth adding? I think nheko and element web does that, although it does seem harder to get right

@mxandreas mxandreas changed the title [Story] [WIP] Differentiate between room previews depending on join rules [Story] Differentiate between room previews depending on join rules Jan 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants