2016-08-22 2 views
0

저는 CakePHP 3.2를 사용하여 판매자 패널을 개발하고 있습니다.cakephp는 사용자 상태에 따라 조치를 제한합니다.

모든 세부 정보 및 자격 증명을 저장할 테이블이 sellers이고 정수 유형에 status 열이 있습니다.

status 열이 ProductsController.php에서 sell 작용이 있습니다이

0 = Registered not approved 
1 = Approved 
2 = Canceled 

을 좋아 승인 판매자에게 표시 여부하는 데 사용됩니다.

나는 상태입니다 1. 인쇄 메시지 상태 ID에 따라 사용자가

1 : Sorry! Your account is not verified yet. 
2 : Sorry! Your account has been canceled. Contact Admin. 

같이 승인되지 않으면이 내가 sell 행동을 방지하기 위해 뭘하는지 만 판매자에게이 작업을 허용 할. 나는 ProductsController.php

public function beforeFilter(Event $event) 
    { 
     parent::beforeFilter($event); 

     if ($this->Auth->user('status') != 1) { 
      $this->Auth->deny(['sell']); 
     } 
    } 

beforeFilter()에 다음 코드를 추가하지만이 작동하지 않으며 sell 작업이 여전히 판매자에 액세스 할 수 있습니다.

+0

'$ this-> Auth-> user() [ 'status']' –

+0

이 작동하지 않아야합니다. @ JacekBBudzyski – Gaurav

+0

$ this-> Auth-> user()를 디버깅 할 수 있습니까? –

답변

0

당신은 'Controller.initialize' (기본 'Controller.startup')에 initialize()인증 구성 'checkAuthIn'을 변경해야합니다 documentation에 설명 된대로

$this->Auth->config('checkAuthIn', 'Controller.initialize'); 

beforeFilter()$this->Auth->user()을 사용합니다.