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

如何在Symfony2中创建和注册新角色,symfony,user-roles,Symfony,User Roles,我从官员那里看到,除了“经典”角色(即角色用户、角色管理员等)之外,还可以定义新角色 如何定义新角色并将其注册到Symfony2应用程序,以便在security.yml中创建角色层次结构 对不起,打扰了大家!我认为答案很简单。事实上,用role\uuu开始使用新角色似乎就足够了。 例如,可以说ROLE\u NEWS\u AUTHOR只允许具有该角色的人能够在网站中插入新闻 谢谢。确保您可以简单地添加任何以ROLE\u SOMEROLE.开头的角色。在security.yml文件中,有两个主要部分

我从官员那里看到,除了“经典”角色(即角色用户、角色管理员等)之外,还可以定义新角色

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

对不起,打扰了大家!我认为答案很简单。事实上,用role\uuu开始使用新角色似乎就足够了。 例如,可以说ROLE\u NEWS\u AUTHOR只允许具有该角色的人能够在网站中插入新闻


谢谢。

确保您可以简单地添加任何以ROLE\u SOMEROLE.开头的角色。在security.yml文件中,有两个主要部分1.限制访问2。哪些成员可以访问

a。访问控制:它限制模式并指定可以访问的角色。 Brole_hierarchy:这里是role的层次结构,对于下面的示例,管理员用户(role_Admin)有role_user、role_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]
在控制器中,您可以检查角色

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
}
希望这对你有帮助。
愉快的编码。

感谢您提供的附加信息。还要注意,角色的名称应始终以“ROLE_u”开头,否则Symfony将无法识别它们。