這是我第一次使用Yii2的RBAC系統。 我用http://www.yiiframework.com/doc-2.0/guide-security-authorization.html來讓自己熟悉主題。 因爲我需要某種角色/權限管理,我安裝了這個擴展:https://github.com/mdmsoft/yii2-adminCan Yii2 RBAC權限有多個規則?
我正在處理讓用戶提交文章的應用程序。有兩種類型的用戶,管理員和普通用戶。
我爲此創建了2個角色。管理員角色和用戶角色。
用戶(管理員和用戶)必須能夠編輯文章。管理員應該可以編輯任何文章,而用戶只能編輯他們自己的文章。
爲此,我創建了2個權限。 「編輯」權限和「EditOwn」權限。比我創建「IsOwner」規則,並將其附加到「EditOwn」權限。
我爲Admin角色分配了「編輯」權限,爲用戶角色分配了「EditOwn」權限,一切都很好。
現在我想爲每篇文章創建「鎖定」狀態。如果文章被鎖定,即使是他自己的文章,用戶也不能編輯它。即使鎖定,管理員也應該可以對其進行編輯。
爲此,我創建了新規則「IsLocked」,但我不知道如何將其添加到「EditOwn」權限。我不知道是否有可能將2個規則附加到一個許可中?
編輯: 現在,我有這樣的方式「處理」,我有更多的權限「EditOwnIsLocked」給我附「IsLocked」規則比「EditOwn」,兒童是編輯的」孩子」。 這個工程,但它感覺骯髒,簡單和簡單的錯誤。
在數據庫中處理'lock'不是更好嗎?我的意思是一個布爾列,指示文章是否被鎖定? – 2014-11-05 14:51:54
我確實有。而且我希望通過檢查數據庫來檢查文章是否被鎖定,而不是拒絕用戶並允許管理員進行「角色」檢查。 – Ljudotina 2014-11-05 15:39:44
你的意思是,與角色定義無關。您可以檢查訪問權限,但無法檢查文章是否被鎖定。你想如何知道這個角色? – 2014-11-05 15:48:58