gpt4 book ai didi

Symfony2 : How to display admin-account name while impersonating user-account?

转载 作者:行者123 更新时间:2023-12-04 20:17:29 26 4
gpt4 key购买 nike

我想显示类似的东西:

案例一:“以用户身份登录”

@ UserName [ logout ]



这里没有问题,我只是这样做:

@ {{ app.user.username}} [ 注销 ]

案例2:“以管理员身份登录”

@ AdminName [ logout ]



在这里同样有效:

@ {{ app.user.username}} [ 注销 ]

案例 3:“以 ADMIN 身份登录冒充用户”

AdminName @ UserName [ return ]



现在这是一个问题:

{{ ??..这里是什么..??? }} @ {{ app.user.username}} [ return ]

这是我所知道的唯一解决方案......显示用户名的 sipmle 似乎有很多代码:/
{# iterating through user roles to find ROLE_PREVIOUS_ADMIN #}
{% for role in app.security.token.roles %}
{% if role.source is defined %}
{{ role.source.user.username }}
{% endif %}
{% endfor %}
@ {{ app.user.username }} [ <a href="{{ (app.request.getRequestUri ~ '?_switch_user=_exit') }}">return</a> ]

还有其他方法吗? 我需要一个纯 TWIG 解决方案->这应该是我的主要 Twig 模板的一部分(由所有其他模板扩展)->我不能将 Controller 代码添加到所有操作,只是为了显示用户名。

最佳答案

有了你上面提出的想法,..你能不能只创建一个包含你的 Twig 模板中的逻辑的自定义 Twig 扩展,这样你就可以调用 myCustomTwigFunction在您的 Twig 模板中,它将输出原始用户名?

http://symfony.com/doc/current/cookbook/templating/twig_extension.html有关自定义 Twig 扩展的更多信息

您在 Twig 扩展文件中的代码将是...

$roles = $this->container->get('security.context')->getToken()->getRoles();
foreach ($roles as $role) {
if (method_exists($role, 'getSource')) {
return ($role->getSource()->getUser()->getUsername());
}
}

其中 $container 是 DI Container 在您的 twig 扩展类上的类变量

关于Symfony2 : How to display admin-account name while impersonating user-account?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10430244/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com