ZF2 ACL检查链路进入视图



我已经在我的bootstrap中设置了我的角色,资源和权限,并在我的布局中设置了一个基于此的导航菜单,这是有效的。

我现在要做的是创建一个具有编辑/删除链接的管理面板,如果当前登录的用户具有这些权限。例如,我可能有多个角色可以查看cms页面列表,但只有某些角色可以编辑cms页面,只有某些角色可以删除cms页面。

目前我正在检查用户是否登录:

<?php if($user = $this->identity()): ?>
    <?php if($user['role'] == 'admin'):?>
        <a href="/delete-url">Delete</a>
    <?php endif;?>
<?php endif;?>

如何从任意链接的视图中检查指定资源的当前用户角色的权限(如上所述)?

ACL视图助手被注入到布局中,所以要检查一个角色是否有访问资源的权限,我们可以调用$this->layout()->acl->isAllowed

在此代码片段中,我们检查用户是否已登录(如果未登录,则$this->identity()返回false,如果已登录,则返回详细信息数组),然后检查用户是否对资源具有'delete'权限:

<?php if($user = $this->identity()); //is logged in? ?>
    <?php if($this->layout()->acl->isAllowed($user['role'], $resource, 'delete')):?>
        <a href="/delete-url">Delete</a>
    <?php endif;?>
<?php endif;?>

isAllowed签名为isAllowed($role = null, $resource = null, $privilege = null)

相关内容

  • 没有找到相关文章

最新更新