嗨,我有一个网络项目设置与Zend_Acl /基于角色的访问控制。
我的菜单表设置如下: id | INT(11) name | VARCHAR(50) access_level | VARCHAR(50)
目前,所有菜单的访问级别字段都设置为null。
在布局中:
$this->layout()->adminMenu = $this->action('render', 'menu', null, array('menu' => $this->adminMenuId));菜单控制器的渲染操作:
public function renderAction()
{
$menu = $this->_request->getParam('menu');
$mdlMenuItems = new Model_Menuitem();
$menuItems = $mdlMenuItems->getItemByMenu($menu);
if (count($menuItems) > 0)
{
foreach ($menuItems as $item)
{
$label = $item->label;
if(!empty($item->link))
{
$uri = $item->link;
}
else
{
$uri = '/page/' . $item->page_id;
}
$itemArray[] = array( 'label' => $label,
'uri' => $uri);
}
$container = new Zend_Navigation($itemArray);
$this->view->navigation()->setContainer($container);
}
}Acl详细信息:
$acl->addRole(new Zend_Acl_Role('guest'));
$acl->addRole(new Zend_Acl_Role('readonly'), 'guest');
$acl->addRole(new Zend_Acl_Role('administrator'), 'readonly');//设置访问规则$acl->allow(null,array('index','error'));
//guest can only read content and login
$acl->allow('guest', 'page', array('index', 'error'));
$acl->allow('guest', 'user', array('login'));
$acl->deny('guest', 'menu', array('render'));
$acl->allow('administrator', null);我应该采取哪些步骤来确保菜单不会为来宾呈现?
发布于 2013-10-21 17:49:31
您可以通过以下方式访问授权用户的身份
$auth = Zend_Auth::getInstance();
$identity = $auth->getIdentity();https://stackoverflow.com/questions/19491078
复制相似问题