- Backend API:
Autenticación y autorización básicas con JWT implementadas.
Cambio de contraseña funcional.
Módulo "Tipos de Pago" (CRUD completo) implementado en el backend (Controlador, Servicio, Repositorio) usando Dapper, transacciones y con lógica de historial.
Se incluyen permisos en el token JWT.
- Frontend React:
Estructura base con Vite, TypeScript, MUI.
Contexto de autenticación (AuthContext) que maneja el estado del usuario y el token.
Página de Login.
Modal de Cambio de Contraseña (forzado y opcional).
Hook usePermissions para verificar permisos.
Página GestionarTiposPagoPage con tabla, paginación, filtro, modal para crear/editar, y menú de acciones, respetando permisos.
Layout principal (MainLayout) con navegación por Tabs (funcionalidad básica de navegación).
Estructura de enrutamiento (AppRoutes) que maneja rutas públicas, protegidas y anidadas para módulos.
This commit is contained in:
2025-05-07 13:41:18 -03:00
parent da7b544372
commit 5c4b961073
49 changed files with 2552 additions and 491 deletions

View File

@@ -0,0 +1,26 @@
// src/hooks/usePermissions.ts
import { useAuth } from '../contexts/AuthContext';
export const usePermissions = () => {
const { user } = useAuth(); // user aquí es de tipo UserContextData | null
const tienePermiso = (codigoPermisoRequerido: string): boolean => {
if (!user) { // Si no hay usuario logueado
return false;
}
if (user.esSuperAdmin) { // SuperAdmin tiene todos los permisos
return true;
}
// Verificar si la lista de permisos del usuario incluye el código requerido
return user.permissions?.includes(codigoPermisoRequerido) ?? false;
};
// También puede exportar el objeto user completo si se necesita en otros lugares
// o propiedades específicas como idPerfil, esSuperAdmin.
return {
tienePermiso,
isSuperAdmin: user?.esSuperAdmin ?? false,
idPerfil: user?.idPerfil ?? 0,
currentUser: user
};
};