2016-04-28 4 views
0

自分が投稿した投稿のみをCRUDすることを許可します。新しいミドルウェアを作成するのではなく、既存のミドルウェアを活用したいと思います。だから、Entrustのデフォルトミドルウェアをこの目的に合わせて拡張することはできますか?ユーザーがEntrustでレコードを所有しているかどうかを確認する方法は?

class PostsController extends Controller 
{ 
    public function __construct() 
    { 
     $this->middleware('auth'); 
     $this->middleware('role:blogger|owner'); // <-- implement additional logic in here 
    } 

    ... 
} 
+0

ここにはない回答/解決策がありましたか?私は同様の問題に直面しており、現在は標準のLaravel認可に移行することを考えています。 –

+0

私が覚えている限り、私はEntrustを使用して問題を処理する簡単な方法を見つけませんでした –

答えて

0
@if (Auth::id() === $user->id){ 
    Edit 
    } 

あなたが定義されている場合は、あなたのKernel.php

あなたの構築物においてprotected $routeMiddleware = [ 'auth' => '...' ]

:雄弁使用

public function __construct() 
{ 
    $this->middleware('auth', ['only' => ['create']]); 
} 

エントラストと一緒に:

$users = User::whereHas('roles' => function($q){ 
$q->where('name', 'my-user-role') 
})->get(); 
+0

ありがとうございます、しかし私はミドルウェアの中でチェックをしたい –

+0

@AlexanderLomiaちょうどそれがあなたが探しているものかどうか、答えを更新しました。 – score

+0

私はちょうどユーザの役割をチェックしたいと思う(**これはEntrustのデフォルトのミドルウェア**によって行われる)&&彼が修正しようとしている投稿を所有しているかどうかを確認する(**これは**ではない) –

関連する問題