2013-04-06 126 views
0

Yii中的權限系統 - 據我瞭解 - 就像內容管理系統中的不同角色:特定角色(E.G.主持人,作者,管理員等)可以執行特定操作,也可以不執行特定操作。是否可以根據關係擁有權限?

然而,我想要的是不同的。我希望用戶能夠設置與他們有特定關係的人是否可以執行特定的操作。例如,用戶應該能夠說只有他的朋友才能看到他的個人資料,或者企業可以說只有該業務的特定員工(例如用戶ID爲4)才能添加產品。

這是可能使用Yii的授權系統,或者我需要實現我自己的系統?

另外,作爲一個側面問題,我想要什麼名稱,以便下次我不寫四行解釋它? :-)

回答

1

你想要的確的確有一個名字。它被稱爲business rules。在你的情況下,你可以創建一個RBAC任務或像viewFriend這樣的操作並將其與業務規則相關聯。在該規則中,如果當前訪問者是要顯示其配置文件的用戶的朋友,則會檢查該規則。

您會在配置文件的視圖操作中檢查此權限。對於權限檢查,您可以將參數傳遞給此規則。在你的情況下,這可能是你想查看的配置文件的用戶ID。

+0

這個回答我的問題,但我仍然不能確定是否RBAC是正確的做法:我不能使用的角色和任務,因爲這是我唯一關心的操作,並沒有大規模分配的操作方式給用戶。例如,我不能只將「朋友」角色分配給某人,並且總是說朋友角色可以查看某個配置文件。對於配置文件,朋友可以查看它,而在另一個配置文件中,所有者可能不允許用戶做這樣的事情。 – 2013-04-07 05:48:15

+0

其實你*可以*分配操作給用戶。警予的RBAC並沒有真正區別無論您分配一個角色,任務或操作給用戶。所以如果你想要一個只有操作的非常平坦的RBAC層次結構,那也很好。 – 2013-04-07 08:56:42

相關問題