Compare commits

...

3 commits

Author SHA1 Message Date
Kévin Commaille 4ee7a84b9e
Add error code to third-party invite
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-02-04 09:34:35 +01:00
Kévin Commaille 6097642bf9
Apply suggestions
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-02-04 09:32:07 +01:00
Kévin Commaille e3133f0586
Change section position
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-02-04 09:31:52 +01:00
3 changed files with 12 additions and 9 deletions

View file

@ -4071,7 +4071,7 @@ that profile.
| [Sticker Messages](#sticker-messages) | Optional | Optional | Optional | Optional | Optional | | [Sticker Messages](#sticker-messages) | Optional | Optional | Optional | Optional | Optional |
| [Third-party Networks](#third-party-networks) | Optional | Optional | Optional | Optional | Optional | | [Third-party Networks](#third-party-networks) | Optional | Optional | Optional | Optional | Optional |
| [Threading](#threading) | Optional | Optional | Optional | Optional | Optional | | [Threading](#threading) | Optional | Optional | Optional | Optional | Optional |
| [Invite permission](#invite-permission) | Optional | Optional | Optional | Optional | Optional | | [Invite permission](#invite-permission) | Optional | Optional | Optional | Optional | Optional |
*Please see each module for more details on what clients need to *Please see each module for more details on what clients need to
implement.* implement.*
@ -4145,6 +4145,7 @@ systems.
{{% cs-module name="SSO client login/authentication" filename="sso_login" %}} {{% cs-module name="SSO client login/authentication" filename="sso_login" %}}
{{% cs-module name="Direct Messaging" filename="dm" %}} {{% cs-module name="Direct Messaging" filename="dm" %}}
{{% cs-module name="Ignoring Users" filename="ignore_users" %}} {{% cs-module name="Ignoring Users" filename="ignore_users" %}}
{{% cs-module name="Invite permission" filename="invite_permission" %}}
{{% cs-module name="Sticker Messages" filename="stickers" %}} {{% cs-module name="Sticker Messages" filename="stickers" %}}
{{% cs-module name="Reporting Content" filename="report_content" %}} {{% cs-module name="Reporting Content" filename="report_content" %}}
{{% cs-module name="Third-party Networks" filename="third_party_networks" %}} {{% cs-module name="Third-party Networks" filename="third_party_networks" %}}
@ -4160,4 +4161,3 @@ systems.
{{% cs-module name="Recently used emoji" filename="recent_emoji" %}} {{% cs-module name="Recently used emoji" filename="recent_emoji" %}}
{{% cs-module name="Threading" filename="threading" %}} {{% cs-module name="Threading" filename="threading" %}}
{{% cs-module name="Reference relations" filename="reference_relations" %}} {{% cs-module name="Reference relations" filename="reference_relations" %}}
{{% cs-module name="Invite permission" filename="invite_permission" %}}

View file

@ -6,13 +6,13 @@
Users may want to control who is allowed to invite them to new rooms. This module defines how Users may want to control who is allowed to invite them to new rooms. This module defines how
clients and servers can implement invite permission. clients and servers can implement invite permission.
#### Events #### Account data
{{% event event="m.invite_permission_config" %}} {{% event event="m.invite_permission_config" %}}
#### Client behaviour #### Client behaviour
To reject invites from all users automatically, clients MUST add an [`m.invite_permission_config`](#minvite_permission_config) To reject invites from all users automatically, clients MAY add an [`m.invite_permission_config`](#minvite_permission_config)
event in the user's [account data](#client-config) with the `default_action` property set to event in the user's [account data](#client-config) with the `default_action` property set to
`block`. To stop rejecting all invites, the same event without the `default_action` property MUST be `block`. To stop rejecting all invites, the same event without the `default_action` property MUST be
added to the account data. added to the account data.
@ -20,8 +20,8 @@ added to the account data.
When the `default_action` field is unset, other parts of the specification might still have effects When the `default_action` field is unset, other parts of the specification might still have effects
on invites seen by clients, like [ignoring users](#ignoring-users). on invites seen by clients, like [ignoring users](#ignoring-users).
When sending an invite to a user that blocks invites, clients SHOULD receive an error response with Attempting to send an invite to a user that blocks invites will result in an error response with the
the `M_INVITE_BLOCKED` error code. `M_INVITE_BLOCKED` error code.
#### Server behaviour #### Server behaviour
@ -38,9 +38,8 @@ is invited:
* [`PUT /_matrix/client/v3/rooms/{roomId}/state/m.room.member/{stateKey}`](#put_matrixclientv3roomsroomidstateeventtypestatekey), * [`PUT /_matrix/client/v3/rooms/{roomId}/state/m.room.member/{stateKey}`](#put_matrixclientv3roomsroomidstateeventtypestatekey),
when the `membership` is set to `invite`. when the `membership` is set to `invite`.
In addition, existing events already in the database MUST NOT be served over client synchronisation In addition, invite events for this user already in the database, or received over federation, MUST
endpoints such as [`GET /sync`](#get_matrixclientv3sync). Invite events received over federation NOT be served over client synchronisation endpoints such as [`GET /sync`](#get_matrixclientv3sync).
should likewise not be served over `GET /sync` requests.
Servers MAY return any suppressed invite events over `GET /sync` if invite blocking is later Servers MAY return any suppressed invite events over `GET /sync` if invite blocking is later
disabled. disabled.

View file

@ -97,6 +97,10 @@ paths:
- The invitee is already a member of the room. - The invitee is already a member of the room.
- The inviter is not currently in the room. - The inviter is not currently in the room.
- The inviter's power level is insufficient to invite users to the room. - The inviter's power level is insufficient to invite users to the room.
{{% added-in v="1.18"%}} The `M_INVITE_BLOCKED` error code is used to
indicate that the homeserver rejected the invite due to
[invite blocking](/client-server-api/#invite-permission).
content: content:
application/json: application/json:
schema: schema: