Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

You list out a lot of propositions in your comment about what Matrix's role model can or cannot do compared to Discord's, but only some of them are actually true.

To attempt to distill the real deficiencies:

- Non-monotonic roles. You can't have Deleters (who can only delete things, but not ban) and Banners (who can only ban, but not delete things) in a single channel (room).

- Auto-joining rooms upon joining a space.

- Room roles/permissions inheriting from space roles/permissions.

- A permission to control which members of a space can see a channel.

Luckily all of those except the first one seem easily built upon the current protocol by relatively tame extensions.

The last two in particular stem from the fact that spaces are too "weak" to support this at the moment: unlike in Discord, a room can be in more than one space at once. This means you can use spaces to define your own private categorizations, which is something Discord doesn't support at all. However, to be able to support those last two use cases, we'd need to define a mechanism by which a room could designate one special space as the owning space for that room.

On the other hand, Matrix does have:

- Categories. These are simply modeled with spaces within spaces. Spaces can be infinitely nested.

- The ability to make roles behave differently on a per-channel and per-space basis.

- A role which can only delete things but not ban people, or a role which can ban people but not delete things. You just can't have both at the same time.



> However, to be able to support those last two use cases, we'd need to define a mechanism by which a room could designate one special space as the owning space for that room.

This actually exists, so a room knows its canonical parent space, but the feature is not used: https://spec.matrix.org/unstable/client-server-api/#mspacepa...


This was a much better (and more accurate) description of my complaints about Matrix's permissions system. Thanks!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: