2010-12-08 2 views
0

젠드 문서 및 일부 게시물을 읽은 후 여기 어떻게 사용자 테이블에서 내 사용자 역할을 얻는 지 알 수 없습니다. 순간Zend_ACL 역할을 얻는 방법?

내가 AuthController이 같은 Zend_Auth를 사용

// Set authentication adapter and map ID and Cre. 
// only admins could log in here 
$adapter = new Zend_Auth_Adapter_DbTable($this->db, 
      'customers', 
      'login', 
      'password', 
      'MD5(?)'); 
$adapter->setIdentity($form->getValue('username')) 
    ->setCredential($form->getValue('password')); 

// Check if authentification is right 
$result = Zend_Auth::getInstance()->authenticate($adapter); 

if (!$result->isValid()) { 
    .. 
} 

그리고 나중에 결과에 따라서 Zend_Controller_Plugin과 경로를 통해 그것을 확인 :

if (Zend_Auth::getInstance()->hasIdentity()) { 
     return; 
} elseif ($request->getControllerName() == 'auth' || $request->getControllerName() == 'index') { 
     return; 
} else { 
     $request->setControllerName('index'); 
     $request->setActionName('index'); 
     return; 
} 

지금 나는를 변경하려면 경로는 사용자의 굴림에 따라 다릅니다. 사용자가 관리자 인 경우 AdminController에 연결할 수 있지만 내 사용자 테이블에서 역할을 어떻게 얻습니까? 열은 유형이라고 불리우며 역할을 나타내는 문자열 마녀를 포함합니다.

도와 주시면 감사하겠습니다.

인사말,

-lony

답변

1

Phil 씨 감사합니다.

나의 해결책을 위해서만. 사방에 입력하여

// fetches role and login name out of 
// user table and store it in auth session 
$data = $adapter->getResultRowObject(array(
        'role', 
        'username' 
       )); 
Zend_Auth::getInstance()->getStorage()->write($data); 

을 그리고 지금은 내 역할 (또는 사용자 이름)에 액세스 할 수 있습니다 : 나는 AuthController이 추가

$role = Zend_Auth::getInstance()->getIdentity()->role; 
관련 문제