feat: agregar sistema de autenticación con usuarios y roles

- Agregar Login con autenticación por DNI y contraseña
- Crear tabla de usuarios con roles (admin, médico, enfermero)
- Implementar gestión de usuarios (CRUD) para administradores
- Agregar control de permisos basado en roles en el menú
- Persistir estado de sesión en backend
- Inicializar usuario admin por defecto (DNI: 12345678, pass: admin123)
- Corregir inicialización de arrays en el store para evitar errores al cargar estado
This commit is contained in:
2026-04-23 01:09:29 -03:00
parent 1d7a5e893f
commit 76e01bfd79
11 changed files with 869 additions and 31 deletions
+11 -1
View File
@@ -10,6 +10,8 @@ import { Cultivos } from '@/sections/Cultivos';
import { HistoriaClinica } from '@/sections/HistoriaClinica';
import { NuevoIngreso } from '@/sections/NuevoIngreso';
import { EditIngreso } from '@/sections/EditIngreso';
import { Login } from '@/sections/Login';
import { GestionUsuarios } from '@/sections/GestionUsuarios';
import { Spinner } from '@/components/ui/spinner';
import { Button } from '@/components/ui/button';
import { ThemeProvider } from "@/components/theme-provider";
@@ -26,6 +28,10 @@ function AppContent() {
);
}
if (!store.isAuthenticated) {
return <Login />;
}
const renderVista = () => {
switch (store.vistaActual) {
case 'dashboard':
@@ -217,13 +223,17 @@ function AppContent() {
/>
);
}
case 'usuarios':
return (
<GestionUsuarios />
);
default:
return null;
}
};
return (
<Layout vistaActual={store.vistaActual} onCambiarVista={store.setVista}>
<Layout vistaActual={store.vistaActual} onCambiarVista={store.setVista} currentUser={store.currentUser} onLogout={store.logout}>
{renderVista()}
</Layout>
);