7

요청 클래스에 다음 코드를 사용하여 사용자가 업데이트를 수행 할 권한이 있는지 확인합니다.요청 클래스 HandlingAuthorization 특성에 대한 사용자 지정 메시지를 반환하는 메서드를 인증 할 수 있습니까?

HandlesAuthorization trait 기본적으로 기본 메시지를 제공합니다. 사용자 정의 메시지를 반환 할 수있는 방법이 있습니까? 나는 Request class에서 승인 방법을 볼 수 return boolean 값만 수 있습니다.

class UpdateRoleRequest extends Request 
{ 
    private $UserPermissionsSession; 

    public function __construct(IRole $Role) { 
     $this->UserPermissionsSession = new UserPermissionsSession(); 
    } 

    public function authorize() { 
     $UserID = \Auth::user()->UserID; 
     return $this->UserPermissionsSession->CheckPermissionExists($UserID); 
    } 

} 
+0

당신이 요청 failedAuthorization 방법을 구현할 수 있습니다

/** * Handle a failed authorization attempt. * * @return void * * @throws \Illuminate\Auth\Access\AuthorizationException */ protected function failedAuthorization() { throw new AuthorizationException('This action is unauthorized.'); } 

그래서 당신이 필요로하는 모든이 같은 예를 들어 당신의 UpdateRoleRequest 클래스에서이 메소드를 오버라이드 (override)하는 것입니다 – honarkhah

답변

2

나는 HandlesAuthorization 특성을 보지 말아야한다고 생각합니다. 요청 클래스에 failedAuthorization 메소드를 구현하면됩니다.

FormRequest 클래스에서 다음과 같이 정의되어 :

protected function failedAuthorization() 
{ 
    throw new \Illuminate\Auth\Access\AuthorizationException('User has to be an admin.'); 
}