2014-01-22 2 views
0

내가 CakePHP는 매우 새로운이 너무 친절하게 나와 함께 부담입니다 로그인합니다. 나는 작은 과제를 수행하고 있으며 그것에 많은 것들을 완료했지만 문제가 발생했습니다. 내 과제에는 두 가지 다른 사용자 유형이 있는데, 두 가지 다른 로그인이 필요하거나 하나의 로그인으로 리디렉션 될 수 있습니다. 사용자 모델, 컨트롤러 및 테이블 사용에 대한 공식 자습서를 읽었으나 그 문제는 한 사용자 유형에만 해당됩니다. 내 응용 프로그램이 열리 자마자 로그인 페이지가 표시되고 사용자 유형 (관리자 또는 직원)에 따라 해당 색인 페이지로 리디렉션됩니다. 직원 테이블과 관리 테이블을 만들었으며 둘 다 사용자 이름과 암호 필드를 포함합니다. 자습서는 사용자 테이블에 사용자 이름과 암호 필드가 있어야한다고 말하지만 이미이 두 필드에이 필드가 있으므로 사용자 테이블을 사용하고 싶지 않습니다. 그래서 사용자 테이블을 전혀 사용하지 않고 사용자 로그인과 인증을 위해 현재 테이블을 사용하는 것이 가능합니다. 지난 몇 시간 동안이 문제에 빠졌기 때문에 친절하게 안내합니다. 제공된 도움이나 안내에 대해 매우 감사 할 것입니다.CakePHP의 여러 사용자 유형은

답변

1

하나의 모델 (User) 만 사용할 수 있으며 type 필드의 값은 adminemploye 일 수 있습니다.

더 많은 테이블에서 같은 필드가되지 않습니다이 방법, 당신은 단지 하나의 로그인 양식을 가질 수있을 것이며, 사용자가 로그인 한 후, 당신은 오른쪽 페이지로 사용자를 리디렉션 할 수 있습니다. Auth 구성 요소에서

, 당신은 항상 현재 기록 된 사람이 무엇인지 사용자의 유형을 알고, 그래서 당신은 다른 컨트롤러에서 이것을 사용할 수 있습니다. 당신이 사용자 유형을 얻고 올바른 페이지로 리디렉션 할 수 있습니다, 그래서 여기에 사용자가 방금 로그인 한 후 dashboard 방법, 호출됩니다 -

AppController에서는

public $components = array(
    'Auth' => array(
     'loginAction' => array(
      'controller' => 'Users', 
      'action' => 'login' 
     ), 
     'loginRedirect' => array(
      'controller' => 'Users', 
      'action' => 'dashboard' 
     ), 
     'logoutRedirect' => array(
      'controller' => 'pages', 
      'action' => 'display', 
      'home' 
     ), 
     'authorize' => array('Controller') 
    ) 
); 

UsersController

가있을 수 있습니다.

+0

대답을 주셔서 감사합니다 나는 당신이 말하는하지만 loginRedirect 및 logutRedirect이 둘 중 하나를 사용자 정의 할 수 있습니다 내가 직원을 위해 그것을 정의 무엇을 얻을. 그러나 사용자 역할이 admin 인 경우에는 어떻게해야합니까? 그 조건을 정의하는 곳은 어디입니까? 두 개의 $ 구성 요소를 사용할 수 있습니까? 아니면 UsersController 페이지에서 정의해야합니까? 그걸 말해 줄 수 있니? IT가 정말 도움이 될 것입니다. – user3224207

1

당신의 논리는 매우 소리하지 않습니다. 관리자와 사용자가 동일한 사용자 이름을 사용하면 어떻게 될까요? 모든 사용자는 차별화 된 user_type_id 또는 동급의 동일한 테이블에 있어야합니다.

그러나 현재 구성표를 으로 설정하려면 동일한 페이지에 로그인해야하며 사용자 페이지로 리디렉션에 성공하면 실패하고 실패 할 경우 사용자로 로그인을 시도해야합니다. 관리자로 다시 시도하십시오. 실패한 경우 관리자 페이지로 리디렉션이 성공하면 두 경우 모두 사용자 이름/비밀번호가 유효하지 않음을 의미합니다. 최소한이 방법은 일부 종류의 기본 보안을 얻습니다.

+0

또는 단순한 role/role_id 필드. 팁 : [작은] (http://www.dereuromark.de/2011/12/18/tinyauth-the-fastest-and-easiest-authorization-for-cake2/) – mark