fix: solución de bloqueos y estandarización de permisos
This commit is contained in:
@@ -32,7 +32,7 @@ async def list_drivers(
|
||||
db: Session = Depends(get_core_db),
|
||||
current_user: dict = Depends(get_current_user),
|
||||
):
|
||||
tenant_id = validate_access_to_resource(db, company_id, current_user)
|
||||
tenant_id = validate_access_to_resource(db, company_id, current_user, required_permissions=["drivers.view"])
|
||||
drivers = DriverService.list_drivers(db, str(company_id), tenant_id)
|
||||
total = len(drivers)
|
||||
|
||||
@@ -56,7 +56,7 @@ async def read_driver(
|
||||
db: Session = Depends(get_core_db),
|
||||
current_user: dict = Depends(get_current_user),
|
||||
):
|
||||
tenant_id = validate_access_to_resource(db, company_id, current_user)
|
||||
tenant_id = validate_access_to_resource(db, company_id, current_user, required_permissions=["drivers.view"])
|
||||
driver = DriverService.get_driver_by_key_and_line(
|
||||
db, transporter_key, line, str(company_id), tenant_id
|
||||
)
|
||||
@@ -73,7 +73,7 @@ async def create_driver(
|
||||
):
|
||||
# Validar acceso a la empresa del cuerpo
|
||||
tenant_id = validate_access_to_resource(
|
||||
db, driver_data.company_id, current_user
|
||||
db, driver_data.company_id, current_user, required_permissions=["drivers.create"]
|
||||
)
|
||||
tk = (driver_data.transporter_key or "").strip()
|
||||
# Buscar transportista: primero exacto, luego ignorando mayúsculas
|
||||
@@ -124,7 +124,7 @@ async def update_driver(
|
||||
db: Session = Depends(get_core_db),
|
||||
current_user: dict = Depends(get_current_user),
|
||||
):
|
||||
tenant_id = validate_access_to_resource(db, company_id, current_user)
|
||||
tenant_id = validate_access_to_resource(db, company_id, current_user, required_permissions=["drivers.edit"])
|
||||
try:
|
||||
driver = DriverService.update_driver(
|
||||
db,
|
||||
@@ -152,7 +152,7 @@ async def delete_driver(
|
||||
db: Session = Depends(get_core_db),
|
||||
current_user: dict = Depends(get_current_user),
|
||||
):
|
||||
tenant_id = validate_access_to_resource(db, company_id, current_user)
|
||||
tenant_id = validate_access_to_resource(db, company_id, current_user, required_permissions=["drivers.delete"])
|
||||
driver = DriverService.delete_driver(
|
||||
db, transporter_key, line, str(company_id), tenant_id
|
||||
)
|
||||
|
||||
@@ -27,5 +27,10 @@ crud_router = TenantCRUDRoutes(
|
||||
enable_filters=True,
|
||||
default_page_size=50,
|
||||
max_page_size=100,
|
||||
list_permissions=["trailers.view"],
|
||||
get_permissions=["trailers.view"],
|
||||
create_permissions=["trailers.create"],
|
||||
update_permissions=["trailers.edit"],
|
||||
delete_permissions=["trailers.delete"],
|
||||
).router
|
||||
router.include_router(crud_router)
|
||||
|
||||
@@ -1,18 +1,12 @@
|
||||
from fastapi import APIRouter
|
||||
|
||||
from api.v1.common.tenant_crud_routes import TenantCRUDRoutes
|
||||
|
||||
from .dto import TransporterCreateDTO, TransporterResponseDTO, TransporterUpdateDTO
|
||||
from .services import TransporterService
|
||||
from api.v1.modules.a76.layouts_csv.transportistas.routes import router as imports_router
|
||||
|
||||
# Main router: transporters CRUD + CSV imports
|
||||
router = APIRouter()
|
||||
|
||||
# CSV import (upload → scan → status → commit)
|
||||
router.include_router(imports_router, prefix="/transporters/imports", tags=["a76 / transporters / csv_import"])
|
||||
|
||||
# CRUD routes
|
||||
crud_router = TenantCRUDRoutes(
|
||||
service=TransporterService,
|
||||
create_schema=TransporterCreateDTO,
|
||||
@@ -21,11 +15,17 @@ crud_router = TenantCRUDRoutes(
|
||||
prefix="/transporters",
|
||||
tags=[],
|
||||
resource_name="Transporter",
|
||||
id_name="transporter_key", # Using transporter_key instead of numeric ID
|
||||
id_type=str, # Specify that the ID is a string
|
||||
enable_list=True, # Enable GET /transporters with pagination
|
||||
enable_filters=True, # Enable filtering by name and rfc
|
||||
id_name="transporter_key",
|
||||
id_type=str,
|
||||
enable_list=True,
|
||||
enable_filters=True,
|
||||
default_page_size=50,
|
||||
max_page_size=100,
|
||||
list_permissions=["transporters.view"],
|
||||
get_permissions=["transporters.view"],
|
||||
create_permissions=["transporters.create"],
|
||||
update_permissions=["transporters.edit"],
|
||||
delete_permissions=["transporters.delete"],
|
||||
).router
|
||||
router.include_router(crud_router)
|
||||
|
||||
router.include_router(crud_router)
|
||||
@@ -27,5 +27,10 @@ crud_router = TenantCRUDRoutes(
|
||||
enable_filters=True,
|
||||
default_page_size=50,
|
||||
max_page_size=100,
|
||||
list_permissions=["vehicles.view"],
|
||||
get_permissions=["vehicles.view"],
|
||||
create_permissions=["vehicles.create"],
|
||||
update_permissions=["vehicles.edit"],
|
||||
delete_permissions=["vehicles.delete"],
|
||||
).router
|
||||
router.include_router(crud_router)
|
||||
|
||||
Reference in New Issue
Block a user