всем привет
если есть возможность разграничивать права доступа на любые контроллеры приложения значит, прописывать правила можно не только в текущем контроллере, а еще где-то
это где?
всем привет
если есть возможность разграничивать права доступа на любые контроллеры приложения значит, прописывать правила можно не только в текущем контроллере, а еще где-то
это где?
может можно конструкции
public function filters()
{
return array(
'accessControl',
);
}
public function accessRules()
{
return array(
array('allow',
'controllers'=>array(
'inside',
'onlyme',
'important'
),
'roles'=>'@'
),
);
}
разместить в контроллере Controller из директории components?
но как тогда в отдельно взятом контроллере, который наследуется от Controller использовать accessRules для своих конкретных методов, ведь тогда будет оверрайд?
ай нид ё хелп
Да, будет оверрайд, но ведь можно сначала вызвать парента и смерджить (ну или что там требуется), чтобы на выходе был нужный массив.
это хорошая мысль! не подскажите — как реализовать?
А почему нельзя использовать тот же Rights.
Мне очень нравится, ну или хотя бы посмотреть как реализовано там и сделать свое.
если бы я знал о существовании Райтс
сделал как посоветовал ORey
вроде работает
суть такова: в контроллере-родителе (Controller из components) в функциях filters и accessRules указал фильтры и правила применимые ко всем контроллерам и методам приложения, а конкретику вынес непосредственно в текущий контроллер
[color="#FF0000"]Controller extends CController[/color]
[color="#A70000"]SiteController extends Controller[/color]