I am writing a bespoke web system in MVC4, part of this system requires an Admin user to manage roles and users in the company to provide access and permissions to certain areas of the system. The system has modules in the system:

Sales
Production

The admin team would like the ability to create roles in the system and apply permissions to those roles. E.g. Sales role would be denied access to production but the Sales Manager can have read only access to Production.

I am looking for an example of the best approach to managing this for a single admin screen. Admin needs to 

* Create roles
* Create Users
* Assign Roles
* Assign Role permissions to modules and actions in the system

Also how would I implement it at a Controller level as the roles need to be dynamically assigned?

```
[Authorize(Roles="Sales")] // needs to be dynamic
public ActionResult SalesIndex(){

    return View();

}

```

Any ideas would be appreciated

Thanks