Parece que você vai precisar de um controle de acesso baseado em função sistema. Desenvolver um não é realmente uma tarefa trivial, então, como já sugerido, encontrar um framework ou classe pronta que faça o trabalho seria um começo que vale a pena.
No entanto, há muitas informações por aí sobre como criar um. Aqui estão alguns links para você começar:
Stackoverflow
Controle de acesso baseado em função
Outros sites
Um sistema de controle de acesso baseado em função (RBAC) para PHP
Sistema de Controle de Acesso Baseado em Função Refinada (RBAC)
Série de tutoriais de padrões (parte 1):modelo de domínio RBAC
Uma pesquisa por PHP RBAC sem dúvida revelará muito mais.