There is already a two-tier ACL system in place: it allows us to choose default access mode (Public for "default read and write" and Gallery for "default read, no write"), and then assign access levels to users. For the purpose of this post, let's label them:
- Level 0: explicit read access
- Level 1: explicit write access
- Level 2: room owner
You might have already noticed what I mean: we can do "deny all, allow some" when it comes to writing (by setting room to Gallery and granting level 1 to approved users), but we can't do "allow all, deny some" — which in my opinion, is far less disruptive and far more useful way of keeping annoying users out of the room.
So, my proposal: add level -1, "explicit lack of write access". This cannot possibly be any more abused than Gallery/level 1 combination (cough Android rooms cough), and it will create a nice symmetry with an existing feature (and feature symmetry makes unicorns happy).