尽管http://dreamneverfall.cn/yiidoc/topics.auth.htm这个页面讲的也算是详尽了,但是还是不理解应该怎么使用authManager来实现用户权限管理?问题如下:
- 配置文件里的
'authManager'=>array(
'class'=>'CDbAuthManager',
'connectionID'=>'db',
),
没发觉这段中的CDbAuthManager起到了什么作用,本来的理解是用了CDbAuthManager加上别的配置,系统会自动根据数据库里表间的关联来判断能不能执行当前的controller,可实际上匹配规则还是得自己写,这样如果写成CPhpAuthManager会怎样?
-
$bizRule=‘return Yii::app()->user->id==$params[“post”]->authID;’; 这里面可以写复杂的逻辑判断么?
-
定义授权等级这些代码应该是写在什么地方?例如这些:
$auth=Yii::app()->authManager;
$auth->createOperation('createPost','create a post');
$auth->createOperation('readPost','read a post');
$auth->createOperation('updatePost','update a post');
$auth->createOperation('deletePost','delete a post');
if(Yii::app()->user->checkAccess('createPost'))
{
// 创建发布
}
这段代码需要自己执行么?还是在定义
class PostController extends CController
{
......
public function accessRules()
{
return array(
array('deny',
'actions'=>array('create', 'edit'),
'users'=>array('?'),
),
array('allow',
'actions'=>array('delete'),
'roles'=>array('admin'),
),
array('deny',
'actions'=>array('delete'),
'users'=>array('*'),
),
);
}
}
时会自动被执行?
看完后发觉对authManager更迷糊了?哪位朋友能帮忙指点下迷津,或者给个实例看下,谢谢