придумай реальный случай и без кода
ззачем тут кому твой код?
какие контроллеры могут пересекаться?
Ok. Есть контроллер который вырисовывает слайд шоу или просто слайдер, и при чем не из своих материалов, а например из новостей или статей. Но что бы ему получить список статей, он в базу не лезет, уже есть другой контроллер который это делает, вот он его и вызывает, но со своими параметрами, принимает от него массив и отрисовывает в своем виде.
Вы ввели меня в тупик, я не знаю что такое HMVC.
Но вопрос у меня все же есть, я что не могу внутри метода напрямую вызвать контроллер (это же обычный класс)?
Ну так перед запуском экшна (читай метода) я проверяю есть ли у метода описание прав, и если есть, то ищу у пользака.
Если у пользака не найдено - пшел вон..
Получается я могу написать свой контроллер, дать ему права доступа, а внем запускать любой другой контроллер без проверки???
А у пользака (вернее у его группы) хранятся те права, которые ему можно.
Где связь? Как группе изменить права, после добавления 10-ти контроллеров? (Добавление)
Вот если делать проверку перед запуском, внутри самого фрейма, то недоступный экшин можно вызвать внутри разрешенного экшена, а если проверку делать в начале каждого экшена, много дублирования получается, да и как логически привязать "новостную ленту", что бы она еще и отвечала за доступ к самой себе.
Нет, ну какой же <iframe? Я говорю о PHP. Фрейм - FrameWork, что-то на подобе фронт-енд контролера, по которому протекает рабочий цикл от REQUEST до RESPONSE.
Вот и я решил создать тему, а то как то скучновато.
Нужно правильно построить логику приложения, а конкретно - на каком уровне выполнять проверку прав доступа.
И так представим что есть некоторый фрейм. В процессе выполнения которого, он на определенном этапе получает массив с экшенами и их парметрами которые нужно выполнить не посредственно по запросу пользователя. Вопрос в том, где определить разрешено ли тукещему юзеру запустить тот или другой экшин. Как правило есть два варианта: первый - проверять непосредственно перед запускам экшена в самом фрейме, или второй - в начале каждого экшена? (Добавление)
Ну что, никто не реализовывал такую логику?