7

私は、ユーザーが更新を実行する権限を持っているかどうかを確認するために、Requestクラスに以下のコードを用意しています。HandlesAuthorization特性のリクエストされたメッセージを返すRequestクラスのメソッドを認証できますか?

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

:ので、あなたが必要とするすべては、このように例えば、あなたのUpdateRoleRequestクラスでこのメソッドをオーバーライドすることである

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

honarkhah

答えて

2

私はあなたがHandlesAuthorization形質を見てはいけないと信じています。リクエストクラスにfailedAuthorizationメソッドを実装するだけです。 FormRequestクラスで

次のように定義されています:あなたはリクエストに応じてfailedAuthorizationメソッドを実装することができ

protected function failedAuthorization() 
{ 
    throw new \Illuminate\Auth\Access\AuthorizationException('User has to be an admin.'); 
} 
関連する問題