2014-02-22 45 views
0

我試圖創建一個網站與Symfony2,其中每個用戶可以創建自己的博客和註冊將完成與FOSuserBundle。 它也將是一個名爲博客相關ManyToOne與實體用戶的實體。 我的問題是,在這種情況下,我應該使用訪問控制列表(ACL)來爲每個用戶定義授權來管理他自己的博客?訪問控制列表(ACLs)symfony2

回答

0

我記得在某個時間回顧一下項目的ACL並且在它的表面上看起來很有用,如果有點冗長的話 - 沒有什麼不對的。他們表現也很好。

但是我們決定不要在最後使用它,因爲我現在實際上無法回想起某些特定的限制。我知道這不是很有用!這聽起來很適合你的使用情況然而,如果我沒有記錯,它使用permission map屬性與你的模板is_granted(假設你使用小枝)類似的非常方便:

{% if is_granted('EDIT', blog_post) %} 
    <a href="{{ path('blog_edit', blog_post)">Edit</a> 
{% endif %} 

我D建議嘗試一下,雖然文檔也建議voters作爲替代,但我從來沒有使用過這些,所以我不能評論。

希望這有助於:)

+0

,但我們應該保護控制器的方法也 – hous

+0

當然,這總是好的做法。上面的代碼片段非常有用,例如,您想在多個用戶上下文中重複使用單個模板。我喜歡在控制器中使用註釋,因此'@ Security'註釋在這種情況下非常有用 - 您可以爲控制器的操作定義'has_role'和'is_granted'斷言:http://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle /annotations/security.html –