2012-06-22 58 views
1

嗨,我有3個基於Yii的系統,像:Yii具有相同認證角色的多個系統?

sys1.domain.com 
sys2.domain.com 
sys3.domain.com 

現在,這3個系統共享同一個數據庫,同一用戶和其他實體...當然還有3警予AUTH表。

現在我的問題是,配置身份驗證時,我如何分離每個系統的身份驗證規則?

我使用Yii擴展「權限」來管理角色,如果這有任何幫助。

回答

2

由於您有三個系統sys1,sys2和sys3的單個數據庫,並且您希望只有auth table diffent,您可以在每個系統寫配置的配置文件或全局位置添加三個auth表auth_sys3,auth_sys2,auth_sys1編寫php邏輯將auth_sys1,auth_sys2,auth_sys3的別名作爲auth,這樣您就不需要對內部代碼進行任何更改以調用auth。

+0

我試圖做到這一點,但CDbAuthManager使用相同的數據庫作爲用戶模型所在的位置......這個想法會工作......但不知道如何在yii上配置它...任何想法請? – richardalberto

+0

在CDbAuthManager或者在使用/調用auth表相關的東西之前,寫邏輯/條件來爲auth表名設置常量,如if(sys1){const auth = auth_sys1} ect..and insted keep hardcore auth table name用auth const替換它..... –

+0

但我需要爲系統之間的用戶使用相同的數據庫...只有不同的驗證表...如果我將CDbAuthManager中的連接設置爲包含驗證表的連接,而不是用戶將它給我一個錯誤... – richardalberto

相關問題