Zend framework2 视图中的ZF2 ACL检查链接

Zend framework2 视图中的ZF2 ACL检查链接,zend-framework2,zend-acl,Zend Framework2,Zend Acl,我已经在我的引导程序中设置了我的角色、资源和权限,并且在我的布局中基于此设置了一个导航菜单,这很有效 我现在试图做的是创建一个管理面板,如果当前登录的用户具有这些权限,则该面板包含编辑/删除链接。e、 g.我可能有多个角色可以查看cms页面列表,但只有某些角色可以编辑cms页面,只有某些角色可以删除cms页面 目前我正在检查用户是否已登录: <?php if($user = $this->identity()): ?> <?php if($user['role']

我已经在我的引导程序中设置了我的角色、资源和权限,并且在我的布局中基于此设置了一个导航菜单,这很有效

我现在试图做的是创建一个管理面板,如果当前登录的用户具有这些权限,则该面板包含编辑/删除链接。e、 g.我可能有多个角色可以查看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
,如果登录,则返回一系列详细信息),然后检查用户是否具有资源的“删除”权限:

<?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
signature is
isAllowed($role=null,$resource=null,$privilege=null)
将ACL视图帮助器注入布局中,以便检查角色是否有权访问资源,我们可以调用
$this->layout()->ACL->isAllowed

在此代码段中,我们检查用户是否已登录(
$this->identity()
如果未登录,则返回
false
,如果登录,则返回一系列详细信息),然后检查用户是否具有资源的“删除”权限:

<?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)