. */ namespace Poniverse\Ponyfm\Http\Middleware; use Closure; use Illuminate\Contracts\Auth\Guard; class DisabledAccountCheck { /** * The Guard implementation. * * @var Guard */ protected $auth; /** * Create a new filter instance. * * @param Guard $auth */ public function __construct(Guard $auth) { $this->auth = $auth; } /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { // TODO: don't automatically log the user out some time after // issue #29 is fixed or when disabled_at starts being used for // something other than merged accounts. if ($this->auth->check() && $this->auth->user()->disabled_at !== null && !($request->getMethod() === 'POST' && $request->getRequestUri() == '/auth/logout') ) { $this->auth->logout(); // return Response::view('home.account-disabled', ['username' => $this->auth->user()->username], 403); } return $next($request); } }