60 lines
1.7 KiB
PHP
60 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Web;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\RedirectResponse;
|
|
use Illuminate\Http\Request;
|
|
|
|
/**
|
|
* Smistamento post-login verso le pagine legacy in base al ruolo.
|
|
*
|
|
* Sostituisce la rotta "/" (name: dashboard) di Vanguard.
|
|
* - Admin -> vede la dashboard nativa di Vanguard (delega al DashboardController originale)
|
|
* - Altri -> redirect verso la pagina legacy corrispondente al ruolo
|
|
*
|
|
* Questo file e' TUO: gli update di Vanguard non lo toccano.
|
|
*/
|
|
class PostLoginDispatchController extends Controller
|
|
{
|
|
public function index(Request $request, DashboardController $dashboard)
|
|
{
|
|
$user = $request->user();
|
|
|
|
// Admin: resta nella dashboard di gestione utenti di Vanguard.
|
|
if ($user->hasRole('Admin')) {
|
|
return $dashboard->index($request);
|
|
}
|
|
|
|
// Altri ruoli: redirect alla pagina legacy dedicata.
|
|
return $this->redirectByRole($user);
|
|
}
|
|
|
|
private function redirectByRole($user): RedirectResponse
|
|
{
|
|
if ($user->hasRole('Owner')) {
|
|
return redirect()->to('ownerdashboard.php');
|
|
}
|
|
|
|
if ($user->hasRole('User')) {
|
|
return redirect()->to('dashboard.php');
|
|
}
|
|
|
|
if ($user->hasRole('Superuser')) {
|
|
return redirect()->to('dashboard.php');
|
|
}
|
|
|
|
if ($user->hasRole('Certification')) {
|
|
return redirect()->to('cstd.php');
|
|
}
|
|
|
|
if ($user->hasRole('CustomerService')) {
|
|
return redirect()->to('cstrf.php');
|
|
}
|
|
|
|
// Fallback di sicurezza: se il ruolo non e' tra quelli previsti,
|
|
// manda comunque alla dashboard legacy generica.
|
|
return redirect()->to('dashboard.php');
|
|
}
|
|
}
|