sifangpay/app/Http/Middleware/CheckPermissionMiddelware.php

56 lines
1.4 KiB
PHP

<?php
namespace App\Http\Middleware;
use Auth;
use Route;
use Closure;
class CheckPermissionMiddelware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next,$permission)
{
// return $next($request);
$guard='admin';
$admin=Auth::guard($guard)->user();
//超级管理员过
if($admin->hasPermissionTo('root', $guard))
{
return $next($request);
}
$except_controller=['/admin/home/index','/admin/home/home'];
foreach ($except_controller as $v)
{
if($v==$this->getRouteInfo())
{
return $next($request);
}
}
//权限判断
if(!$admin->hasPermissionTo($permission))
{
abort(401,'没有权限');
}
return $next($request);
}
public function getRouteInfo($type=0){
$arr=[];
$route_arr=explode('@', Route::currentRouteAction());
$arr['controller']=str_replace('Controller','',str_replace('App\\Http\\Controllers\\Admin\\','',$route_arr[0]));
$arr['action']=$route_arr[1];
if($type==1)
{
return strtolower($arr['action']);
}
return strtolower(implode('/',$arr));
}
}