Zend_Acl是否会限制访问其他模块的模型,也可以访问映射器类?

时间:2013-05-09 11:30:24

标签: php zend-framework zend-acl

我正在使用Zend Modular Application方法。我已经明智地设置了Zend_Acl模块。我已经在默认模块中设置了一个Mapper类Default_Model_AirlineMapper

class Default_Model_AirlineMapper extends Model_AbstractMapper {

    public static function fetchAll($columns = null) {

        $dbTableObj = new Default_Model_DbTable_Airline();      
        $select = $dbTableObj->select();

        if( is_array($columns) && sizeof($columns) > 0 ) $select->from($dbTableObj, $columns );


        return $dbTableObj->fetchAll( $select );
    }
}

现在我尝试从管理模块控制器(如

)访问此Default_Model_AirlineMapper
public function employeepreferredairlinesAction(){

        $dom_airlines = Default_Model_AirlineMapper::fetchAll(array('airline_id','airline_name'), null, array('airline_name asc'));
        $this->view->dom_airline_dd = Zend_Json::encode($dom_airlines);
}

我为

等默认模块设置了访问检查插件
class Default_Plugin_AccessCheck extends Zend_Controller_Plugin_Abstract {

    public function preDispatch(Zend_Controller_Request_Abstract $request) {

        if('default' === ($module = $request->getModuleName())){
            // Do acl check
        }else{
            // throw it to default login 
            $request->setModuleName('default')->setControllerName('index')->setActionName('login');
        }
    }
}

总之,当我尝试访问Default_Model_AirlineMapper::fetchAll()时,它会让我看到默认的模式登录页面,但是当我发表评论时,它可以正常工作。

这里发生了什么我没有得到。只有当默认模块Bootstrap.php被执行时才有可能,但我正在工作并从管理模块访问。请解释一下。

0 个答案:

没有答案