我是Symfony2的新手,爲了我公司的需要,我使用了Sonata Admin和用戶捆綁軟件。根據用戶角色在儀表板上顯示項目
我想知道是否可以根據記錄用戶的角色隱藏或顯示儀表板上的項目。
例如,我有幾個由Sonata AdminBundle(用戶,公司,任務,網站等...管理)管理的實體,並且我想僅將用戶管理顯示給超級管理員,公司和站點管理到另一個角色(例如SITE_ADMIN)和第三個角色的任務。
你有沒有遇到這種情況?你能否給我解決方案或線索直接進入解決方案?
非常感謝,
埃內斯
我是Symfony2的新手,爲了我公司的需要,我使用了Sonata Admin和用戶捆綁軟件。根據用戶角色在儀表板上顯示項目
我想知道是否可以根據記錄用戶的角色隱藏或顯示儀表板上的項目。
例如,我有幾個由Sonata AdminBundle(用戶,公司,任務,網站等...管理)管理的實體,並且我想僅將用戶管理顯示給超級管理員,公司和站點管理到另一個角色(例如SITE_ADMIN)和第三個角色的任務。
你有沒有遇到這種情況?你能否給我解決方案或線索直接進入解決方案?
非常感謝,
埃內斯
使用Role handler,使用戶相關權利只,例如,管理員組(創建)。然後將管理員用戶分配給管理員組。索納塔管理員將會選擇限制,並且只會將儀表板項目顯示給管理員。
此外,您可以隱藏,並在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如果用戶沒有正確的角色,該塊應該會自動隱藏。
是的,你必須在你的配置中設置「sonata_admin:security:handler:sonata.admin.security.handler.role」。然後你就可以設置所需的角色來訪問管理員的不同部分。 –
非常感謝您的回答,有點晚,但現在對我來說一切都很好:) – Enessari