. Licensed under the GNU Affero General Public License v3.0. // See the LICENCE file in the repository root for full licence text. namespace App\Http\Middleware; use Closure; use Illuminate\Contracts\Auth\Guard; class CheckUserBanStatus { /** * The Guard implementation. * * @var Guard */ protected $auth; /** * Create a new filter instance. * * @param Guard $auth * * @return void */ 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) { if ( $this->auth->check() && ($this->auth->user()->isBanned() || $this->auth->user()->isLoginBlocked()) ) { logout(); if (is_api_request()) { abort(403, osu_trans('users.disabled.title')); } else { return ujs_redirect(route('users.disabled')); } } return $next($request); } }