DangerZone.php 933 B

12345678910111213141516171819202122232425262728293031323334
  1. <?php
  2. namespace App\Http\Middleware;
  3. use App, Auth, Closure;
  4. use Carbon\Carbon;
  5. class DangerZone
  6. {
  7. /**
  8. * Handle an incoming request.
  9. *
  10. * @param \Illuminate\Http\Request $request
  11. * @param \Closure $next
  12. * @return mixed
  13. */
  14. public function handle($request, Closure $next)
  15. {
  16. if(!Auth::check()) {
  17. return redirect(route('login'));
  18. }
  19. if(!$request->is('i/auth/sudo')) {
  20. if( !$request->session()->has('sudoMode') ) {
  21. $request->session()->put('redirectNext', $request->url());
  22. return redirect('/i/auth/sudo');
  23. }
  24. if( $request->session()->get('sudoMode') < Carbon::now()->subMinutes(30)->timestamp ) {
  25. $request->session()->put('redirectNext', $request->url());
  26. return redirect('/i/auth/sudo');
  27. }
  28. }
  29. return $next($request);
  30. }
  31. }