Как на практике реализуют распределения прав доступа?
Лучше чем RBAC вроде ничего не придумали.
Вот реализация RBAC с кодом на примере laravel https://habr.com/post/321678/ACL - не такая удобная штука, но очень гибкая, широко использовалась раньше, да и сейчас кое-где применяется.
А вообще подходов намного больше, можно походить по ссылкам "см также" из этих статей.
Сильно зависит от технологий, используемых способой аутентификации и т.п.
Если я правильно понял вопрос, то Вам по сути нужно:Сделать список всех элементов (разделов, виджетов и т.п.)  Сделать список ролей (админ/пользователь и т.п.) Не рекомендуется ,конечно, привязываться к "телу", лучше к ролиСконфигурировать роли (какая роль имеет доступ к какому элементу)отобразить результат в (лучше древовидном) виде элементов
...но всё это настолько просто, что я сомневаюсь - правильно ли понял вопрос.
Можно копнуть фундаментальнее:
Эти самые роли длячего-то предназначены. И их функционал должен быть где-то описан. У меня это обычно описание процесса (Process Model). 
...но если Вы займётесь этим - там очень много работы.