the browser-facing portion of osu!
at master 1.2 kB view raw
1<?php 2 3// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the GNU Affero General Public License v3.0. 4// See the LICENCE file in the repository root for full licence text. 5 6declare(strict_types=1); 7 8namespace App\Http\Middleware; 9 10use App\Events\UserSessionEvent; 11use Closure; 12use Illuminate\Http\Request; 13 14class SetSessionVerification 15{ 16 public function handle(Request $request, Closure $next) 17 { 18 $user = \Auth::user(); 19 if ($user !== null) { 20 $session = \Session::instance(); 21 $isVerified = $session->isVerified(); 22 23 if ($isVerified) { 24 $user->markSessionVerified(); 25 } else { 26 $isRequired = VerifyUserAlways::isRequired($user); 27 if ($session->get('requires_verification') !== $isRequired) { 28 $session->put('requires_verification', $isRequired); 29 $session->save(); 30 UserSessionEvent::newVerificationRequirementChange( 31 $user->getKey(), 32 $isRequired, 33 )->broadcast(); 34 } 35 } 36 } 37 38 return $next($request); 39 } 40}