2012-08-06 3 views
2

내 사이트에는 직원 용 공개 섹션과 admin 용 백엔드 섹션이 있습니다. Employee와 Admin의 두 가지 모델을 사용합니다.cakephp 인증 구성 요소, 두 모델 사용

직원 로그인 및 관리자 로그인에 인증 구성 요소를 사용하고 싶습니다. 기본 사용자 모델 이외의 모델을 사용하도록 인증 구성 요소를 설정하는 방법을 알고 있습니다. 하지만 내가 인증 구성 요소 직원 인증 및 관리자 인증을위한 다른 두 가지 모델을 사용할 수 있습니까? admin_ 접두사 라우팅을 사용하고 있습니다.

이것이 가능합니까? 나는 찾았지만, Auth 구성 요소를 User 모델이 아닌 다른 모델을 사용하는 방법에 대한 자습서 만 검색했습니다.

알려 주시기 바랍니다.

편집

내가 관리자 로그인 및 직원 로그인에 대한 별도의 로그인 양식을 사용합니다. 둘 다 직원 컨트롤러를 사용하지만 별도의 작업을 수행합니다.

+0

사용자가 직원 또는 관리자로 로그인할지 여부를 확인하는 방법은 무엇입니까? 어떤 종류의 라디오 버튼을 사용하고 있습니까? –

+0

@ goose, 나는 또한이 문제에 직면 해있다. 만약 당신이 솔루션을했다면, 당신은 당신의 솔루션을 게시해야만 하는가? 나는 기다리고있다 ... –

답변

0

http://api.cakephp.org/class/auth-component

검사 속성 인증하고, 당신의 대답은있다!

이상 : http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html. 인증 처리기를 살펴보십시오! 여기

케이크 페이지에서 직접 예입니다

<?php 
// Basic setup 
$this->Auth->authenticate = array('Form'); 

// Pass settings in 
$this->Auth->authenticate = array(
'Form' => array('userModel' => 'Member'), 
'Basic' => array('userModel' => 'Member') 
); 

그냥 대신 양식 및 기본의 다른 뭔가를 넣고 당신이 직원 및 관리자를위한 두 개의 라디오 버튼을 사용하여 고려 좋은 모델

0

를 연결합니다. 그런 다음 login 메소드에 다음 코드를 사용할 수 있습니다.

function login() 
{  
    if ($this->request->is('post')) 
    { 
     $logged_in = false; 
     $login_type = $this->request->data['User']['login_type'] 
     if ($login_type == 'Admin') 
     { 
      $this->Auth->authenticate = array('Form' => array('userModel' => 'Admin'));  
     } 
     else //if ($login_type == 'Employee') 
     { 
      $this->Auth->authenticate = array('Form' => array('userModel' => 'Employee'));    
     } 
     $this->Auth->constructAuthenticate(); 
     if ($this->Auth->login()) 
     { 
      $logged_in = true;     
        /*.... Do what you want............*/ 
     } 
    } 
} 
+1

라디오 버튼을 사용하여 로그인 유형을 선택하지 않는다. 저는 직원과 관리자를 위해 별도의 로그인 양식을 사용합니다. 당신의 대답에서 알아낼 수있는 것부터, 나는이 논리를 분리하고 정상 로그인과 admin_login에 배치해야한다고 생각합니다. 권리? – Ivin

+0

절대적으로 두 가지 모델을 사용한다면'$ this-> Auth-> constructAuthenticate();를 사용하여 Auth 구성 요소를 재구성해야합니다. –

+0

두 작업에서 $ this-> Auth-> constructAuthenticate()를 사용 하시겠습니까? 불량으로 결과를 확인하고 게시하십시오. 감사! – Ivin

관련 문제