我安装了yii user extension
,现在我在徘徊,我可以添加一个额外的角色。我在User db表中添加了一个新列,并编辑了UserModule
,如下所示:
public static function isEmployee() {
if(Yii::app()->user->isGuest)
return false;
else {
if (!isset(self::$_employee)) {
//check to see what kind of user we got and include admin for all
if(self::user()->type)
self::$_employee = true;
else
self::$_employee = false;
}
return self::$_employee;
}
}
然后当我尝试在我的网站的其余部分中调用它时,似乎无法正常工作
'visible' => Yii::app()->user->isEmployee()
我做错了什么或者添加我可以在网站上调用的额外角色的最佳方式是什么。
答案 0 :(得分:1)
我不知道您确切安装了哪个扩展程序 - 但是您将其与user
组件混淆了。用户组件是您可以通过Yii::app()->user
访问的组件。默认情况下它是CWebUser
对象。您可以在class WebUser extends CWebUser
目录中创建自定义components/
。您可以在user
配置文件中将其配置为main.php
组件。
'components' => array(
'user' => 'WebUser',
),
然后将isEmployee()
方法移动到该类中。由于您没有提供有关您使用的扩展程序的任何详细信息,因此我无法真正帮助您如何正确检查该角色。但我想知道您是否应该使用基于RBAC的解决方案。它允许您创建角色并将其分配给用户。还有几个扩展可以帮助您管理角色和用户。
答案 1 :(得分:0)