【发布时间】:2019-07-04 01:06:42
【问题描述】:
我正在使用这种用户级别结构:
Company Owner
- Group Manager
-- Unit Manager
---Employee
我需要控制用户访问数据库中的数据。员工只能访问他存储的数据。单位经理也可以访问他自己的数据和他的员工的数据。组管理员可以访问整个组的数据。公司所有者可以访问所有内容。
我有一些这样的控制器:
class ClientController extends Controller
{
public function index()
{
return Client::all();
}
// ...
}
在 Laravel 中,在某些控制器中控制对数据(不是控制器)的访问的最佳实践是什么,但不是在所有控制器中?这是解决这个问题的好方法吗?
【问题讨论】:
-
使用角色和权限的概念。如果你想让自己更轻松,这里有一些适合你的包。 github.com/spatie/laravel-permission 和 github.com/Zizaco/entrust
-
很好的提示,但我怎么知道用户只能看到他存储的数据?
-
您可以在表格中创建
created_by或updated_by列以指示创建数据的人员..然后根据这些列检索数据。
标签: laravel laravel-5 data-access-layer laravel-middleware