Originally posted by Paul Wheaton:
Rather than user level, have you considered "keys"?
Is it possible that one user might have access to option a and not option b, while another user has access to option b and not option a?
If you give the first user the "a" key and the second user the "b" key, all of this works out.
As for OO: Yes, you should have a user object that contains the access authority information. And then have a secure object that knows how to test the authority.