Уверен многие сталкивались с необходимостью выдать доступ к определенному действию не только исходя из роли пользователя, но и по доп. параметрам.
Возьмем самый распространенный пример:
Есть новости, нужно дать возможность редактировать только авторам. Т.е. сравнивать значение поля author_id и значение Yii::app()->user->id;
Всё достаточно просто пока проверка осуществляется через вызов Yii::app()->user->checkAccess().
Я столкнулся с такой проблемой. Хочу проверять является ли пользователь автором перед тем как выполнять actionUpdate. Мне такая логика видится более правильно чем в самом actionUpdate вызывать Yii::app()->user->checkAccess(), если я ошибаюсь, поправьте.
Нашел очень хорошую статью
habrahabr.ru/post/177873/, все ясно и понятно, но как это использовать совместно с Yii Rights? Как указать модулю Rights что при проверке правила на update нужно еще добавить параметры чтобы условие bizrule корректно могло быть проверено? В статье параметры добавляются так:
public function accessRules() {
return array(
...
array('allow',
'actions' => array('update'),
'roles' => array(
'updateNews' => array(
'news' => $this->news
)),
),
...
);
}
Но у меня то ведь accessRules в БД.