Accessrules Где Может Быть

всем привет

если есть возможность разграничивать права доступа на любые контроллеры приложения значит, прописывать правила можно не только в текущем контроллере, а еще где-то

это где?

может можно конструкции


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]