Any additional companies will only compound the problem. Privileges What we needed was a way to let each user have exactly the access that they needed. Also, we wanted to make sure that it was scalable. Once a page was done, we wanted it to stay done regardless of how many other companies were added. We did this by using privileges.
Privileges are just a handy way to identify a single type of action.
If the user can create an order, they get the CreateOrder privilege that will allow this. If they can edit an order, they get the EditOrder privilege, and so forth. The question now is where and how to store the privileges. For readability, we used Boolean values as the privilege. The where was more difficult.