2012-02-26 27 views
1

在Yii RBAC中,有可能獲得有多少用戶有權限執行x的計數信息?計算有多少用戶有權限執行x操作?

我的意思是,一個能寫會的方法:在分配Db的

  • 檢查所有用戶,
  • 遞歸添加所有具有父權限的用戶,
  • 並排除重複的ID。

但是有沒有預製的方法來做到這一點?提前感謝您的任何想法。

+0

由於Yii RBAC模式的構建,我覺得可能有這樣的數據存在問題:例如'authitemchild'表使用非常簡單的父子結構,這使得它很難遍歷。 – Sebastian 2012-02-26 16:32:42

回答

0

部分答案。
它不應該是很困難的只是檢查計,因爲你可以檢查authAssignment表,也許不喜歡一些SQL查詢:

SELECT COUNT(*) FROM `AuthAssignment` WHERE itemname = 'PermissionXname'; 

其他的事情需要一些想法,但不是不可能的,如果我得到它,我會讓你知道。

雖然我不確定是否有內置方法。

+0

回想起來,我不確定你的問題中這3點意味着什麼。請詳細說明您是否可以。 – 2012-02-26 18:58:08

+0

感謝您的回答,bool.dev。在第一篇文章中,這三點是關於在選擇分配的用戶之前獲取父權限的。這是最難的部分(遍歷權限樹)。然後,您可以通過「DISTINCT/UNION」MySQL語句選擇或統計所有唯一用戶。 – Sebastian 2012-02-26 21:31:20

+0

嘿,如果可以的話分享你的rbac層次結構,那麼也許它會更容易理解,你可以在你的例子中給出像role1,task1,operation1這樣的名字,並且明確地指定父類。如果您可以將其作爲圖片進行分享,則效果更好你可以在問題中上傳圖片。 – 2012-02-27 09:48:45

相關問題