2013-05-11 77 views
1

我安装了yii user extension,现在我徘徊如何我可以添加一个额外的角色。我加在用户数据库表中的新列和编辑UserModule这样的:Yii:如何在yii用户扩展中设置角色?

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

你看过http://www.yiiframework.com/extension/yii-user-management/吗?它提供了一个体面的RBAC,我之前在生产中使用过它。易于安装和使用。 – adamors 2013-05-13 13:24:09

回答

1

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

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

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

+0

嘿谢谢你的回复,这是我使用http://www.yiiframework.com/extension/yii-user/的扩展,让我知道如果你知道如何添加一个角色,谢谢 – Gunnit 2013-05-12 13:27:28

0

Yii User并不意味着向用户添加角色,它只处理用户帐户管理。

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