2016-04-28 45 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的默认中间件**完成的)&&检查用户是否拥有他正在尝试修改的帖子(**这不是**) –

相关问题