Matrix power levels
Instead of a system like roles that you may be familiar with, Matrix has a system called power levels. A power level is a number that normally ranges between 0 to 1001. Within a room, each user has a power level and each permission also has a power level. For a user to be able to use a permission, to for example remove a user, they have to have the same (or a greater) power level than the power level of the permission.
Standard roles
By default, Matrix homeservers and clients use different power levels to define three roles:
Power Level | Role |
---|---|
0 | User |
50 | Moderator |
100 | Administrator |
With the defaults, each member of a role will be able to do the following:
- Users can send messages, media, reactions and redact their own messages in a room.
- Moderators can also change the room name, address, topic, remove users
from the room (temporarily or permanently), redact other's messages and send a
notification to everyone in the room at once using
@room
. - Administrators can also change the history visibility (whether people can see messages from before they joined or not), enable encryption in the room, remove entire servers from the room, and promote others to Moderator or Administrator.
Most members of a community are going to be regular users. Usually Moderators are appointed to handle ad-hoc moderation issues, for example removing or banning spam bots.
If you're taking over a community previously managed by someone with a high level of technical expertise in Matrix, it could be possible that the roles may not be the same. That's to say that the previous administrator could have deviated from the defaults2.
Permissions
Room permissions are broken down into three types: permissions, event permissions, and state permissions.
Standard permissions
Standard permissions include the ability to ban
another room member, redact
another room member's messages, invite
new user's to the room, and kick
members from the room. These are all fields that are top level to the content
of the m.room.power_levels
event, and all have an associated power level.
You can find the defaults here.
Event permissions
Event permissions are used to encode the power level required for a user to send
a Matrix event of a given type
. So for example, the ability for a user to send
most messages to a room would be m.room.message
. These can be specified under
the events
field at the top level of the m.room.power_levels
event content.
If the type
of an event cannot be found under the events
field, then the
power level of the events_default
field at the top level of the
m.room.power_levels
event content will be used instead.
State permissions
State permissions are used to encode the power level required for a user to send
a state event of a given type
. Usually you do not want to give users the
ability to send state events.
If the type
of a state event cannot be found under the events
field, then
the power level of the state_default
field at the top level of the
m.room.power_levels
event content will be used instead.
See also
Footnotes
-
Advanced users may use a different range. ↩
-
In that case, we recommend you to join the draupnir support room for help #draupnir:matrix.org. ↩