Isso dependerá em grande parte do framework MVC que você está usando. O framework ASP.NET MVC no .NET, por exemplo, possui um sistema de permissões embutido (chamado roles). Você poderia usar um controlador com vários métodos:
public class ResourceController : Controller
{
[Authorize(Roles = "User")]
public ActionResult CreateAsUser()
{
// ...
}
[Authorize(Roles = "User")]
[HttpPost]
public ActionResult CreateAsUser(ResourceModel model)
{
// ...
}
[Authorize(Roles = "Admin")]
public ActionResult CreateAsAdmin()
{
// ...
}
[Authorize(Roles = "Admin")]
[HttpPost]
public ActionResult CreateAsAdmin(ResourceModel model)
{
// ...
}
}
Frameworks MVC com mais recursos terão algum tipo de sistema de permissões baseado em função que você pode usar. Realmente, o próximo passo é identificar o framework MVC que você está usando (ou decidir qual deles usar agora que você sabe que precisa de permissões baseadas em função) e fazer algumas pesquisas sobre como implementar essas permissões.