symfony - 如何在 Symfony2 中创建和注册新角色

标签 symfony user-roles

我从官方Symfony2 doc on Security看到的除了“经典”角色(即 ROLE_USER、ROLE_ADMIN 等)之外,还可以定义新角色。

我如何定义新角色并将它们注册到我的 Symfony2 应用程序以便在 security.yml 中创建角色层次结构?

抱歉打扰到大家了!我认为答案很简单。事实上,以开头的名字似乎足以开始使用一个新角色。角色_ .
例如,可以说 ROLE_NEWS_AUTHOR 只让具有该角色的人能够在网站中插入新闻。

谢谢。

最佳答案

当然你可以简单地添加任何以 ROLE_SOMEROLE 开头的角色。在 security.yml 文件中有两个主要部分 1.限制访问 2. 谁是成员可以访问

一种。 access_control:限制模式并指定可以访问的角色。
湾role_hierarchy:这里是角色的层次结构,对于下面的示例,管理员用户(ROLE_ADMIN)具有角色 ROLE_USER、ROLE_NEWS_AUTHOR。因此,他可以访问 USER 和 NEWS_AUTHOR 的所有页面。无论您可以提供什么层次结构。

access_control:
        - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }/login any one can access this pattern
        - { path: ^/admin/, roles: ROLE_ADMIN }//block all pattern /admin/anything*
        - { path: ^/news/, roles: ROLE_NEWS_AUTHOR } //block all pattern /news/anything*
role_hierarchy:
        ROLE_ADMIN: [ROLE_USER,ROLE_NEWS_AUTHOR]

在您的 Controller 中,您可以检查角色,
if(TRUE ===$this->get('security.context')->isGranted('ROLE_ADMIN') )
{
     // do something related to ADMIN
}
else if(TRUE ===$this->get('security.context')->isGranted('ROLE_NEWS_AUTHOR') )
{
    // do something related to News Editor
}

希望这对你有帮助。
快乐编码。

关于symfony - 如何在 Symfony2 中创建和注册新角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10276730/

相关文章:

c# - ASP.Net 核心 : Get User Roles with LinQ Select method

c# - 将所有用户及其角色放入表中 asp.net mvc

symfony - 带前缀的 FOSUserBundle 注销不起作用

mysql - Symfony Doctrine : Search in simple_array

Drupal:如何实现权限少于正常和自己的主题的 SECOND 管理员?

java - OSGi 用户管理服务用户对象

php - Symfony2 从具有多对多关系的倒置实体中获取对象

symfony - 如何在parameters.yml symfony2中转义 "%"

带有upload_files true但edit_post false的Wordpress自定义用户角色,我如何删除和编辑媒体?