middleware('auth'); } /** * Show the application dashboard. * * @return \Illuminate\Contracts\Support\Renderable */ public function index() { $user = auth()->user(); // Validar que el usuario tenga tipo asignado y que sea Administrador if (!$user->tipo || $user->tipo->nombre !== 'Administrador') { // Cerrar la sesión del usuario auth()->logout(); // Redirigir con mensaje de error return redirect()->route('login')->with('error', 'No tienes permisos para acceder al sistema. Solo los administradores pueden acceder en este momento.'); } // Notificaciones si el usuario no tiene puesto o departamento asignado $notificaciones = []; if (is_null($user->puesto_id)) { $notificaciones[] = 'No tienes un puesto asignado. Contacta al administrador para que te asigne uno.'; } if (is_null($user->departamento_id)) { $notificaciones[] = 'No tienes un departamento asignado. Contacta al administrador para que te asigne uno.'; } // Si es administrador, mostrar el dashboard con datos reales $adminData = [ 'totalUsers' => \App\Models\User::count(), 'totalPrestamos' => \App\Models\Prestamo::count(), 'prestamosPendientes' => \App\Models\Prestamo::where('estado', 'pendiente')->count(), 'prestamosAceptados' => \App\Models\Prestamo::where('estado', 'aceptado')->count(), ]; return view('dashboard', [ 'adminData' => $adminData, 'notificaciones' => $notificaciones ]); } }