singleloginsystem/app/Http/Controllers/ResolveDashboardRouteController.php
= 1a7134419c Refactor: Improve dependency injection for dashboard components and enhance SAML logging
- Removed inline data definitions from multiple dashboard components for roles, users, and connected apps, replacing them with service-based computed properties.
- Added comprehensive debug and error-level logging throughout `SamlIdpService` and related controllers to improve traceability of SAML flows.
- Cleaned up and centralized SAML-related logic, improving maintainability and error handling consistency.
- Deleted unused `hr-permission.blade.php` component to reduce code redundancy.
2026-06-01 13:05:59 +00:00

43 lines
1.4 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Http\Controllers;
use App\Helpers\DashboardRoute;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
class ResolveDashboardRouteController extends Controller
{
public function __invoke(Request $request)
{
/**
* If the user is redirected after SAML SSO Login (Fortify Response always redirects to dashboard),
* redirect them to the SSO endpoint so that SAML SSO Login can be completed.
*/
if (session()->has('saml_pending_request')) {
$user = $request->user();
Log::info('ResolveDashboardRouteController: Intercepted pending SAML SSO request in session. Redirecting authenticated user to complete SAML flow.', [
'user_id' => $user?->id,
'user_email' => $user?->email,
'session_keys' => array_keys(session()->all()),
]);
return redirect()->route('saml.sso');
}
$user = $request->user();
$route = DashboardRoute::resolve($user->getRoleNames());
Log::info('ResolveDashboardRouteController: Resolving dashboard landing route for authenticated user.', [
'user_id' => $user?->id,
'user_email' => $user?->email,
'roles' => $user?->getRoleNames(),
'target_route' => $route,
]);
return to_route($route);
}
}