Php Zend Framework 1 ACL:允许全部和拒绝部分 问题

Php Zend Framework 1 ACL:允许全部和拒绝部分 问题,php,zend-framework,Php,Zend Framework,嗨,我是Zend Framework 1的新手(我知道有一个版本2,但我们需要为这个项目使用版本1),所以不知道这是不是一个愚蠢的问题。除此之外,我发现很难找到关于在中注册和登录的好文档,我设法使一个具有ACL和Auth的系统在atm中正常工作 我只是想知道我的ACL是否做得对。 这就是我的班级现在的样子: 类bckstg_Acl扩展了Zend_Acl{ 公共函数构造() { 问题: 我注意到,如果我不向资源中添加新的控制器,那么三种用户类型(来宾、用户或管理员)都不会添加可以查看页面。但我


嗨,我是Zend Framework 1的新手(我知道有一个版本2,但我们需要为这个项目使用版本1),所以不知道这是不是一个愚蠢的问题。除此之外,我发现很难找到关于在中注册和登录的好文档,我设法使一个具有ACL和Auth的系统在atm中正常工作

我只是想知道我的ACL是否做得对。 这就是我的班级现在的样子:

类bckstg_Acl扩展了Zend_Acl{ 公共函数构造() {


问题:

我注意到,如果我不向资源中添加新的控制器,那么三种用户类型(来宾、用户或管理员)都不会添加可以查看页面。但我想知道是否有一种方法可以说所有用户都可以查看所有内容?因为基本上我只需要拒绝来宾使用我的应用程序的“喜欢”系统,拒绝用户和来宾使用管理面板,除此之外,他们可以查看所有页面。

如果检测到特定的控制器或模块,您可以初始化ACL

我的方法是在前端控制器插件中询问我是否需要设置ACL,因此:

// Register ACL plugin if is admin module
if($request->getModuleName() == 'admin'){
    $auth    = Zend_Auth::getInstance();
    $acl     = new My_Acl_Acl();
    $front   = Zend_Controller_Front::getInstance();
    $front->registerPlugin(new My_Plugin_AclControl($auth, $acl));
}
对于rest网站(默认模块),从不要求ACL获得权限,仅针对管理模块


你在互联网上有很多文学作品,但这个博客在一开始对我帮助很大

谢谢,我以后会试试这个。我不知道你可以这样做!Thanx对于文学作品来说,也看到了一些有趣的东西!这非常棒!顺便说一句!如果有人需要这个:我用getControllerName来指控制器。再次感谢!我建议您为ZF打开自动完成,像NetBeans这样的IDE都有这个选项。
// Register ACL plugin if is admin module
if($request->getModuleName() == 'admin'){
    $auth    = Zend_Auth::getInstance();
    $acl     = new My_Acl_Acl();
    $front   = Zend_Controller_Front::getInstance();
    $front->registerPlugin(new My_Plugin_AclControl($auth, $acl));
}