Silex是否支持自定义用户角色

时间:2015-08-31 18:07:16

标签: php symfony authentication silex

过去几周我和Silex一直在玩,我即将开始一个重要的垫脚石。身份验证总是给我带来一些麻烦。

过去几天我一直在查看文件/示例,我似乎找不到任何我想要的答案。

我可以告诉Silex支持ROLE_ADMIN和ROLE_USER,但我没有看到任何ROLE_SUPER_ADMIN。是否可以修改用户提供程序/接口来处理这个额外的角色,如果可以,我可以在哪里找到适当的文档。

1 个答案:

答案 0 :(得分:3)

我认为角色“大多数”是随意的,因为你可以定义你想要的任何角色(例如:ROLE_AWESOME_USER‍‍‍等...)但ROLE_USERROLE_ADMIN似乎是在Symfony测试中引用,以及核心UserInterface.php类。

Silex documentation covering security应该拥有您需要的大部分内容。在this so question here

中还有一个很好的防火墙设置示例

这是我当前的默认防火墙配置:

'security.firewalls' => array(
    'main' => array(
        'pattern' => '^/',
        'anonymous' => true,
        'form' => array(
            'login_path' => '/login',
            'check_path' => '/login_check',
            'username_parameter' => 'form[username]',
            'password_parameter' => 'form[password]',
            'form_login' => array(
                'csrf_provider' => 'form.csrf_provider',
            ),
        ),
        'logout' => array('logout_path' => '/logout'),
        'users' => array(
            'username' => array(
                '%security.role%',
                '%security.password%',
            ),
        ),
    ),
),
'security.role_hierarchy' => array(
    'ROLE_USER' => array(),
    'ROLE_ADMIN' => array('ROLE_USER'),
    'ROLE_SUPER_ADMIN' => array('ROLE_USER','ROLE_ADMIN','ROLE_ALLOWED_TO_SWITCH'),
),
'security.access_rules' => array(
    array('^/user', 'ROLE_USER'),
    array('^/admin', 'ROLE_ADMIN'),
    array('^/root', 'ROLE_SUPER_ADMIN'),
),