AuthenticateAdmin.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. namespace App\Http\Middleware;
  3. use Closure,Auth;
  4. class AuthenticateAdmin
  5. {
  6. /**
  7. * Handle an incoming request.
  8. *
  9. * @param \Illuminate\Http\Request $request
  10. * @param \Closure $next
  11. * @param string|null $guard
  12. * @return mixed
  13. */
  14. public function handle($request, Closure $next)
  15. {
  16. if(Auth::guard('admin')->guest()){
  17. exit("你没有登录<a target='_parent' href='/admin/logout?returnUrl=" . urlencode('http://'.$_SERVER['HTTP_HOST']) . "'>请登录</a>");
  18. }
  19. $path = $request->path();
  20. if ($path == 'admin') {
  21. $path = str_replace('admin' ,'/', $path);
  22. }else{
  23. $path = str_replace('admin/' ,'', $path);
  24. }
  25. $role = session(LOGIN_MARK_SESSION_KEY);
  26. $user =Auth::guard('admin')->user();
  27. if(!$user['is_root']) {
  28. if(!isset($role['role']) || !$role['role']) {
  29. exit("你没有操作权限<a target='_parent' href='/admin/logout?returnUrl=" . urlencode('http://'.$_SERVER['HTTP_HOST']) . "'>重新登录</a>");
  30. }
  31. if(!array_key_exists($path,$role['role'])) {
  32. exit("你没有操作权限<a target='_parent' href='/admin/logout?returnUrl=" . urlencode('http://'.$_SERVER['HTTP_HOST']) . "'>重新登录</a>");
  33. }
  34. }
  35. return $next($request);
  36. }
  37. }