本文实例讲述了yii权限控制的方法。分享给大家供大家参考,具体如下:
这里摘录以下3种:
1. 通过accessControl:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | public function filters()
{
return array (
'accessControl' ,
);
}
public function accessRules()
{
return array (
array ( 'allow' ,
'users' => array ( '@' ),
),
array ( 'deny' ,
'users' => array ( '*' ),
),
);
}
|
ログイン後にコピー
2. 通过插件(如:right)
1 2 3 4 5 6 | public function filters()
{
return array (
'rights' ,
);
}
|
ログイン後にコピー
3. 混合模式:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
public function filters()
{
return array (
'updateOwn + update' ,
'rights' ,
);
}
public function filterUpdateOwn( $filterChain )
{
$post = $this ->loadModel();
if (Yii::app()->user->checkAccess( 'PostUpdateOwn' , array ( 'userid' => $post ->author_id)))
$filterChain ->removeAt(1);
$filterChain ->run();
}
|
ログイン後にコピー
如果有权限的基础上,开放某些动作的权限,可以通过allowedActions:
1 2 3 4 | public function allowedActions()
{
return 'autocomplate,autocomplate2' ;
}
|
ログイン後にコピー
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。