I'm working on a ERG application for a high school debate program. I need to be able to create accounts for each user, but there are issues with the number of administrators involved.

Firstly, a conference administrator needs to be able to create a series of accounts based on a set of country assignments. Then, these accounts must be sent to teachers at each school who assign these accounts to their students.

To make this more complex, I'd like each student to be able to keep one account and login as different assignments. Sorry if this isn't clear, my biggest problem is how complicated the issue is.

  • 1
    Sounds complicated, but what exactly are you having a problem with?
    – Erics
    Feb 3, 2014 at 19:48
  • I have no idea how to structure the multiple levels of accounts, it seems confusing to me and like it will confuse users Feb 3, 2014 at 19:58
  • 1
    @superlizardmo This sounds like a 2-part question: "how do I implement multiple levels of accounts" (which has nothing to do with UX) and "how do I convey to the user the multiple levels of accounts without being confusing" (which is in the realm of UX). Which do you need help with?
    – cimmanon
    Feb 3, 2014 at 21:44

1 Answer 1


Instead of focusing on how many layers of admins you have, consider a set of table structures. One contains users. One contains named groups that have users or groups as members. One table contains permissions. And one table associates permissions with groups.


  • superlizard - admin over all
  • Eric - Lives in Canada, is a North America admin. There is no Canada group.
  • John - Lives in Minnesota, USA, is USA admin
  • Bill - Lives in Minnesota, USA, is Minnesota admin
  • Cindy - Lives in Minnesota, USA, is regular user
  • Frank - Lives in California in USA, is regular user, but there is no California group.


  • USA (@Minnesota, Frank) - all residents of USA
  • North_America(Eric, @USA) - all residents of North America. Can create subgroups for countries.
  • SuperAdmins (superlizard) - Can administrate anything in the system.
  • USA_Admins(John) - administrators of USA accounts. Can create subgroups for states.
  • Minnesota(John, Bill, Cindy) all residents of Minnesota
  • MN_Admins(Bill) - administrators of MN accounts. Cannot create subgroups.
  • NA_Admins(Eric)

Permissions: - GroupAdmin can add/delete/update users - CreateGroup can add new groups - EditGroup can edit existing groups - DeleteGroup can delete groups - EditPermissions can change permissions


  • SuperAdmins (Group=@All, GroupAdmin, CreateGroup, EditGroup, DeleteGroup, EditPermissions)
  • NA_Admins(Group=@NA, GroupAdmin, CreateGroup)
  • USA_Admins (Group=@USA, GroupAdmin, CreateGroup)
  • MN_Admins (Group=@Minnesota, GroupAdmin)

This is how directory structures like LDAP work. Now if you want to create a new permission, such as "can send email to these people", the SuperAdmins can create a new permission for it and assign a group to them.

As a matter of fact, you might be better off just using an existing LDAP server to manage your permissions. That way your software can interface with a published API instead of creating one, you can find people who understand LDAP administration, and they can use existing LDAP client tools to manage their users and groups.

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.