accessControl

Здравствуйте.

Пользуюсь CPhpAuthManager и очень рад(делал всё по одному из мануалов в сети…кажется с yiiframework.ru), всё вроде бы работает как часы.

Все роли верно определяются, но.


<?

class PanelController extends CController {

	public function filters() {

		return array ('accessControl' );

	}

	

	public function accessRules() {

		return array (


		array ('allow', 'roles' => array ('administrator' ) ), 


		array ('deny', 'users' => array ('*' ) ) );

	}

	

	public function actionIndex() {

		$this->render ( 'index' );

	}

	

	public function actionMenu() {

		$this->render ( 'menu' );

	}


}

Я имею роль администратора, но при выполнении любого экшена из контроллера accessControl почемуто меня администратором не считает,

хотя Yii::app ()->user->checkAccess ( ‘administrator’ ) возвращает true.

Использовал версию 1.0.8, подумал, что баг, обновился до 1.0.10…таже фигня. Не понимаю почему так.

p.s. какой бы роли я не разрешил действия в accessRules она автоматически "вылетает"

Неужели никто не знает решения?..очень сомневаюсь, что никто из присутствующих на форуме…да и вообще просмотревших этот топик такого не делал

незнаю как с CPhpAuthManager но с CDbAuthManager все работает замечательно

Чтож…в таком случае буду изучать код accessControl и CPhpAuthManager…уж очень странное явление =(

to corpix

поменяй местами




                array ('allow', 'roles' => array ('administrator' ) ), 


                array ('deny', 'users' => array ('*' ) ) );



Если я не ошибаюсь то проверка прав идет по нисходящей

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

И вправду, никакой разницы…

Проблема остаётся открытой.

Всё…я понял в чём была проблема…моя ошибка.


	protected function isRoleMatched($user)

	{

		if(empty($this->roles))

			return true;

		foreach($this->roles as $role)

		{

			if($user->checkAccess($role))

				return true;

		}

		return false;

	}


if($user->checkAccess($role))

checkAccess() я немножко переопределил…

интересна реализация, если не затруднит, сможете выложить рабочий код, буду очень благодарен вам. Сам я только недавно начал изучать Yii, и пока не всё так легко даётся с первого раза