68 lines
2.0 KiB
Python
68 lines
2.0 KiB
Python
import re
|
|
|
|
with open("/app/app/api/v1/endpoints/auth.py", "r") as f:
|
|
content = f.read()
|
|
|
|
old = ''' # 1. Validar tenant
|
|
tenant_result = await db.execute(
|
|
select(Tenant).where(Tenant.slug == login_data.tenant_slug)
|
|
)
|
|
tenant = tenant_result.scalar_one_or_none()
|
|
if tenant is None:
|
|
logger.warning(
|
|
"Login failed - tenant not found",
|
|
email=login_data.email,
|
|
tenant_slug=login_data.tenant_slug,
|
|
)
|
|
raise HTTPException(
|
|
status_code=status.HTTP_404_NOT_FOUND,
|
|
detail="Tenant not found",
|
|
)'''
|
|
|
|
new = ''' # 1. Validar tenant - por slug si viene, sino detectar por email
|
|
if login_data.tenant_slug:
|
|
tenant_result = await db.execute(
|
|
select(Tenant).where(Tenant.slug == login_data.tenant_slug)
|
|
)
|
|
tenant = tenant_result.scalar_one_or_none()
|
|
if tenant is None:
|
|
raise HTTPException(
|
|
status_code=status.HTTP_404_NOT_FOUND,
|
|
detail="Tenant not found",
|
|
)
|
|
else:
|
|
tenant = None'''
|
|
|
|
if old in content:
|
|
content = content.replace(old, new)
|
|
print("OK: bloque tenant reemplazado")
|
|
else:
|
|
print("ERROR: bloque no encontrado")
|
|
|
|
# Tambien actualizar la query de usuario para usar tenant o no
|
|
old2 = ''' # 2. Buscar usuario en base de datos (aislado por tenant)
|
|
query = select(User).where(
|
|
User.email == login_data.email,
|
|
User.tenant_id == tenant.id,
|
|
)'''
|
|
|
|
new2 = ''' # 2. Buscar usuario - filtrar por tenant si se detecto, sino buscar por email
|
|
if tenant:
|
|
query = select(User).where(
|
|
User.email == login_data.email,
|
|
User.tenant_id == tenant.id,
|
|
)
|
|
else:
|
|
query = select(User).where(User.email == login_data.email)'''
|
|
|
|
if old2 in content:
|
|
content = content.replace(old2, new2)
|
|
print("OK: bloque query reemplazado")
|
|
else:
|
|
print("ERROR: bloque query no encontrado")
|
|
|
|
with open("/app/app/api/v1/endpoints/auth.py", "w") as f:
|
|
f.write(content)
|
|
|
|
print("Listo")
|