我已经使用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" alt="Avatar" />
{% 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 %}
答案 0 :(得分:1)
确保您已将角色ROLE_ADMIN
分配给您的用户,例如在security.yml
中的角色层次结构中。
我有完全相同的问题,这解决了它。
答案 1 :(得分:1)
要查看注销按钮,您需要分配角色
ROLE_SONATA_ADMIN
对用户。
答案 2 :(得分:0)
首先,您必须检查或设置配置中的Sonata管理员角色(Sonata Admin Bundle Configuration Reference):
sonata_admin:
security:
role_admin: ROLE_SUPER_DUPER_ADMIN
默认情况下为ROLE_SONATA_ADMIN
。
然后不要忘记更新security.yaml
中的角色层次结构并将相应的角色设置给用户。