Zend_Auth가 대부분의 인증을 처리합니다. 이제 정체성을 기반으로 Zend_Acl_Role를 확인할 수 있습니다
$auth = Zend_Auth::getInstance();
if (!$auth->hasIdentity()) {
//call a custom login action helper to try login with GET-params
}
if ($auth->hasIdentity())
$identity = $auth->getIdentity();
//...
}
을 따라 뭔가를 사용하십시오. 나는 항상 각 사용자에 대해 새로운 역할을 만들고 사용자가 실제로 가지고있는 모든 일반 역할을 '상속'하도록합니다.
// specific user with $identity is given the generic roles staff and marketing
$acl->addRole(new Zend_Acl_Role('user'.$identity), array('staff', 'marketing'));
물론 데이터베이스에서 역할 배열을 검색 할 수 있습니다. 그런 다음 각 역할의 권한을 지정해야합니다. 이 정보를 하드 코딩하거나 데이터베이스에 저장할 수도 있습니다. 당신이 권리를 일부 클래스 (아마 MCV 모델) 내부의 정보에 따라 더 복잡한 액세스 제어가있는 경우
컨트롤러에서
$acl->allow('marketing',
array('newsletter', 'latest'),
array('publish', 'archive'));
이제이 클래스가 구현 한
$acl->isAllowed('user'.$identity, Zend_Acl_Resource ...)
을 확인할 수 있습니다 Zend_Acl_Resource_Interface. 그런 다음이 클래스를 Zend_Acl_Assertion의 매개 변수로 사용하고 거기에서 정보를 처리합니다.
cronjobs에 명령 줄 스크립트를 사용해야합니다. – arnaud576875
어떤 인증 체계를 사용하고 있습니까? 메시지 인증 코드 (예 : HMAC, VMAC)? 다른 것? – netcoder
현재 세션에 저장된 ID로 LDAP에 대해 인증 된 사용자 이름/비밀번호를 사용하고 있습니다. –