我正在使用Laravel 5.3与Laravel DataTables和optrust
在我的索引操作上,我在数据表中显示了记录列表。现在,我需要将委托给它。如果用户是管理员,他们可以看到所有潜在客户。但是,如果用户是普通用户,则只能看到属于它们的记录。
我不确定如何处理,我是否将此查询放在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);
}
太久了,我不使用委托,因为Laravel有策略。但是在您的问题上,我看到委托有方法
Auth::user()->can('permission-name');
您必须创建权限并保存到DB中,该数据可以由Run Command
创建php artisan entrust:migration
创建许可后,将其应用于用户,它可能具有 admin 许可和普通用户许可
请在以下网址了解更多信息:https://github.com/zizaco/entrust希望我能提供帮助。如果可以使用委托,让我们研究Laravel的政策,这非常好。在https://mattstauffer.co/blog/acl-access-control-list-autorization-in-laravel-5-1#policies