You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.9 KiB
58 lines
1.9 KiB
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
|
|
class HomeController extends Controller
|
|
{
|
|
/**
|
|
* Create a new controller instance.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function __construct()
|
|
{
|
|
$this->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
|
|
]);
|
|
}
|
|
}
|
|
|