What is meta? ×
Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 128 Stack Exchange communities.

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).

share|improve this question
Fornicate the unicorns, but it will be really helpful! +1 from me. –  sbi Jun 12 '12 at 22:29
"Status declined" oh how predictable on Meta. As always… –  daknøk Jun 13 '12 at 11:29
add comment

1 Answer 1

up vote 2 down vote accepted

First of all, this is technically impossible without fully redesigning how the ACL logic works. I know you understand how it works, but this is a good opportunity to write this down (leaving out the special case of moderators and of users who are suspended or don't have enough rep to chat):

  1. There are four permission levels, ordered from lowest to highest: "none", "read", "write", "owner".
  2. Every room has default permission given to all users. These default access levels are "write" (a public room), "read" (a gallery), and "none" (a private moderator room).
  3. A user has per-room permissions: "none" (only has the rights set for the room), "read" (hardly used; allows to see, but not participate, in a moderator room), "write" (allows to talk even if the room's default is "read" or "none"), and "owner".
  4. If the user wants to see (i.e. "read") a room, we first check if the room's default permission is "read" or more, in which case we're done. Only if this is not the case, we have to check if the user has at least "read" permission in the room.
  5. If the user wants to speak (i.e. "write") in a room, we only have to check for explicit "write" user/room permissions if the room's default permission is less than that.
  6. If the user wants to administer a room, we have to check that the user has "owner" permissions in this room (we could in theory allow the creation of rooms with a default permission of "owner", but that wouldn't be a good idea).

In short:

if requested_permission <= default_room_permission:
    return access_granted
elif requested_permission <= user_permission_in_room:
    return access_granted
    return access_denied

Giving a certain room permission by default, but enabling to revoke it on a per-user basis, obviously doesn't fit in this logic.

Per se, that's of course not grounds to deny your request; the logic could be redesigned. However, this logic – and its consequences regarding your request – have been deliberately chosen this way.

  1. Philosophically, our chat system is designed to be as public as possible. With very few restrictions, any user is allowed to use the chat. The gallery room mode is intended for "this is just between the two of us" situations (while still being publicly readable, since with the exception of actual moderator rooms, we don't want any hidden back rooms unreachable by community moderation). Assuming a user in good standing, they should be allowed to chat freely.

  2. On the topic of "in good standing": If a user doesn't know how to behave in chat, they should not be allowed to chat at all. If a user is creating trouble, allowing room owners to just ban them from one room could actually prove to be counterproductive, since they'll just move on to cause trouble in the next room, while they may actually need some time of chat suspension to have them re-think their conduct.

  3. Ignoring users isn't perfect, but gives everyone the opportunity to filter out certain users that they don't want to be bothered by anymore. This choice is then made by every one on their own.

  4. Socially, there's a huge difference between denying by default while allowing individual cases on the one hand, and allowing by default while denying in individual cases on the other hand. The first is a "members only" club, the second is a "No Homers" club.

    Theoretically, you could of course turn the first into the second by accepting every application, except when it comes from Homer. This is essentially what the Android room does. And while we currently tolerate this (in particular since it seems to happen in a fair way, and not based on whether you're Homer or not), it is a giant PITA to administer that room, and that is intentional. Unsurprisingly, the Android room owners have previously asked for the same thing you're requesting.

    Giving particular users the finger is not something we want to enable.

share|improve this answer
My biggest issue is that room owner status is basically useless when disruptive user starts annoying everybody. We always have to bother someone else — either half of the chat, or a mod. It's somewhat akin to calling IRCop every time a troll appears on the channel (and public flagging I really dislike, mostly because it involves people who can't really care [but that's whole another discussion], and is not an immediate action), when there are people in the room, at the moment, who could react immediately. My proposal is for giving finger to users which would be given banfinger anyway. –  Cat Plus Plus Jun 13 '12 at 11:27
Either way, thanks for the response. –  Cat Plus Plus Jun 13 '12 at 11:27
Gallery rooms already give Room owners the ability to give someone the finger. I see the entry manual intervention as a thing that scares off new users, not an indication of a members only club. That being said, a real-life bar can also refuse you service, but you half to walk in first. –  rubenvb Jun 22 '12 at 17:32
damnit @balpha, way to make me have to rethink certain scenarios in SC2 ... ok, you win. –  jcolebrand Jan 24 '13 at 16:40
I think the point here is that we are absolutely want a "No Telkitties" club. More to the point- you already ban users on the main site. Why can't we do an identical thing in chat? The main site does not have any problems with "No Homers" clubs. –  DeadMG Apr 29 '13 at 14:16
@DeadMG You can also ban users from chatting. Just not from a single room. Just like you can't ban users only from answering C++ questions. –  balpha Apr 29 '13 at 14:50
@balpha: That is completely different. A room is a community; a tag is a technical label. –  DeadMG Apr 30 '13 at 8:56
I realize the technical difficulties of this request, however I really think it needs to be re-visited. Currently a single room being thrown into Gallery mode because of one disruptive user is fine and dandy, however take the Android room as an example: the maintenance on the 'Access' tab is a nightmare/joke when it could be so much better handled if we could revoke write access for single users and not the other way around. Just think about it ;) please ... –  rlemon May 16 '13 at 19:30
add comment

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .