feat: Implement multi-tenancy support in middleware and security layers
- Enhanced TenantMiddleware to validate tenant information from JWT tokens. - Added LicenseValidationMiddleware to check tenant licenses before processing requests. - Updated security utilities to extract tenant information from tokens and validate company access. - Introduced CompanyStore to manage active company state and handle company switching in the frontend. - Modified API routes to include company_id in requests for better resource management. - Improved logging and error handling throughout the middleware and API layers. - Updated frontend components to reflect changes in company management and selection. - Added new API route for fetching user's companies with proper authentication handling.
This commit is contained in:
@@ -80,9 +80,10 @@ export const pedimentosApi = {
|
||||
* @param page - Número de página (por defecto 1)
|
||||
* @param pageSize - Tamaño de página (por defecto 50)
|
||||
* @param filters - Filtros opcionales
|
||||
* @param companyId - ID de la compañía (por defecto 1)
|
||||
*/
|
||||
list: (page = 1, pageSize = 50, filters?: PedimentoFilters) => {
|
||||
let url = `/v1/a76/pedimentos?page=${page}&page_size=${pageSize}`;
|
||||
list: (page = 1, pageSize = 50, filters?: PedimentoFilters, companyId = 1) => {
|
||||
let url = `/v1/a76/pedimentos?company_id=${companyId}&page=${page}&page_size=${pageSize}`;
|
||||
|
||||
if (filters?.status) {
|
||||
url += `&status=${encodeURIComponent(filters.status)}`;
|
||||
@@ -100,27 +101,31 @@ export const pedimentosApi = {
|
||||
/**
|
||||
* Obtiene un pedimento por ID
|
||||
* @param id - ID del pedimento
|
||||
* @param companyId - ID de la compañía (por defecto 1)
|
||||
*/
|
||||
get: (id: number) => api.get<Pedimento>(`/v1/a76/pedimentos/${id}`),
|
||||
get: (id: number, companyId = 1) => api.get<Pedimento>(`/v1/a76/pedimentos/${id}?company_id=${companyId}`),
|
||||
|
||||
/**
|
||||
* Crea un nuevo pedimento
|
||||
* @param data - Datos del pedimento a crear
|
||||
* @param companyId - ID de la compañía (por defecto 1)
|
||||
*/
|
||||
create: (data: CreatePedimentoData) =>
|
||||
api.post<Pedimento>('/v1/a76/pedimentos', data),
|
||||
create: (data: CreatePedimentoData, companyId = 1) =>
|
||||
api.post<Pedimento>(`/v1/a76/pedimentos?company_id=${companyId}`, data),
|
||||
|
||||
/**
|
||||
* Actualiza un pedimento existente
|
||||
* @param id - ID del pedimento a actualizar
|
||||
* @param data - Datos a actualizar
|
||||
* @param companyId - ID de la compañía (por defecto 1)
|
||||
*/
|
||||
update: (id: number, data: UpdatePedimentoData) =>
|
||||
api.put<Pedimento>(`/v1/a76/pedimentos/${id}`, data),
|
||||
update: (id: number, data: UpdatePedimentoData, companyId = 1) =>
|
||||
api.put<Pedimento>(`/v1/a76/pedimentos/${id}?company_id=${companyId}`, data),
|
||||
|
||||
/**
|
||||
* Elimina un pedimento
|
||||
* @param id - ID del pedimento a eliminar
|
||||
* @param companyId - ID de la compañía (por defecto 1)
|
||||
*/
|
||||
delete: (id: number) => api.delete(`/v1/a76/pedimentos/${id}`)
|
||||
delete: (id: number, companyId = 1) => api.delete(`/v1/a76/pedimentos/${id}?company_id=${companyId}`)
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user