Yii:如何在yii用户扩展中设置角色?

时间:2013-05-11 19:31:40

标签: yii yii-extensions yii-components

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

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

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

Yii User不用于向用户添加角色,它只处理用户帐户管理。

您可以安装其他扩展程序,例如rights,auth或srbac(请参阅list),它为此任务提供了一个Web界面。