gpt4 book ai didi

Symfony2 FosUserBundle 角色 ROLE_ADMIN

转载 作者:行者123 更新时间:2023-12-02 14:22:42 24 4
gpt4 key购买 nike

我遇到了这个问题。

已使用 FosUserBundle 和 FacebookBundle 配置我的 Sf2 环境。

我已经成功地进入了前端的一些仅限管理员的部分(意思是主持人的事情)。默认情况下,在我的项目中创建的每个用户都只有 ROLE_USER。

“主持人”只能通过拥有 ROLE_ADMIN 来访问。问题是,即使我通过“$user->addRole('ROLE_ADMIN') 添加角色,检查用户是否具有此角色也失败。如果用户拥有这种角色,我想展示一些东西,但我不能。

{% if is_granted('ROLE_ADMIN') %}”都不是, “$this->container->get('security.context')->isGranted('ROLE_ADMIN')”也没有成功。

每当涉及到 TWIG 时,我都会得到 FALSE 或什么都没有。

检查用户是否拥有 ROLE_USER 有效。

只是为了确保我添加了我的配置内容。

security:
encoders:
FOS\UserBundle\Model\UserInterface: sha512
Symfony\Component\Security\Core\User\User: plaintext

role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN

providers:
chain_provider:
chain:
providers: [fos_userbundle, my_fos_facebook_provider]
fos_userbundle:
id: user_provider
my_fos_facebook_provider:
id: my.facebook.user


firewalls:
public:
pattern: ^/
form_login:
login_path: /login
check_path: /login_check
provider: fos_userbundle
csrf_provider: form.csrf_provider
use_referer: true
fos_facebook:
app_url: "http://www.facebook.com/apps/application.php?id={{APPID}}"
server_url: "http://l.local/app_dev.php/"
login_path: /login
check_path: /login_fb_check
default_target_path: /
provider: my_fos_facebook_provider
use_referer: true
logout:
path: /logout
invalidate_session: false
anonymous: true

access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
- { path: ^/secured/.*, role: IS_AUTHENTICATED_FULLY }
- { path: ^/facebook/, role: [ROLE_FACEBOOK] }
- { path: ^/dodaj$, role: ROLE_USER }
- { path: ^/.*, role: [IS_AUTHENTICATED_ANONYMOUSLY] }

如果有人可以帮忙,请帮忙,因为我不知道该怎么办。

我总是检查以确定我的角色(“ROLE_ADMIN”)是否已添加到我的数据库中,事实上,确实如此。

最佳答案

该角色是 session 生成过程(连接、登录..)。所以你可以从安全上下文( session )中获取它。直接在 Twig 模板中或从其他地方的 securityContext 对象:

在twig模板中使用is_granted('ROLE_ADMIN')

在 Controller (具有安全上下文)中使用 $securityContext->isGranted('ROLE_ADMIN')

角色变更后不要忘记重新签名。

关于Symfony2 FosUserBundle 角色 ROLE_ADMIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23197588/

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