SonataAdmin允许不同ROLE用户看到不同菜单

在使用SonataAdminBundle时,你希望让不同权限的用户显示不同的菜单,例如你有一个微商,新闻管理人员只能够管理新闻,配送人员只能看到相关配送的功能。

注意:此内容不包括ACL权限,也就是说用户虽然看不到不相关的菜单,但是他如果知道url路径他还是可以浏览并管理页面的,如果你有严格要求,你还需要配置ACL,否则会给安全带来隐患。

方法很简单:

你只需要在config.yml的sonata配置:

我们定义了两个groups。一个是网站中的联系信息管理和一个新闻管理,允许ROLE_ADMIN_CONTENT和ROLE_SUPER_ADMIN访问。

实例中的(contactus和news) : 自定义不要重复sonata作为识别符

label: 你定义控制面板区块的标题名称(例如 news 的label为新闻)

items:很重要是你自己定义的admin类,也就是你在AppBundle\Resources\config\admin.xml中定义的服务id,已新闻为例

roles: 你上面的配置允许什么角色访问呢。ROLE_SUPER_ADMIN是你必须要加入的否则他不会显示左侧菜单。

 

发表评论