6

私は Symfony2 を初めて使用し、会社のニーズのために Sonata Admin および User バンドルを使用しています。

ログインしたユーザーの役割に応じて、ダッシュボードの項目を表示または非表示にできるかどうかを知りたいです。

たとえば、Sonata AdminBundle (ユーザー、会社、ミッション、サイトなどの管理) によって管理されるいくつかのエンティティがあり、ユーザー管理をスーパー管理者のみに表示し、会社とサイト管理を別の役割に表示したい (たとえば、SITE_ADMIN) と 3 番目のロールへのミッション。

このような状況に直面したことがありますか? 解決策または解決策に直接つながる手がかりを教えていただけますか?

どうもありがとう、

エネス

4

2 に答える 2

2

さらに、次の方法でユーザーボードのブロックを非表示および表示できます。

# 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: ~

ドキュメントで述べたように。

これは、アクセシビリティではなく、ブロックの可視性のみを変更することに注意してください。制限がない場合でも、ユーザーが知っていればブラウザでリンクを開くことができます。

sonata.admin.security.handler.roleを実装する前の回答を使用すると、ユーザーが正しい役割を持っていない場合、ブロックは自動的に非表示になります。

于 2014-12-08T09:29:22.137 に答える