在没有 SonataUserBundle 的情况下访问 SonataAdminBundle 中的管理面板
Posted
技术标签:
【中文标题】在没有 SonataUserBundle 的情况下访问 SonataAdminBundle 中的管理面板【英文标题】:Access Admin Panel in SonataAdminBundle without SonataUserBundle 【发布时间】:2018-05-19 05:05:10 【问题描述】:我在一个使用 SonataAdminBundle 的 Symfony 项目中工作,我有 3 种类型的用户:ROLE_SUPER_ADMIN ROLE_CORRESPONDANT 和 ROLE_CLIENT
ROLE_SUPER_ADMIN 和 ROLE_CORRESPONDANT 有权访问管理面板,
在管理面板中我有一个这样的菜单:
仪表盘
产品 股票 运营用户
通讯员 客户但我想只为 ROLE_CORRESPONDANT 显示此项目:
仪表板 运营 用户 客户我现在使用 SonataUserBundle 很容易,但我的问题是我不应该使用它,我应该只使用 FOSUserBundle,
sonata_admin:
dashboard:
groups:
Accueil:
icon: '<i class="fa fa-home"></i>'
items:
- app.admin.produit
// I would like to define roles her for each item
如果可行,请有人帮我出主意? 谢谢大家
【问题讨论】:
你不应该使用 SonataUserBundle 吗?但是您已将其标签添加到此问题中?请更新您的问题以解释您现在如何构建菜单。如果您还没有,请查看 KnpMenuBundle。 我应该使用 SonataAdminBundle,但不要使用 SonataUserBundle 对不起,你是对的。但是你现在如何构建你的菜单呢? 我通过服务构建我的菜单 服务? KnpMenu? 【参考方案1】:app/config/config.yml
sonata_admin:
dashboard:
groups:
news:
label: ~
label_catalogue: ~
items:
- sonata.news.admin.post
- route: blog_home
label: Blog
roles: [ ROLE_FOO, ROLE_BAR ]
- route: blog_article
route_params: articleId: 3
label: Article
roles: [ ROLE_ADMIN, ROLE_SONATA_ADMIN]
link
【讨论】:
感谢您的回复,但我不喜欢创建其他路线,我喜欢使用奏鸣曲的路线, 这可能是正确的答案,但它只是代码。请解释你的答案。 我尝试使用 Sonata 为 AdminClass 生成的默认路由来测试这个答案,但我有这个错误:“预期数组项的参数“路由”和“标签”。以上是关于在没有 SonataUserBundle 的情况下访问 SonataAdminBundle 中的管理面板的主要内容,如果未能解决你的问题,请参考以下文章
SonataUserBundle 和 Symfony 3.4
在 Symfony/SonataUserBundle 设置中调用方法 setCurrentUri 失败
SonataUserBundle 覆盖 EditableRolesBuilder
Symfony2 / SonataUserBundle - 注册后自动登录