Никакой фреймворк общего применения не знает требований Вашего конкретного приложения. Это значит, что доступ к каждому действию придётся так или иначе прописать в самом приложении. Если требуется тонкая настройка доступов, то нередко создаётся понятие "права на действие", множество которых можно собирать в роли. При этом приложение "знает" о правах (тонких настройках), а роли создаются произвольно в административной части приложения и наполняются нужными правами. Такой подход создаёт дополнительные сложности в программировании и в последующей эксплуатации, но это плата за гибкость. Для обеспечения максимальной гибкости, при разработке приложения на каждое действие, доступное пользователю, придётся создавать соответствующее право, и в приложении прописывать его проверку.