簡體   English   中英

Sonata Admin:讓用戶只編輯他們擁有的實體(ACL)

[英]Sonata Admin: Let users only edit entities they own (ACL)

我有使用ACL設置的Sonata Admin。 我有不同的用戶,組和權限,工作正常。 為此,我按照ACL上的Sonata Admin文檔進行了操作

所以這是我的問題 :什么是一種干凈的方法來確保后端(管理員)用戶只能查看,編輯和刪除他們使用Symfony和Sonata Admin的內置ACL機制創建的實體? 保存在ACL表格中后,Sonata Admin會自動存儲對象的所有者(創建者)(來自Sonata文檔 ):

所有者 :創建對象時,當前登錄的用戶被設置為該對象的所有者,並被授予該對象的所有訪問權限;

Stackoverflow上已經回答了同樣的問題 ,但答案並沒有詳細解釋如何使用ACL解決它。

有一個新的Symfony捆綁就是這樣做: https//github.com/coopTilleuls/CoopTilleulsAclSonataAdminExtensionBundle

您需要做的就是在Sonata Admin中啟用ACL ,安裝捆綁包並激活它。 非常簡單有效,我在Sonata Admin 2.2的Symfony2項目中使用它。

我看到了兩種方法:

我無法做任何這些我做的非常簡單的事情,但我認為這是個主意。

實際上,這是許多Symfony的事情之一,我花了很多時間和成千上萬行代碼而沒有大的成功......這樣簡單的需求不應該像屁股一樣痛苦......

不要向用戶授予EDIT權限。 他們可以編輯他們擁有的實例,但不能編輯其他實例。

我用這個配置:

#app/config/config.yml
sonata_admin:
    security:
        information:
            STAFF:    [VIEW, LIST, CREATE]
            EDITOR:   [OPERATOR, EXPORT]
            ADMIN:    [MASTER]

文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM