2013-05-11 76 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界面。