2013-07-08 50 views
5

我是Symfony2的新手,爲了我公司的需要,我使用了Sonata Admin和用戶捆綁軟件。根據用戶角色在儀表板上顯示項目

我想知道是否可以根據記錄用戶的角色隱藏或顯示儀表板上的項目。

例如,我有幾個由Sonata AdminBundle(用戶,公司,任務,網站等...管理)管理的實體,並且我想僅將用戶管理顯示給超級管理員,公司和站點管理到另一個角色(例如SITE_ADMIN)和第三個角色的任務。

你有沒有遇到這種情況?你能否給我解決方案或線索直接進入解決方案?

非常感謝,

埃內斯

回答

5

使用Role handler,使用戶相關權利只,例如,管理員組(創建)。然後將管理員用戶分配給管理員組。索納塔管理員將會選擇限制,並且只會將儀表板項目顯示給管理員。

+2

是的,你必須在你的配置中設置「sonata_admin:security:handler:sonata.admin.security.handler.role」。然後你就可以設置所需的角色來訪問管理員的不同部分。 –

+0

非常感謝您的回答,有點晚,但現在對我來說一切都很好:) – Enessari

2

此外,您可以隱藏,並在userboard這種方式顯示塊:

# app/config/config.yml 
sonata_admin: 
dashboard: 
    groups: 
     acme.admin.group.content: 
      label: acme.admin.group.content 
      label_catalogue: AcmeDemoBundle 
      items: 
       - sonata.admin.post 
     acme.admin.group.blog: 
      items: ~ 
      item_adds: 
       - sonata.admin.page 
      roles: [ ROLE_ONE, ROLE_TWO ] 
     acme.admin.group.misc: ~ 

如前所述in the docs

請注意,這隻會改變塊的可見性,而不是可訪問性。 如果沒有限制,人們仍然可以在瀏覽器中打開鏈接,如果他們知道。

如果您使用以前的答案,實施sonata.admin.security.handler.role如果用戶沒有正確的角色,該塊應該會自動隱藏。

相關問題