Server ACLs (m.room.server_acl) - which homeservers a room refuses. Not read, so a room that has banned a server gives no sign of it.
Moderation policy lists (m.policy.rule.*) - the subscribable ban lists rooms share.
Policy Servers - the newer spec module for the same job.
None of it is visible and none of it can be edited. This is administrator surface rather than everyday use, which is why it is low priority - but a moderator using moho cannot see why a message from another server never arrived.
Three related spec modules, none implemented:
- **Server ACLs** (`m.room.server_acl`) - which homeservers a room refuses. Not read, so a room that has banned a server gives no sign of it.
- **Moderation policy lists** (`m.policy.rule.*`) - the subscribable ban lists rooms share.
- **Policy Servers** - the newer spec module for the same job.
None of it is visible and none of it can be edited. This is administrator surface rather than everyday use, which is why it is low priority - but a moderator using moho cannot see why a message from another server never arrived.
All three modules are read on demand rather than cached with the room's state: they are rare, and an ACL's whole job is to explain an absence — a question somebody asks, not something they watch.
Both spellings of a policy rule are read. Most rooms that actually carry rules predate the stable event type and are full of the org.matrix.mjolnir.* prefix, so a client reading only m.policy.rule.* shows an empty list in exactly the rooms that have the most.
Writing is deliberately narrow: a server can be denied and un-denied, and nothing will write an empty allow list. An ACL with no allowed servers cuts a room off from its own members and cannot be undone from inside it afterwards — the spec's own warning, and the one edit worth making structurally impossible rather than merely discouraged. A room with no ACL gains an explicit * when its first deny is written, so "everyone except this server" does not become "nobody at all".
Finished, as visibility plus one narrow edit.
All three modules are read on demand rather than cached with the room's state: they are rare, and an ACL's whole job is to explain an absence — a question somebody asks, not something they watch.
**Both spellings of a policy rule are read.** Most rooms that actually carry rules predate the stable event type and are full of the `org.matrix.mjolnir.*` prefix, so a client reading only `m.policy.rule.*` shows an empty list in exactly the rooms that have the most.
Writing is deliberately narrow: a server can be denied and un-denied, and nothing will write an empty `allow` list. An ACL with no allowed servers cuts a room off from its own members and cannot be undone from inside it afterwards — the spec's own warning, and the one edit worth making structurally impossible rather than merely discouraged. A room with no ACL gains an explicit `*` when its first deny is written, so "everyone except this server" does not become "nobody at all".
[2181f2d](https://git.salastil.com/Salastil/moho/commit/2181f2d)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Three related spec modules, none implemented:
m.room.server_acl) - which homeservers a room refuses. Not read, so a room that has banned a server gives no sign of it.m.policy.rule.*) - the subscribable ban lists rooms share.None of it is visible and none of it can be edited. This is administrator surface rather than everyday use, which is why it is low priority - but a moderator using moho cannot see why a message from another server never arrived.
Finished, as visibility plus one narrow edit.
All three modules are read on demand rather than cached with the room's state: they are rare, and an ACL's whole job is to explain an absence — a question somebody asks, not something they watch.
Both spellings of a policy rule are read. Most rooms that actually carry rules predate the stable event type and are full of the
org.matrix.mjolnir.*prefix, so a client reading onlym.policy.rule.*shows an empty list in exactly the rooms that have the most.Writing is deliberately narrow: a server can be denied and un-denied, and nothing will write an empty
allowlist. An ACL with no allowed servers cuts a room off from its own members and cannot be undone from inside it afterwards — the spec's own warning, and the one edit worth making structurally impossible rather than merely discouraged. A room with no ACL gains an explicit*when its first deny is written, so "everyone except this server" does not become "nobody at all".2181f2d