gist/matrix/m.room.power_levels/README.md
Aminda Suomalainen 907cff616f
m.room.power_levels: restore m.room.history_visibility to 100
It was undocumented and I imagine it was a remnant from time when m.room.power_levels required 99
2022-05-03 11:18:46 +03:00

4.2 KiB
Raw Blame History

Template power levels event for quick copy-pasting

The main point I do this for is users users

{
    "users": {
      "@Ciblia:matrix.org": 100,
      "@aminda:matrix.org": 100,
      "@mikaela:pirateriot.net": 100,
      "@mikaela:liberta.casa": 100,
      "@mikaela.suomalainen:matrix.org": 100,
      "@mikaela:tchncs.de": 100,
      "@aminda:tedomum.net": 100,
      "@aminda:pikaviestin.fi": 100,
      "@mikaela.matterbridge:tedomum.net": 100,
      "@mikaela.matterbridge:converser.eu": 100,
      "@leon:the-apothecary.club": 100
    }
},

Completeish event

This has the rest event in two forms, but doesnt duplicate the above.

Reasonable version

This is not the Element/Synapse default as that would be pointless to list.

{
    "ban": 50,
    "events": {
        "im.vector.modular.widgets": 50,
        "m.room.avatar": 50,
        "m.room.canonical_alias": 13,
        "m.room.encryption": 100,
        "m.room.history_visibility": 100,
        "m.room.name": 50,
        "m.room.power_levels": 50,
        "m.room.retention": 100,
        "m.room.server_acl": 100,
        "m.room.tombstone": 100,
        "m.room.topic": 25,
        "m.space.child": 50
    },
    "events_default": 0,
    "historical": 100,
    "invite": 0,
    "kick": 25,
    "redact": 50,
    "state_default": 50,
    "users": {
        // READ THE BEGINNING OF THE FILE FOR THIS SECTION AND PROPER FORMAT! OR SEE YOUR CURRENT EVENT!
    },
    "users_default": 0
}
  • m.room.power_levels is set to 50 so moderators can raise others to moderators for example matrix-appservice-irc, which I would then give PL51 for ops syncing. On matrix side immune mods, could be PL52.
  • invite commonly defaults to 50, but I havent seen abuse through it
  • PL25, half-moderator is introduced (inspired from Ergo/IRC halfop), with powers to: change room topic and kick users (but not ban)
    • In Ergo it would also allow joining the room when its invite-only (but Matrix has separate m.room.join_rules so maybe it could be used e.g. in an association where a secretary/someone unwilling to be a full moderator wants to update room topic for next meeting time or update a version number? 🤷
  • PL13 gets access to change main alias and add/remove published room aliases alongside (at least on Synapse) un/publish the room in the room directory.
    • This can be used with e.g. altalias maubot plugin. I dont care about room directory or the main alias as it doesnt affect ctrl-k that much anyway, rooms are generally discovered through Spaces and I use Matrix URI scheme which takes room internal ID and servers to find it from instead of caring about the alias. Most importantly dont give permissions to entirely untrusted users.

Medium version

{
    "ban": 50,
    "events": {
        "im.vector.modular.widgets": 50,
        "m.room.avatar": 50,
        "m.room.canonical_alias": 13,
        "m.room.encryption": 100,
        "m.room.history_visibility": 100,
        "m.room.name": 50,
        "m.room.power_levels": 50,
        "m.room.retention": 100,
        "m.room.server_acl": 100,
        "m.room.tombstone": 100,
        "m.room.topic": 25,
        "m.space.child": 50
    },
    "events_default": 0,
    "historical": 100,
    "invite": 50,
    "kick": 25,
    "redact": 50,
    "state_default": 50,
    "users": {
        // READ THE BEGINNING OF THE FILE FOR THIS SECTION AND PROPER FORMAT! OR SEE YOUR CURRENT EVENT!
    },
    "users_default": 0
}
  • Otherwise “Reasonable version”, but
  • Only moderators can invite

Paranoid version

{
    "ban": 50,
    "events": {
        "im.vector.modular.widgets": 100,
        "m.reaction": 0,
        "m.room.avatar": 100,
        "m.room.canonical_alias": 100,
        "m.room.encryption": 100,
        "m.room.history_visibility": 100,
        "m.room.name": 100,
        "m.room.pinned_events": 50,
        "m.room.power_levels": 100,
        "m.room.redaction": 0,
        "m.room.retention": 100,
        "m.room.server_acl": 100,
        "m.room.tombstone": 100,
        "m.room.topic": 100,
        "m.space.child": 100
    },
    "events_default": 0,
    "historical": 100,
    "invite": 100,
    "kick": 50,
    "redact": 50,
    "state_default": 100,
    "users": {
        // READ THE BEGINNING OF THE FILE FOR THIS SECTION AND PROPER FORMAT! OR SEE YOUR CURRENT EVENT!
    },
    "users_default": 0
}