2012-05-13 1 views
0

버그가 있습니다. 실제로 이것은주의 사항이지만 여전히 수정하고 싶습니다.젠드 프레임 워크의 액세스 제어

가 가 여기에 고정 얻을 수있는 방법

Notice: Trying to get property of non-object in C:\Zend\Apache2\htdocs\hotelrwanda\application\plugin\AccessCheck.php on line 18 내 스크립트

:

public function preDispatch(Zend_Controller_Request_Abstract $request) { 

     $resource = $request->getControllerName(); 
     $action = $request->getActionName(); 

     $identity = $this->_auth->getStorage()->read(); 
     $role = $identity->role; 


     if(!$this->_acl->isAllowed($role, $resource, $action)){ 
      $request->setControllerName('users') 
        ->setActionName('login'); 
     } 
    } 

라인 : (18)는 내가 null role와 함께 페이지에 액세스하려고 생각하면

는,이 메시지를 보여주고있다 이 줄은 : $role = $identity->role;

+0

역할이 올바르지 않습니다. Zend_Auth에서 그 역할이 신원의 일부로 저장되었다고 확신합니까? 신원 정보를 덤프하고 거기에 무엇이 있는지 확인하십시오. 역할을 세션에 올바르게 저장하지 못할 수도 있습니다. 속성이 유효하지 않은 이유를 확인하려면 ID가 저장소에 저장되는 코드를 확인해야합니다. – RockyFord

+0

아니요, 아무 것도 추가하지 않았습니다. 튜토리얼을 기반으로하기 때문에 아무 것도 없습니다. 너는 나에게 그걸하는 법을 보여 줄 수 있니? – Akram

+0

사실 'null'이라고 불렀지? 그렇다면 그것을 변경하십시오. 당신은 다르게 문제를 겪을 것입니다. – vascowhite

답변

3

여기서 '게스트'가 기본 역할을합니다. 원하는 이름을 지정할 수 있지만 acl에이 역할을 추가하고 이에 따라이 역할에 대한 권한을 부여해야합니다.

+0

게스트는 null 값을 가져야합니다. 게스트를 선언하면 시스템에서 로그인을 요청합니다. – Akram

+0

게스트를 null로 정의 할 수 있습니까? – Akram

+0

시스템은 사용자에게 로그인을 요청합니다 주어진 리소스는 게스트 역할에 허용되지 않습니다. acl을 통해 쉽게 관리 할 수 ​​있습니다. 여기서 role guest는 null처럼 행동하지만 정의되지 않은 역할의 액세스 수준을 정의 할 수있는 기회를 제공합니다. –