И ещё… В своё время делал что-то очень похожее(наверное потомучто решение простое и лежит на поверхности).
Вот только у мены было ещё разделение на _action и _object.
_action — ресурс action(грубо говоря доступ к странице). Проверка шла в плагине.
_object — ресурс шаблона(например менюшка, поле редактирования и т.д.). Проверялись такие ресурсы вью хелпером. Например menu_object:
<php if($this->a('menu')): ?>
…
Динамические роли и права