视图中的 ZF2 ACL 检查 link
ZF2 ACL check link in view
我已经在我的 bootstrap 中设置了我的角色、资源和权限,并且在我的布局中基于此设置了一个导航菜单,这很有效。
我现在尝试做的是创建一个管理面板,如果当前登录的用户具有这些权限,则可以编辑/删除 links。例如我可能有多个可以查看 cms 页面列表的角色,但只有某些角色可以编辑 cms 页面,并且只有某些角色可以删除 cms 页面。
目前我只是在检查用户是否登录:
<?php if($user = $this->identity()): ?>
<?php if($user['role'] == 'admin'):?>
<a href="/delete-url">Delete</a>
<?php endif;?>
<?php endif;?>
如何从任意link(如上)的视图中检查当前用户角色对指定资源的权限?
ACL 视图助手被注入到布局中,因此要检查角色是否有权访问资源,我们可以调用 $this->layout()->acl->isAllowed
。
在此代码段中,我们检查用户是否已登录($this->identity()
returns 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)
我已经在我的 bootstrap 中设置了我的角色、资源和权限,并且在我的布局中基于此设置了一个导航菜单,这很有效。
我现在尝试做的是创建一个管理面板,如果当前登录的用户具有这些权限,则可以编辑/删除 links。例如我可能有多个可以查看 cms 页面列表的角色,但只有某些角色可以编辑 cms 页面,并且只有某些角色可以删除 cms 页面。
目前我只是在检查用户是否登录:
<?php if($user = $this->identity()): ?>
<?php if($user['role'] == 'admin'):?>
<a href="/delete-url">Delete</a>
<?php endif;?>
<?php endif;?>
如何从任意link(如上)的视图中检查当前用户角色对指定资源的权限?
ACL 视图助手被注入到布局中,因此要检查角色是否有权访问资源,我们可以调用 $this->layout()->acl->isAllowed
。
在此代码段中,我们检查用户是否已登录($this->identity()
returns 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)