在我的管理模塊中,我有一個名爲電子郵件的控制器,我希望大多數操作只能通過登錄管理員用戶訪問。不過,我想要一個行動,任何人都可以訪問。 (這是一個電子郵件功能,將通過URL遠程觸發。)。目前我使用Zend_Auth的與Zend_Acl裏是這樣的:Zend - 控制器/操作ACL
if ($request->getModuleName() == 'admin') {
// access resources (controllers)
$acl->addResource('index');
$acl->addResource('reports');
$acl->addResource('email');
$acl->addResource('error');
// access roles
$acl->addRole(new Zend_Acl_Role('visitor'));
$acl->addRole(new Zend_Acl_Role('user'));
$acl->addRole(new Zend_Acl_Role('admin'));
// access rules
$acl->deny('visitor');
$acl->deny('user');
$acl->allow('admin');
$resouce = $request->getControllerName();
$action = $request->getActionName();
$identity = $auth->getStorage()->read();
if (is_object($identity)) {
$role = $identity->role;
} else {
$role = 'visitor';
}
if (!$acl->isAllowed($role, $resouce, $action)) {
$request->setModuleName('default')
->setControllerName('auth')
->setActionName('login');
}
}
如何修改上面的代碼,讓「客人」來/管理/電子郵件/進程的行動?
此外Zend Framework的官方文檔,如果一個函數然後調用尚未明確允許的其他保護功能,它會允許這樣做? – Owen
是的,'isAllowed'檢查已經被執行。 – Ilians