我想尝试清楚地了解如何使用 Yii 的 RBAC 做一些事情。我有一张item
与fk's
. user
我CGridview
用来给update
这个数据库记录一个选项。而且我现在也开始做访问规则。
项目表
- id
- name
......
- user_id
我的访问规则:
$auth->createOperation('updateOwnItem', 'User can update their own item', 'return $params["user_id"] == Yii::app()->user->id;');
因此,例如,我可能有一个链接来更新文件:
www.example.com/item/update/2
控制器
public function actionUpdate($id) {
if(!Yii::app()->user->checkAccess('updateOwnItem', array('user_id'=>Yii::app()->user->id))) {
throw new CHttpException(403, 'No access.');
}
// Rest of controller
不过,这总是返回“无法访问”。
我的其余规则仍然有效,任何人都可以发现这里可能有什么问题吗?此外,我覆盖了该getId()
方法,因此我的 user->id 确实返回了用户 ID。
提前致谢