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

Document case of knock->join membership transition #1709

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

turt2live
Copy link
Member

@turt2live turt2live commented Jan 15, 2024

This adds a line from the knock block to the join block, as the transition is legal in knock_restricted rooms when using restricted joins.

See auth rule 4.3.5.

Preview: https://pr1709--matrix-spec-previews.netlify.app

@Xiretza
Copy link

Xiretza commented Jan 16, 2024

The table in https://github.com/matrix-org/matrix-spec/blob/main/data/event-schemas/schema/m.room.member.yaml will need updating as well.

Tangentially related: what happens to knocking users when a room changes its m.rooom.join_rules from knock to public? Do they have to /leave and then /join again or can they go straight to /join (which would be the same transition as added by this PR)?

@richvdh
Copy link
Member

richvdh commented Jan 24, 2024

Tangentially related: what happens to knocking users when a room changes its m.rooom.join_rules from knock to public? Do they have to /leave and then /join again or can they go straight to /join (which would be the same transition as added by this PR)?

This is a great point. According to the auth rules, you can go straight to join. And that needs adding to the diagram.

</mxGeometry>
</mxCell>
<mxCell id="q5SATBPCpZFuv_SF1K4v-1" value="/join if join_rules&lt;br&gt;knock_restricted&lt;br&gt;and using a &lt;br&gt;restricted join" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;jumpStyle=arc;" edge="1" parent="1" source="P05zALBlSnZwpnZ5Cu9t-24" target="P05zALBlSnZwpnZ5Cu9t-2">
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/join if join_rules knock_restricted and using a restricted join

I assume by "restricted join", we mean "a join satisfying one of the conditions for restricted rooms"?

The transition is also permitted if the join_rules are restricted (and the restriction conditions are satisfied), or as @Xiretza points out, if the join rules are public.

Indeed, I think the rules for the knock -> join transition are identical to those for the leave -> join and external -> join transitions (which makes sense intuitively, and makes sense because neither leave nor knock are specifically mentioned in auth rule 4.3, which covers the transition to join generally). So, can we just make it use the same label "/join if allowed by join_rules" ?

@Kladki
Copy link
Contributor

Kladki commented Apr 7, 2024

The m.room.member table also needs to be updated, since it currently states that "From knock to join Must never happen."

@richvdh
Copy link
Member

richvdh commented Oct 29, 2024

@turt2live are you still working on this?

@turt2live
Copy link
Member Author

I forgot this existed, sorry. I'd suggest someone else takes it over (if needed).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants