【问题标题】:What are role providers?什么是角色提供者?
【发布时间】:2015-04-11 03:03:33
【问题描述】:

如何使用 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']
                ]
            ]
        ]
    ]
];

【问题讨论】:

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


    【解决方案1】:

    Here you can read about role providers

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

    每个身份都有一个IdentityInterface (link),它还有一个getRoles 方法。这将返回一个roleNames 数组,该数组将映射到RolesProvider 中的角色以了解权限/特权。

    然后您可以找出当前用户(身份)被允许做什么。

    【讨论】:

    • 我了解角色并设置了我的防护拦截器(基于我在数据库中设置的用户角色)。在我目前的情况下,每个用户都有一个角色,我为每种角色类型开发了模块。它目前的工作原理是“foo 角色”无法访问“栏模块”。但是,当重新阅读文档时,我似乎需要角色提供者和防护拦截器。你能扩展上面的语法吗? “文章”是控制器还是动作?
    • 还是这些基本权限?例如,如果客人有“article.read”,他们只能从数据库中读取,而不能写入或编辑记录?
    • @Matt 我认为权限是否映射到控制器或操作或其他完全取决于您。在这种情况下,我认为该示例适用于资源控制器 (article) 和控制器内的操作 (deleteeditarchiveread)。
    • 我想我不清楚“文章”的使用或示例代码的设置方式。以相册为例,下面的内容是否允许访客用户阅读相册模块? (不允许他们创建、保存、编辑或删除记录):'guest' => ['permissions' => ['album.read'] ]
    • 它似乎不起作用。当我使用 'guest' => [ 'permissions' => ['phone.edit'] ] 它似乎没有做任何事情。我可以使用或不使用代码访问操作
    猜你喜欢
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    • 2013-10-21
    • 2017-07-26
    相关资源
    最近更新 更多