我正在使用Laravel 5.3和Laravel Datatables以及Entrust
在我的索引操作中,我显示数据表中的记录列表。现在我需要将委托纳入其中。如果用户是管理员,他们可以看到所有潜在客户。但是,如果用户是普通用户,则只能看到属于他们的记录。
我不确定如何处理此问题,我是否将此查询放在检查角色的if语句中,还是有更好的方法?
public function query()
{
$leads = Lead::query()
->select([
'leads.id as id',
'leads.parent_id as parent_id',
'statuses.name as status',
'leads.title as title',
'leads.first_name as first_name',
'leads.last_name as last_name',
'leads.opt_in as opt_in',
'leads.created_at as created_at',
'leads.user_id as user_id',
])
->leftJoin('statuses', 'leads.status_id', '=', 'statuses.id');
return $this->applyScopes($leads);
}
答案 0 :(得分:0)
太长了我不会使用Entrust,因为Laravel有政策。但是在你的问题上,我看到Entrust有方法
Auth::user()->can('permission-name');
您必须创建权限并保存到通过运行命令
创建的DB中php artisan entrust:migration
创建权限后,将其应用于用户,可能具有管理权限和普通用户权限
请参阅:https://github.com/Zizaco/entrust 希望我能帮忙。如果可以使用Entrust,让我们研究一下Laravel的政策,那就非常好了。在https://mattstauffer.co/blog/acl-access-control-list-authorization-in-laravel-5-1#policies
了解政策