gpt4 book ai didi

php - 扩展 CWebUser 并重写 Yii accessControl

转载 作者:行者123 更新时间:2023-12-02 07:49:23 25 4
gpt4 key购买 nike

我最近扩展了 CWebUser 类,现在它有这样有用的方法:

Yii::app()->user->isAdmin;
Yii::app()->user->isTeacher;
Yii::app()->user->isStudent;

现在 accessControl 过滤器出现了问题。

之前,为了只允许管理员访问,我使用了:

public function accessRules()
{
return array(
array('allow',
'actions'=>array('index','update', 'create', 'delete'),
'users'=>array('admin'),
),
array('deny',
'users'=>array('*'),
),
);
}

如何重写 accessRules 以仅向具有 Yii::app()->user->isAdmin 属性的用户委派访问权限?

最佳答案

您可以在配置中添加选项“表达式”。通常它会得到一个“$user”作为参数。所以你可以这样做:

array('allow',
'actions'=>array('index','update', 'create', 'delete'),
'expression'=> '$user->isAdmin',
),

请注意,我尚未对此进行测试,但我认为它会起作用。

看看here剩下的。

关于php - 扩展 CWebUser 并重写 Yii accessControl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4623471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com