2015-02-05 2 views
1

사용자가 금지 된 영역에 액세스하려고 할 때 사용자가 로그인하지 못하도록하려면 해당 자격 증명이없는 경우 사용자가 로그인하지 못하도록해야합니다.비인가 영역에서 사용자 로그인 방지

나에게 조금 더 설명하자, 나는 프론트 엔드에 액세스 할 수 X 사용자 ROLE_USER, 사용자 X 해요 생각하지만 우리는 Y 수 있었다 사용자 YROLE_ADMIN, 사용자가 것처럼, 백엔드으로 로그인 할 수 없습니다 백엔드에 로그인하지만 프론트 엔드에는 로그인하지 마십시오. 나를 이해합니까? 내가 어떻게이 일을 할 수 있니?

답변

1

나는 'ROLE_ADMIN'역할을 가진 사용자 Adam이라고 가정 할 수 있습니다. 프론트 엔드에 로그인 할 수 없습니다.

if($this->get('security.context')->isGranted('ROLE_ADMIN')) 
       return new Response('You are granted to see this site.'); 
:이 코드를 추가해야합니다 당신이 BackendController을 보호하려면, 그래서

if($this->get('security.context')->isGranted('YOUR ROLE')) 
      return new Response('yea!'); 

과 'ROLE_ADMIN'사용자에게 로그인 보자

당신은 간단하게 당신의 컨트롤러에이 코드를 추가해야합니다

이 코드는 현재 사용자 (나)가 ROLE_ADMIN 역할을 가지고 있는지 확인합니다. 당신은 사용자가 'ROLE_USER을'이없는 을 'ROLE_ADMIN'를 가지고 있는지 확인하려면 단지 추가 :

$security = $this->get('security.context'); 
if($security->isGranted('ROLE_ADMIN') && !$security->isGranted('ROLE_USER')) 
        return new Response('You are not granted to see this site.'); 
관련 문제