2015-04-27 19 views
2

我從Yii的1.1.x版本的到來,我已經成功地作用的實施應用,例如,檢查准入document.metadata.edit,這是document.metadata.administrator許可的孩子。Symfony 2安全性難以用RBAC實現嗎?

現在,我讀了很多關於Symfony的2,但不明白如果同樣可以做到。

我看到了ACL,但它說,你可以定義最多隻有30-32規則,根據系統:

您可以定義多達32組基地的權限(取決於你的操作系統PHP 可能會有所不同在30到32之間)。另外,您還可以定義 累積權限。

我也在DB中保存角色,但在Symfony中它似乎保存在配置文件中。

在Symfony的2,可以在角色可以在DB動態創建,加入的成員,則在代碼檢查?還是難以實現?在我的第一個應用程序

一個常見的事情是,給定一組預定義的低級別權限的代碼進行了檢查,你可以創建自己的角色,這些權限添加到角色。

我想我將不得不做出一個包來管理它,還是已經存在的?

非常感謝。

回答

4

對於簡單的基於角色的配置可以從尋找到VotersHierarchical Roles開始的ACL。這是一個經驗法則,你將幾乎不需要Symfony的訪問控制列表 - 這是遠比簡單的選民越來越複雜,只有非常特殊的用例將利用Symfony的ACL的全部潛力。

如Symfony的選民頁指出:

在Symfony的,你可以檢查通過使用ACL模塊,這對於很多應用來說可能比較難訪問數據的權限。更簡單的解決方案是使用自定義選民,這就像簡單的條件語句。