如何管理用户'访问ZF2中其他用户的项目?

时间:2016-05-18 09:29:37

标签: php zend-framework2 authorization acl zend-acl

我使用受this video tutorial启发的简单ACL。 acl.global.php的结构类似于

return [
    'acl' => [
        'roles' => [
            'guest' => null,
            'member' => 'guest',
            'admin' => 'member'
        ],
        'resources' => [
            'allow' => [
                'Application\Controller\Index' => ['all' => 'member'],
                'Application\Controller\Error' => ['all' => 'member'],
                'Item\Controller\Process' => [
                    'index' => 'member',
                    'create' => 'member',
                    'showItem' => 'member', // website.tld/item/:id
                    'showList' => 'member' // website.tld/list-items
                ]
            ]
        ],
        'redirect_route' => [
            'params' => [],
            'options' => ['name' => 'error403']
        ]
    ]
];

有一个Authorization\Acl\Acl类,它扩展了Zend\Permissions\Acl\Acl并添加了使用上面配置文件中的数据设置对象的功能。

第三个也是最后一个演员是Authorization\Module类。在route事件侦听器中添加了ACL处理,在此侦听器方法if (! $acl->isAllowed($role, $controller, $action))中,用户获取了403 HTTP状态代码和相应视图。

现在我想要另外限制用户'访问项目(文章,订单,评论等)。如果用户是其所有者/作者,则用户应该只能看到itemshowItemAction)的详细视图。如何将这种逻辑集成到ACL中?

0 个答案:

没有答案