This is not a programming problem, this is a Roles design problem.  Admin is not a role, its a type of user.  You might call it a container if you want... but roles are more fine grained, and should be a hierarchy.<p>You can put a hierarchy of Roles in a database, but the actual role check can (and I think should) be hard-coded.<p>In your API you might have a method &quot;public void NewProduct()&quot; That individual method should have the ProductWrite permission (role), and you can give that permission to higher level &quot;containers&quot; or &quot;roles&quot;.  So Admin has ProductWrite, and ContentManager might also have ProductWrite.  In your code it&#x27;s just one check has(&quot;ProductWrite&quot;).<p>Does that make sense?