Посоветуйте. Хочу написать свой AccessControl фильтр, чтобы устанавливать доступ к Экшенам с админки.
Добавлено: 2019.10.09, 05:21
Посоветуйте. Хочу написать свой AccessControl фильтр, чтобы устанавливать доступ к Экшенам с админки.
Идея такая в behaviors каждого контролера, я буду передавать своему фильтру экшены и название контролера, а фильтр Исходя из сохраненных настроек в файле для этого контролера, будет выдавать разрешения доступа к каждому Экшену для настроенных ролей. Это в принципе я понимаю как сделать. Но вопрос стоит в другом, в админке в настройках роли хочу сделать вывод всех контролеров и их экшенов, чтобы настраивать контроль доступа к каждому экшену определенного контролера для определенной роли. Вопрос вот в чем, Как элегантно можно определять какие контролерры существуют и какие у них есть Экшены чтобы задавать им нстройки доступа. Знаю можно каждый раз при заходе в настройки роли проверять все классы в проекте и отбирать только контролеры и смотреть в них экшены., но думаю что это костыльно и должен быть другой метод.
В общем посоветуйте, как быть или накидайте примеров где такое воплощено чтобы посмотреть?
Спасибо
Идея такая в behaviors каждого контролера, я буду передавать своему фильтру экшены и название контролера, а фильтр Исходя из сохраненных настроек в файле для этого контролера, будет выдавать разрешения доступа к каждому Экшену для настроенных ролей. Это в принципе я понимаю как сделать. Но вопрос стоит в другом, в админке в настройках роли хочу сделать вывод всех контролеров и их экшенов, чтобы настраивать контроль доступа к каждому экшену определенного контролера для определенной роли. Вопрос вот в чем, Как элегантно можно определять какие контролерры существуют и какие у них есть Экшены чтобы задавать им нстройки доступа. Знаю можно каждый раз при заходе в настройки роли проверять все классы в проекте и отбирать только контролеры и смотреть в них экшены., но думаю что это костыльно и должен быть другой метод.
В общем посоветуйте, как быть или накидайте примеров где такое воплощено чтобы посмотреть?
Спасибо