for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace App\Http\Middleware\Admin;
use App\Model\Admin\Menu;
use Closure;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Route;
class Authorization
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string
* @return mixed
*/
public function handle($request, Closure $next, $guard)
$user = Auth::guard($guard)->user();
if (in_array($user->id, config('light.superAdmin'))) {
id
Illuminate\Contracts\Auth\Authenticatable
instanceof
return $next($request);
}
$route = Route::current();
$routeName = $route->getName();
$permission = Menu::where('route', $routeName)->where('route_params', '')->first();
if ($permission && $user->can($permission->name)) {
$routeParams = $route->parameters();
if (!empty($routeParams)) {
foreach ($routeParams as $k => $v) {
$val = "{$k}:{$v}";
break;
$permission = Menu::where('route', $routeName)->where('route_params', $val)->first();
$val
if ($request->expectsJson()) {
return response()->json(['code' => 401, 'msg' => "未授权操作(路由别名:{$routeName})"], 401);
abort(401, "未授权操作(路由别名:{$routeName})");