Andreas Barth writes:
I'd even say: these are different flags.
They already effectively are, as Abhilash explained earlier (more precisely, four values for one variable).
So basically I'd consider it rather (as seperate boolean ones):
I don't think separate booleans is a good idea, since they're basically mutually exclusive states, and in most scenarios you want the user to be able to reenable from any of the disabled states, so having both "member disabled" and "admin disabled" would have no special semantics.
- "disabled by member" (could be set by an admin as well of course)
Currently this is determined by whether the logged in user is the subscriber or not. It's an interesting idea to allow it to be set by an admin. Then we could have the semantics that the only transition allowed from this state would be to enabled, so that admins would know the user had intentionally disabled and know not to enable without permission.
- "disabled for administrative reasons" (only by admin but user should be able to see it)
I don't see why a user would need to see the difference. Unless you're suggesting that the user would not be able to reenable without asking the admin? What is the use case for this?
- "bounced" (user and admin could reset it but not set it)
Reenable but not set "bounced" is the current situation.
Or is this too complex for normal admins and users?
I don't really understand the use case for administrative disable, except at the request of the user. (The only thing I can think of offhand is the "surprise party" scenario, which seems like a stretch. In Mailman 2, you could do it with a topic that only the planners were subscribed to, and I would think that more likely to pass without notice by the guest of honor.)
In the current situation, where the state is determined by who is logged in, not by what the user wants, I think it would be confusing for some users to see "disabled by admin" if they requested it. I think that's the overwhelmingly common case for administrative disable. So I'm against showing the user the difference.
In your scheme, the question is whether admins would properly distinguish between user requests and the case where the admin disables for some reason. If they do, it's harmless, but it seems like a small burden on the admins.
Steve