I'm working on an administrator interface--nothing new, it's been done thousands of times before--that will be used by both the IT administrators of an organization as well as some more advanced users of the system.

One capability of the interface is to change the roles (each role has preset permissions that aren't currently customizable) for each user. This can be done individually or to many selected users at once. The issue I'm running up against is that the IT admins that I've tested with made critical mistakes when the interface used to change roles didn't show what roles the user(s) were currently a part of.

Showing current state seems simple enough for one user. However, I've not been able to find a good example of how to show, when many users were selected, that only some are part of a role.

My first design used a tri-state checkbox, but the partial-selected state (I used a dash) was confusing to a lot of people:

role selection with tri-state checkboxes

Other designs I've messed with either didn't show the current state or didn't work for multiple selected users at once.

Any suggestions?

  • And why not simply warn the user that "Some of the selected users have Administrator privileges"? If it's critical and leads to a mistakes it's always better to explain that more carefully I think. May 23, 2014 at 7:21
  • @alexeypegov excellent point. I will give that some more thinking. So far, I haven't found a good place to give that type of notification, but I'll mess with some different layouts.
    – conan
    May 23, 2014 at 20:54

2 Answers 2


I assume that the reason Admin user would need to know current roles is because this UI will also Remove Roles from the User.

One option is to make two different operations "Assign Roles" and "Remove Roles". Because this is more natural operation than "Edit" roles . While might seem like two operations are now required, I think clarity and ability to separate actions will keep UI as efficient, and less error prone.

A different option and often best UI would be direct actions on fully exposed list


download bmml source – Wireframes created with Balsamiq Mockups

If really need to persist with "Edit Roles on a batch, then make sure that you communicate the effect of a change to the intermediate state e.g. "3 users will lose admin rights"

  • I have played with separating the add and remove roles idea, but that didn't seem to solve the problem of showing users' current roles. The option you mocked up, though, is probably the best choice I've seen so far, as long as the implementation emphasizes select all/none as the primary action in order to keep it from feeling laborious.
    – conan
    May 23, 2014 at 12:28
  • However, the problem with this type of interface is that it doesn't scale. For example, I was hoping to use something similar to edit the groups users are in.
    – conan
    May 23, 2014 at 12:30
  • Agreed, UI won't scale enormously in roles or user counts. If you only allow user to be in one Group then can add a drop down. Do note UI can scale surprising well if can sort or filter by Role. Consider a collection of 3000 users, 5 of which should be and remain Admin users. 2995 must not be Admin. A tri-state UI fails for practicable reasons. In this case the "Assign Roles" / "Remove Roles" UX makes sense - and the ability to at least on one occasion select the 2995 separate from other 5.
    – Jason A.
    May 23, 2014 at 18:05

i don't think you need a tri-state checkbox for this. they're 2 separate things

  • the list of users on which the editing is taking place; maybe you can have something like: "2 administrators and 5 creators selected for edit" in the overlay above the role checkboxes
  • the actual roles you will apply to the list of users.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.