Перелопатил горы информации, но до конца понять не могу;
Есть такое в конфиге
'user'=>array(
'class' => 'WebUser',
// enable cookie-based authentication
'allowAutoLogin'=>true,
),
'authManager'=>array(
'class'=>'CPhpAuthManager',
'defaultRoles' => array('guest'),
),
вот такой экшен с инициализацией
public function actionPrepare() {
$auth=Yii::app()->authManager;
$auth->createOperation('createPost','создание записи');
$auth->createOperation('createComment','создание комментария');
$auth->createOperation('readPost','чтение записи');
$auth->createOperation('readComment','чтение комментария');
$role=$auth->createRole('guest');
$role->addChild('readPost');
$role->addChild('readComment');
$role=$auth->createRole('moderator');
$role->addChild('guest');
$role->addChild('createPost');
$role->addChild('createComment');
$auth->assign('moderator', 1); // это как бы главный юзер, который все должен уметь. он есть в базе
$auth->assign('guest', 2); // это обычный, тоже есть в базе
$auth->save();
echo 'done';
}
табличка Users c полем role.
и вот такой фильтр
public function filters() {
return array(
'accessControl',
);
}
public function accessRules() {
return array(
array('deny',
'actions' => array('add'),
//'users'=>array('?'),
'roles' => array('createPost'),
),
array('allow',
'users'=>array('*'),
),
);
}
Вроде бы все ок, но есть одно не обычное поведение.
Юзер с ID=2 имеет полные права, а юзер с ID=1 имеет права гостя =)
где я свернул не туда ?