1

我安装了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()

我做错了什么或者添加额外角色的最佳方式是什么,我可以在上面的网站上调用。

4

2 回答 2

1

我不知道您到底安装了哪个扩展 - 但您将它与user组件混淆了。用户组件是您可以通过 访问的Yii::app()->user。默认情况下它是一个CWebUser对象。您可以class WebUser extends CWebUsercomponents/目录中创建自定义。您可以将其配置为配置文件中user的组件。main.php

'components' => array(
    'user' => 'WebUser',
),

然后你把你的isEmployee()方法移到那个类中。由于您没有提供有关您使用的扩展程序的任何详细信息,因此我无法真正帮助您如何正确检查该角色。但我想知道您是否不应该使用基于 RBAC 的解决方案。它允许您创建角色并将其分配给用户。还有几个扩展可以帮助您管理角色和用户。

于 2013-05-12T08:39:08.007 回答
0

Yii User不是用来给用户添加角色的,它只处理用户账户管理。

您可以安装额外的扩展,如权限、auth 或 srbac(请参阅列表),它为此任务提供 Web 界面。

于 2013-05-12T14:06:04.873 回答