Sonata admin-bundle - 没有注销导航栏
Posted
技术标签:
【中文标题】Sonata admin-bundle - 没有注销导航栏【英文标题】:Sonata admin-bundle - haven't logout nav bar 【发布时间】:2017-08-05 09:55:40 【问题描述】:我已经安装了带有 User-bundle 和 FOSUserBundle 的 Sonata-admin-bundle 3.x。大多数情况下,所有这些东西都工作得很好,但在管理面板中,注销按钮不见了。注销按钮显示在 DEV 环境的页脚中,但不在 PROD 中。任何人都知道如何将注销按钮添加到右上角的上方导航栏?有人能帮我吗 ?
% block user_block %
% if app.user %
% set _bg_class = "bg-light-blue" %
% set _logout_uri = url('sonata_user_admin_security_logout') %
% set _logout_text = 'user_block_logout'|trans(, 'SonataUserBundle') %
% set _profile_uri = sonata_user.userAdmin.isGranted('EDIT', app.user) ? sonata_user.userAdmin.generateUrl('edit', id: sonata_user.userAdmin.id(app.user)) : sonata_user.userAdmin.generateUrl('show', id: sonata_user.userAdmin.id(app.user)) %
% set _profile_text = 'user_block_profile'|trans(, 'SonataUserBundle') %
% set _user_image = sonata_user.defaultAvatar ? asset(sonata_user.defaultAvatar) : null %
# Customize this with your profile picture implementation, see below for example #
#% set _user_image = app.user.profilePicture|default(asset(sonata_user.defaultAvatar)) %#
% if is_granted('ROLE_PREVIOUS_ADMIN') and sonata_user.impersonating %
% set _bg_class = "bg-light-green" %
% set _logout_uri = url(sonata_user.impersonating.route, sonata_user.impersonating.parameters| merge('_switch_user': '_exit')) %
% set _logout_text = 'switch_user_exit'|trans(, 'SonataUserBundle') %
% endif %
<li class="user-header _bg_class ">
% if _user_image %
<img src=" _user_image " class="img-circle" />
% endif %
<p> app.user </p>
</li>
<li class="user-body">
</li><li class="user-footer">
<div class="pull-left">
<a href=" _profile_uri " class="btn btn-default btn-flat"><i class="fa fa-user"></i> _profile_text </a>
</div>
<div class="pull-right">
<a href=" _logout_uri " class="btn btn-default btn-flat"><i class="fa fa-sign-out fa-fw"></i> _logout_text </a>
</div>
</li>
% endif %
% endblock %
【问题讨论】:
在您的页面中,注销 uri 定义为<a href=" _logout_uri ">...</a>
。真正的网址是url('sonata_user_admin_security_logout')
。只需复制/粘贴到您需要的位置即可?
好的,感谢您的帮助 :) 但这不是我问题的关键。我只是必须自定义 user_block 但在 core-bundle 中。
【参考方案1】:
首先,您必须在配置中检查或设置奏鸣曲管理员角色(Sonata Admin Bundle Configuration Reference):
sonata_admin:
security:
role_admin: ROLE_SUPER_DUPER_ADMIN
默认为ROLE_SONATA_ADMIN
。
那别忘了更新security.yaml
中的角色层次,给用户设置对应的角色。
【讨论】:
【参考方案2】:要查看注销按钮,您需要分配角色
ROLE_SONATA_ADMIN
给用户。
【讨论】:
【参考方案3】:确保您已将角色 ROLE_ADMIN
分配给您的用户,例如在您的security.yml
中他的角色层次结构中。
我遇到了完全相同的问题,这解决了它。
【讨论】:
以上是关于Sonata admin-bundle - 没有注销导航栏的主要内容,如果未能解决你的问题,请参考以下文章
sonata AdminBlockServiceInterface 弃用,以明确安装 symfony 2.8 + sonata 3.10
Sonata Admin 覆盖模板 form_admin_fields.html.twig
依赖问题作曲家[奏鸣曲管理员; SonataDoctrineORMAdminBundle]
如何使用 admin-bundle 处理 Symfony 4 中的 perPageOptions 弃用?
Symfony 4 + Sonata + Sonata Doctrine ORM Admin Bundle:错误:没有要处理的元数据类
有没有办法确定 Sonata\AdminBundle\Admin\Admin::configureFormFields() 中的当前操作(创建或编辑)?