我尝试通过删除他的角色(拒绝访问用户ROLE_MEMBER ),在这里我access_control在security.yaml文件:

access_control:
    - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
    #- { path: ^/register, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
    - { path: ^/admin/users, roles: ROLE_SUPER_ADMIN }
    - { path: ^/admin, roles: ROLE_ADMIN }
    - { path: ^/%locale%/.+/(edit|delete|add|request|accept|deny), roles: ROLE_MEMBER }

它似乎不起作用。 例如,用户仍然可以访问http://localhost:8000/fr/blog/edit/13并且当我在模板中显示这样的角色时:

{% for role in app.user.roles %}
    {{ role }}
{% endfor %}

我没有得到ROLE_MEMBER所以它被很好地删除了。 事实是我必须再次登录才能看到access_control工作。

我想知道用户存储在哪里(如该问题中提到的(答案的第 1 点) )以及如何在不重新登录的情况下生效?

  ask by simslay translate from so

本文未有回复,本站智能推荐:

1回复

具有数据库存储角色和FOSUserBundle的Symfony2安全系统(access_control和security.context)

我正在使用类似于http://blog.jmoz.co.uk/symfony2-fosuserbundle-role-entities的解决方案 因此,我有一个实现RoleInterface的Role实体,还有一个修改后的User实体,该实体设置为与Roles具有ManyToMany关系。
2回复

Symfony 3安全-Access_control不适用于一种路由

我目前正在使用PDF生成器,但是访问URL时遇到问题。 任何人都应该能够下载PDF。 在我的security.yml中,我目前有: 我希望人们可以访问以下网址: /admin/maintenance/pdf/{id} 因此,我添加了以下行: 但是,当我没有登录时,我
2回复

Symfony 5:方法注释上的@IsGranted 对继承的角色不起作用

我(显然)搜索了类似的问题,但我的都不是。 这是我的情况: 我创建了一个自定义角色: ROLE_SUPER_ADMIN 我的实际用户是admin ,他唯一的角色是ROLE_SUPER_ADMIN 角色ROLE_SUPER_ADMIN继承了ROLE_ADMIN (见下文) 我正在尝
1回复

角色更改后 Symfony 用户注销

更改用户角色(在数据库中或通过代码)时,用户会自动注销。 有没有办法防止这种行为? 使用 Symfony 5.1.2
1回复

没有任何角色的Symfony安全用户

我在knplabs页面上查看了symfony安全动态角色说明 。 它说:“第二,关于角色,我们只需要遵循一条规则:每个用户必须至少拥有一个角色。否则,就会发生奇怪的事情。” 没有人确切知道对没有角色的用户会发生什么情况吗? 我认为他们将只能访问需要此类权限的页面。 但是文字听起来好像
1回复

有没有办法从Symfony中具有特定子角色的用户中删除所有角色?

我正在使用FosUserBundle,它提供了可以删除角色的功能。 一切都很好,但是我的主要问题是我想通过特定的子角色删除该角色。 我在security.yml中的层次结构如下所示: 如您所见,PLUS,EXTRA和BASIC订户都是订户,因此我给了他们一个子角色“ ROLE_
1回复

symfony2 FOSUserBundle将角色与用户分离

我有一个可以将用户链接到多家公司的应用程序。 与公司的manyToMany关系是一个称为Associate的杰出实体。 我想赋予该关联实体与我的FOSUserBundle用户实体完全相同的角色功能。 重要提示:如果用户具有一个公司的role_manager,则不应授予该用户访问他所属的
1回复

Symfony 2中的角色分配

我尝试在控制器中为用户分配角色。 例如,在数据库中,我得到以下结果a:1:{i:0;s:11:"ROLE_DRIVER";} ,但是当我在应用程序中的某个位置尝试执行此操作 我总是假的。 在事件探查器中,我看到当前用户具有ROLE_USER而不是_DRIVER 。 我的问题在哪里?