什么是角色提供者?

时间:2015-02-10 21:51:42

标签: php database zend-framework zend-framework2 roles

如何使用zfc rbac角色提供程序?

我知道防护会阻止用户访问路由,但似乎我也需要角色提供程序。这些数据库权限是?在下面的示例中是' article'控制器和'之后的部分。'该控制器授予的许可?如何在适当的位置测试这些?非常感谢。

return [
    'zfc_rbac' => [
        'role_provider' => [
            'ZfcRbac\Role\InMemoryRoleProvider' => [
                'admin' => [
                    'permissions' => [
                        'article.delete',
                        'article.edit',
                        'article.archive',
                        'article.read'
                    ]
                ],
                'member' => [
                    'permissions' => [
                        'article.edit',
                        'article.archive',
                        'article.read'
                    ]
                ],
                'guest' => [
                    'permissions' => ['article.read']
                ]
            ]
        ]
    ]
];

1 个答案:

答案 0 :(得分:0)

Here you can read about role providers

在ZF-Rbac中,一个身份可以具有不同的角色,具有不同的权限/特权。要收集authorizationService的角色,您需要角色提供程序。它们将包含RoleProvicerInterface (link) getRoles方法,该方法应返回授权服务必须使用的角色。

每个标识都有一个IdentityInterface (link),它还有一个getRoles方法。这将返回一个roleNames数组,该数组将映射到RolesProvider中的角色,以查找有关权限/权限的信息。

然后,您可以找出当前用户(身份)可以执行的操作。