[eluser]jedd[/eluser]
[quote author="nZac" date="1245909231"]I have three basic types of users. unregistered, registered and admins. The admins are broken down into 3 categories: Staff, Teaching and Events, Then they all have there sub parts.[/quote]
{[url="http://ellislab.com/forums/viewthread/113117/P60/#577544"]sigh[/url]}
All existing comments aside, I think your life will be easier once you admin to yourself that you actually have 5 categories.
Quote:User integers for access levels (i.e. a mentor has a value of 1 and the training coordinator has a level of 10)
Brings a tear to my eye, that does.
Colin's approach is beautiful - not just because the practicality of it is that you have a single function up front that can very quickly assess what the current user can do, but because it hides all that backend complexity. It means when you one day replace your auth system with something better - zend, mx_auth, dx_auth, or the as yet unwritten nz_auth - it won't be quite so painful.
Oh, and when I had a two-size sidebar (user/guest and admin) to provide, I wimped out and just had content in two arrays (user and admin). If the user was an admin, that array got merged before returning. This was done in MY_Controller. If I ever get more complex with sidebar presentation (3 types, one with 3 sub-types, and those with various sub-parts - to pick an example at random) that's when it gets pushed into a DB-driven ACL system.