我有一个网络项目,有3种类型的用户,比如root admin,super admin和kitchen admin。每个用户或角色都有不同的功能:root admin将创建超级管理员和其他小功能,超级管理员创建厨房管理员和其他功能的方式相同,厨房管理员有自己的功能说处理订单。
我想知道为每个用户设置单独的laravel设置是否是一个好主意,或者所有这些用户都可以在一个laravel设置中开发?
由于我是laravel的新人,因此这方面的一个小小的领导将是一个很大的帮助。
答案 0 :(得分:0)
您可以为每个用户单独设置。那会有用。但是也很难维护,你可能需要写3次函数(登录,注销,CRUD等)。
但是,您可以使用授权创建单个项目。 Laravel开箱即用,为您提供了一种通过CompletableFuture.runAsync( <thread A> )
.thenRun( <stuff that should be done after A completes> );
授权和限制某些操作或通过Gate
限制模型的简便方法。您还可以通过Policy
限制网址。看到你有3种不同的限制动作的方法。
我的个人偏好是Middleware
,因为它与模型绑定。您有一个权限列表,并为每个角色授予其权限,例如:'create_sys_admin'。然后将此权限链接到“root_admin”角色。所以在你的政策中你可以写:
Policy
定义策略后,我们可以检查控制器中的propser权限。在控制器的任何功能中,您始终可以检查适当的权限
public function createSysAdmin(User $user) {
return $user->role->permissions->contains('create_sys_admin');
}
这只是一种方式。正如我之前所说,你也有盖茨和中间件。在此处阅读更多内容:https://laravel.com/docs/5.4/authorization
如果您想要已经制作的东西,可以使用这个包:https://github.com/Zizaco/entrust。