2017-03-05 2 views
0

관리자와 사용자가 둘 다있을 수있는 페이지를 만들고 싶습니다. 그러나 페이지의 한쪽면에서만 관리자 만 볼 수 있으며 다른 쪽에서는 사용자와 관리자가 볼 수 있습니다.cakephp의 페이지에 관리자 전용으로 설정 3

나는이 기능

을 내 컨트롤러에 코드이 코드

$this->Auth->user(['role']['admin']); 

그것을 시도하고 이것이 내보기 코드

난 달성하기 위해 노력하고있는 무슨
if ($this->request->session()->read('Auth.User.role.admin')){ 

auth 구성 요소가 사용자의 역할을 확인하고 admin 인 경우 사용자에게 숨겨진 페이지 부분을 표시해야합니다.

내가

를 얻을 오류입니다

공지 사항 (8) : 정의되지 않은 인덱스 : 당신은 더 나은에서 행동의 승인을 처리 할 수 ​​

+0

if ($ this-> Auth-> user ([ 'role'] == "admin")와 같은 조건을 만들면됩니다. appController를 사용하면이 문제를 더 잘 처리 할 수 ​​있다고 생각합니다. –

+0

다음과 같은 오류를 얻을 AuthHelper가. –

+0

를 찾을 수 없습니다 그리고 문서에서 내가 인증 도우미 –

답변

1

관리자 [17 APP/컨트롤러 \ BestellenController.php 라인] AppController. 단지 관리자에게

public function isAuthorized($user) { 
    $action = $this->request->params['action']; // request action 
    if($action == "test") { 
     if($user['role'] == 'admin'){ 
      return true; 
     } else { 
      // this page is for admin only 
      echo 'You are not authorized to access the page.'; 
      // redirect('Somewhere'); 
     } 
    } 
} 

위의 기능은 간단하게 '테스트'행동 접근 : 당신의 AppController에서

이 그런 짓을. 컨트롤러의 모든 작업에 대해 동일한 작업을 수행하려면 컨트롤러도 확인하십시오.

그리고 당신은 단지 다음 특정 역할에 접근 할 뷰의 특정 부분을하고자하는 경우 :

$role = $this->request->session()->read('Auth.User.role'); 
if($role == "admin") { 
    // this is for admin 
} else { 
    // this is for other 
} 

을 그리고 난 당신이 사용자 테이블의 역할 필드가 있기를 바랍니다.

+0

를로드 한, 그 에 대한 예 : 일부 텍스트 블라 브라 블러 <-이 내용은 관리자에게만 표시되어야합니다. 일부 다른 텍스트 <- 사용자와 관리자에게 모두 표시되어야합니다. –

+0

뷰 파일에서 그렇게하고 싶습니까? –

+0

예 thats 정확히 무슨 뜻입니까? –