在Laravel中基于用户角色限制数据访问

时间:2018-06-25 07:05:09

标签: php laravel eloquent

我有以下情况: 我有员工角色,该角色只能添加和编辑自己的数据。还有一个经理角色,可以查看所有员工的数据。 数据存储在数据库中。在这种情况下,我应该在哪里进行验证。

1 个答案:

答案 0 :(得分:0)

您可以使用gates来检查用户是否有权执行某些操作。基于这些,您可以获取该用户允许的数据。

您可以像这样创建门:

Gate::define('access-all-records', function ($user) {
    return $user->isManager; // Or any other way to find this out
});

并获取以下数据:

if (Gate::allows('access-all-records')) 
{
    // Fetch all records
}
else
{
    // Fetch data for this user
}