2011-09-04 3 views
0
if (!$this->getUser()->isAuthenticated()) 
{ 
    $this->redirect('login/index'); 
} 

다른 모듈의 많은 동작에이 코드를 추가하고 싶습니다. 각 액션에 대해이 코드를 복사해야합니까? 나는 한 가지를 만들지 만, 다른 모듈에있을 수 없다면, 한 가지를 만들고 싶습니다.symfony의 리팩터링 코드

//module 

class Invite 
public function executeIndex { 
sfConfig:get('redirect'); 
} 


class Home 
public function executeIndex { 
sfConfig:get('redirect'); 
} 

public function executeShow { 
    sfConfig:get('redirect'); 
} 

답변

1

심포니의 기본 제공 보안 필터를 사용할 수 있습니다.

하면, 전체 모듈을 고정하는 다음과 같은 내용으로 응용 프로그램/응용 프로그램/모듈/모듈/설정/security.yml를 만드는 당신의 희망 : 만 원하는 경우

all: 
    is_secure: true 

하면 show 액션이 안전하기 :

show: 
    is_secure: true 

결과 (예 : 성공)가 아닌 작업 이름 만 필요합니다.

sf (Doctrine) GuardPlugin과 같이 기본 보안 계층만으로 많은 작업을 수행 할 수 있습니다. 자세한 내용은 Gentle introduction to symfony, chapter 6, action security을 참조하십시오.