- 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.
43 lines
1.4 KiB
PHP
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);
|
|
}
|
|
}
|