Laravel DataTables查询和Entrust

时间:2016-12-20 10:06:07

标签: laravel datatables laravel-5.3 entrust

我正在使用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);
    }

1 个答案:

答案 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

了解政策