Files
KanbanGit/app/Http/Middleware/RequirePasswordChange.php
T
Koda 5bb6e57db4
linter / quality (pull_request) Successful in 1m19s
tests / ci (8.4) (pull_request) Successful in 1m31s
Refine forced password change flow
2026-05-22 18:57:10 +00:00

44 lines
1.1 KiB
PHP

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class RequirePasswordChange
{
/**
* Handle an incoming request.
*
* @param Closure(Request): Response $next
*/
public function handle(Request $request, Closure $next): Response
{
$user = $request->user();
if ($user === null || ! $user->must_change_password_on_next_login) {
return $next($request);
}
if ($request->routeIs([
'logout',
'password.confirm',
'password.confirm.*',
'password.force-change.edit',
'security.edit',
'user-password.update',
])) {
return $next($request);
}
if ($request->isMethod('get') && ! $request->expectsJson()) {
$request->session()->put('url.intended', $request->fullUrl());
}
return redirect()
->route('password.force-change.edit')
->with('status', 'You must change your password before continuing.');
}
}