Уже неделю мучаюсь с реализацией RBAC, так и не понял!
Из мануала сделал следующее:
1)Дописал в конфиг:
'authManager'=>array(
'class'=>'CDbAuthManager',
'connectionID'=>'db',
),
2)Из framework/web/auth/schema.sql создал таблицы в бд
3)Запустил:
$auth=Yii::app()->authManager;
$auth->createOperation(‘createPost’,‘создание записи’);
$auth->createOperation(‘readPost’,‘просмотр записи’);
$auth->createOperation(‘updatePost’,‘редактирование записи’);
$auth->createOperation(‘deletePost’,‘удаление записи’);
$role=$auth->createRole(‘reader’);
$role->addChild(‘readPost’);
$role=$auth->createRole(‘admin’);
$role->addChild(‘createPost’);
$role->addChild(‘readPost’);
$role->addChild(‘updatePost’);
$role->addChild(‘deletePost’);
$auth->assign(‘reader’,‘3’);
$auth->assign(‘admin’,‘2’);
Насколько я понимаю тем самы создал действия для crud, создал две роли и назначил им действия. После пользователям с id 3 и 2 назначили роли read и admin.
Почему же при проверке типа:
[<?php
if(Yii::app()->user->checkAccess(‘createPost’))
{
echo CHtml::link(‘New post’,array(‘create’));
} else { echo ‘NONONO’; }
?>]
Мы все время палим NONONO!