내 관리 모듈에 전자 메일 컨트롤러가 있는데 관리자 만 로그인하면 대부분의 작업에 액세스 할 수 있어야합니다. 그러나 나는 누구에게나 접근 할 수있는 하나의 행동을 원한다. (URL을 통해 원격으로 실행되는 이메일 기능입니다.) 순간 나는이 같은 Zend_Acl로 Zend_Auth 사용하고 있습니다 : 젠드 - 컨트롤러/액션 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');
}
}
어떻게/관리자/이메일/공정 행동 '방문자'할 수 있도록 위의 코드를 변경합니까?
에 젠드 프레임 워크 공식 문서를 참조 할 수 있습니다,이 허용됩니다? – Owen
예, isAllowed 검사가 이미 실행되었습니다. – Ilians