php - laravel5.3如何兼容两套ACL权限管理?
本文介绍了php - laravel5.3如何兼容两套ACL权限管理?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
求指教,按照http://9iphp.com/web/laravel/... 这个教程,在一个项目中实现了前后端用户分开的两套ACL,就是现在/app/Providers/AuthServiceProvider.php 中,boot方法,该怎样判断用户是前端还是后端用户啊,根本没办法获取用户信息,auth也没办法获取,求指教怎么处理?谢谢
解决方案
最终自己解决了,因为有一个BaseContorller __construct方法,这里设计来限制用户单浏览器登录的,每次前置执行一下,然后判断用户的session_id和当前的session_id
在这里给用户
Auth::user()->isAdmin = false;
然后因为每次登录后,跳去首页或者任何页面,都会经过__construct方法,
在/app/Providers/AuthServiceProviders.php 的boot方法中,这样进行判断:
Gate::before(function($user) {
if (!$user->isAdmin) {
$permissions = \App\UserPermission::with('roles')->get();
} else {
$permissions = \App\Permission::with('roles')->get();
}
foreach ($permissions as $permission) {
Gate::define($permission->name, function($user) use ($permission) {
return $user->hasPermission($permission);
});
}
});
这样就去分开了两套ACL权限
这篇关于php - laravel5.3如何兼容两套ACL权限管理?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文