|
|
@ -2,7 +2,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
Matrix is an open network and anyone can participate in it. As a result, a
|
|
|
|
Matrix is an open network and anyone can participate in it. As a result, a
|
|
|
|
very wide range of content exists, and it is important to empower users to be
|
|
|
|
very wide range of content exists, and it is important to empower users to be
|
|
|
|
able to select which content they wish to see, and wish they to block. By
|
|
|
|
able to select which content they wish to see, and which they wish to block. By
|
|
|
|
extension, room moderators and server admins should also be able to select
|
|
|
|
extension, room moderators and server admins should also be able to select
|
|
|
|
which content they do not wish to host in their rooms and servers.
|
|
|
|
which content they do not wish to host in their rooms and servers.
|
|
|
|
|
|
|
|
|
|
|
@ -22,9 +22,9 @@ use a ban list which prevents birthday cake from coming across their field of vi
|
|
|
|
|
|
|
|
|
|
|
|
## Proposal
|
|
|
|
## Proposal
|
|
|
|
|
|
|
|
|
|
|
|
Ban lists are represented in rooms, allowing for structures and concepts to be reused without
|
|
|
|
Ban lists are stored as room state events, allowing for structures and concepts to be reused without
|
|
|
|
defining a new room version. This proposal does not make any restrictions on how the rooms
|
|
|
|
defining a new room version. This proposal does not make any restrictions on how the rooms
|
|
|
|
are configured, just that the state events described here are represented in the room. For
|
|
|
|
are configured, just that the state events described here are represented in a room. For
|
|
|
|
example, a room which is invite only is just as valid as a room that is not: the important
|
|
|
|
example, a room which is invite only is just as valid as a room that is not: the important
|
|
|
|
details are specific state events and not the accessibility, retention, or other aspects
|
|
|
|
details are specific state events and not the accessibility, retention, or other aspects
|
|
|
|
of the room.
|
|
|
|
of the room.
|
|
|
@ -33,7 +33,7 @@ Ban lists are stored as `m.room.rule.<kind>` state events, with state keys being
|
|
|
|
assigned by the sender. The `<kind>` is currently one of `user`, `room`, and `server`. Three
|
|
|
|
assigned by the sender. The `<kind>` is currently one of `user`, `room`, and `server`. Three
|
|
|
|
fields are defined in `content`:
|
|
|
|
fields are defined in `content`:
|
|
|
|
|
|
|
|
|
|
|
|
* `entity` (`string`) - **Required.** The entity/entities affected. Simple globs are supported
|
|
|
|
* `entity` (`string`) - **Required.** The entity/entities the recommendation applies to. Simple globs are supported
|
|
|
|
for defining entities (`*` and `?` as wildcards, just like `m.room.server_acl`).
|
|
|
|
for defining entities (`*` and `?` as wildcards, just like `m.room.server_acl`).
|
|
|
|
* `recommendation` (`enum`) - **Required.** The action subscribed entities should take against
|
|
|
|
* `recommendation` (`enum`) - **Required.** The action subscribed entities should take against
|
|
|
|
the described entity. Currently only `m.ban` is defined (see below).
|
|
|
|
the described entity. Currently only `m.ban` is defined (see below).
|
|
|
@ -103,7 +103,8 @@ a simple implementation is as follows:
|
|
|
|
* Applied to a room: The user should be banned from the room (either on sight or immediately).
|
|
|
|
* Applied to a room: The user should be banned from the room (either on sight or immediately).
|
|
|
|
* Applied to a server: The user should not be allowed to send invites to users on the server.
|
|
|
|
* Applied to a server: The user should not be allowed to send invites to users on the server.
|
|
|
|
* Is a room...
|
|
|
|
* Is a room...
|
|
|
|
* Applied to a user: The user should leave the room and not join it (MSC2270-style ignore).
|
|
|
|
* Applied to a user: The user should leave the room and not join it
|
|
|
|
|
|
|
|
([MSC2270](https://github.com/matrix-org/matrix-doc/pull/2270)-style ignore).
|
|
|
|
* Applied to a room: No-op because a room cannot ban itself.
|
|
|
|
* Applied to a room: No-op because a room cannot ban itself.
|
|
|
|
* Applied to a server: The server should prevent users from joining the room and from receiving
|
|
|
|
* Applied to a server: The server should prevent users from joining the room and from receiving
|
|
|
|
invites to it (similar to the `shutdown_room` API in Synapse).
|
|
|
|
invites to it (similar to the `shutdown_room` API in Synapse).
|
|
|
|