Zend_Acl, Zend_Auth and Modules



我试图绕过Zend_Acl,但到目前为止还没有成功。我需要帮助,因为我真的卡住了。我的情况是这样的:

我有两个模块

  • 管理员

和两个角色

  • 管理

我设置了一个带有登录的Zend_Auth,该登录可以访问成员模块(成员和管理员角色)。两者都可以在这里做一些事情,但是admin角色也可以访问'administrators'模块,在那里可以做更多管理员的事情。

我设置了一个Acl,如下所示:

$acl = new Zend_Acl();
$acl->addRole(new Zend_Acl_Role('member'));
$acl->addRole(new Zend_Acl_Role('admin'), 'member');
$acl->add(new Zend_Acl_Resource('members'));
$acl->add(new Zend_Acl_Resource('administrators'), 'members');
$acl->allow('member', 'members'); 
$acl->allow('admin',  'administrators');

$registry = Zend_Registry::getInstance();
$registry->set('acl', $acl);

我已经保存了这个文件,我在index.php页面中调用它。

假设到目前为止我所做的是正确的,我的问题是下一步该做什么?这是我第一次处理Acl,老实说,我对所有的工作都感到有点困惑。你能帮帮我吗?非常感谢。

您已经构造了ACL对象。您现在需要使用它,每次您都需要检查当前用户是否可以访问其中一个资源。

为此,需要从注册中心检索ACL对象:

$acl = Zend_Registry::get('acl');

然后查询:

if ($acl->isAllowed($yourUser, 'members')) {
  // Do the job
} else {
  // some message or redirection
}

您可以在Zend_Acl文档中查看更多详细信息。

希望有帮助,

相关内容

  • 没有找到相关文章

最新更新