Working on stack.

This commit is contained in:
Taylor Otwell
2014-10-06 15:25:53 -05:00
parent 2893433b35
commit d2937ea714
10 changed files with 125 additions and 122 deletions

View File

@@ -0,0 +1,63 @@
<?php namespace App\Http\Middleware;
use Closure;
use Illuminate\Routing\Route;
use Illuminate\Contracts\Auth\Authenticator;
use Illuminate\Contracts\Routing\Middleware;
use Illuminate\Contracts\Routing\ResponseFactory;
class AuthMiddleware implements Middleware {
/**
* The authenticator implementation.
*
* @var Authenticator
*/
protected $auth;
/**
* The response factory implementation.
*
* @var ResponseFactory
*/
protected $response;
/**
* Create a new filter instance.
*
* @param Authenticator $auth
* @param ResponseFactory $response
* @return void
*/
public function __construct(Authenticator $auth,
ResponseFactory $response)
{
$this->auth = $auth;
$this->response = $response;
}
/**
* Handle an incoming request.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* @param \Closure $next
* @return \Symfony\Component\HttpFoundation\Response
*/
public function handle($request, Closure $next)
{
if ($this->auth->guest())
{
if ($request->ajax())
{
return $this->response->make('Unauthorized', 401);
}
else
{
return $this->response->redirectGuest('auth/login');
}
}
return $next($request);
}
}

View File

@@ -0,0 +1,39 @@
<?php namespace App\Http\Middleware;
use Closure;
use Illuminate\Contracts\Routing\Middleware;
use Illuminate\Contracts\Auth\Authenticator;
class BasicAuthMiddleware implements Middleware {
/**
* The authenticator implementation.
*
* @var Authenticator
*/
protected $auth;
/**
* Create a new filter instance.
*
* @param Authenticator $auth
* @return void
*/
public function __construct(Authenticator $auth)
{
$this->auth = $auth;
}
/**
* Handle an incoming request.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* @param \Closure $next
* @return \Symfony\Component\HttpFoundation\Response
*/
public function handle($request, Closure $next)
{
return $this->auth->basic() ?: $next($request);
}
}

View File

@@ -0,0 +1,26 @@
<?php namespace App\Http\Middleware;
use Closure;
use Illuminate\Contracts\Routing\Middleware;
use Illuminate\Session\TokenMismatchException;
class CsrfMiddleware implements Middleware {
/**
* Handle an incoming request.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* @param \Closure $next
* @return \Symfony\Component\HttpFoundation\Response
*/
public function handle($request, Closure $next)
{
if ($request->getSession()->token() != $request->input('_token'))
{
throw new TokenMismatchException;
}
return $next($request);
}
}

View File

@@ -0,0 +1,45 @@
<?php namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\RedirectResponse;
use Illuminate\Contracts\Auth\Authenticator;
use Illuminate\Contracts\Routing\Middleware;
class GuestMiddleware implements Middleware {
/**
* The authenticator implementation.
*
* @var Authenticator
*/
protected $auth;
/**
* Create a new filter instance.
*
* @param Authenticator $auth
* @return void
*/
public function __construct(Authenticator $auth)
{
$this->auth = $auth;
}
/**
* Handle an incoming request.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* @param \Closure $next
* @return \Symfony\Component\HttpFoundation\Response
*/
public function handle($request, Closure $next)
{
if ($this->auth->check())
{
return new RedirectResponse(url('/'));
}
return $next($request);
}
}

View File

@@ -0,0 +1,45 @@
<?php namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Response;
use Illuminate\Contracts\Routing\Middleware;
use Illuminate\Contracts\Foundation\Application;
class MaintenanceMiddleware {
/**
* The application implementation.
*
* @var Application
*/
protected $app;
/**
* Create a new filter instance.
*
* @param Application $app
* @return void
*/
public function __construct(Application $app)
{
$this->app = $app;
}
/**
* Handle an incoming request.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* @param \Closure $next
* @return \Symfony\Component\HttpFoundation\Response
*/
public function handle($request, Closure $next)
{
if ($this->app->isDownForMaintenance())
{
return new Response('Be right back!', 503);
}
return $next($request);
}
}