- Extraccion de helpers en backend: audit_helpers.py, helpers.py - Modularizacion de schemas en archivos individuales por dominio - Reduccion de audit.py en 953 lineas (74% del archivo) - Reduccion de tickets.py en 655 lineas (60% del archivo) - Expansion de auth.py con recuperacion de contrasenia y tokens - Nuevos modulos: core/email.py, core/cache.py - Reorganizacion de scripts a backend/scripts/ - Frontend: refactorizacion de audit page con array-driven components - Frontend: correccion de 11 errores ortograficos en tickets page - Frontend: proxy Docker corregido en vite.config.js - Frontend: nuevas rutas forgot-password, reset-password, organization, profile - Nuevas utilidades TS: colorUtils.ts, dateFormats.ts - 5 nuevos archivos de tests unitarios en backend/tests/unit/ - Eliminacion de 3 scripts temporales de prueba - Documentacion tecnica: CAMBIOS_v1.10.0.md, OPTIMIZACIONES_RENDIMIENTO.md
68 lines
2.2 KiB
Python
68 lines
2.2 KiB
Python
"""
|
|
Script para crear/actualizar usuario de prueba con contraseña conocida
|
|
"""
|
|
import asyncio
|
|
from sqlalchemy import select, update
|
|
from app.core.database import AsyncSessionLocal
|
|
from app.core.security import security
|
|
from app.models.user import User, UserRole
|
|
from app.models.tenant import Tenant
|
|
import uuid
|
|
|
|
async def create_test_user():
|
|
async with AsyncSessionLocal() as db:
|
|
# Buscar tenant
|
|
tenant_query = select(Tenant).where(Tenant.slug.like('%aduanasoft%')).limit(1)
|
|
result = await db.execute(tenant_query)
|
|
tenant = result.scalar_one_or_none()
|
|
|
|
if not tenant:
|
|
print("❌ No se encontró tenant")
|
|
return
|
|
|
|
print(f"✅ Tenant encontrado: {tenant.name} ({tenant.slug})")
|
|
|
|
# Buscar o crear usuario admin
|
|
user_query = select(User).where(
|
|
User.email == "admin@aduanasoft.com",
|
|
User.tenant_id == tenant.id
|
|
)
|
|
result = await db.execute(user_query)
|
|
user = result.scalar_one_or_none()
|
|
|
|
# Hash de la contraseña "admin123"
|
|
password_hash = security.hash_password("admin123")
|
|
|
|
if user:
|
|
# Actualizar contraseña
|
|
user.password_hash = password_hash
|
|
user.is_active = True
|
|
user.email_verified = True
|
|
await db.commit()
|
|
print(f"✅ Usuario actualizado: {user.email}")
|
|
else:
|
|
# Crear usuario nuevo
|
|
user = User(
|
|
id=uuid.uuid4(),
|
|
tenant_id=tenant.id,
|
|
email="admin@aduanasoft.com",
|
|
first_name="Admin",
|
|
last_name="Sistema",
|
|
password_hash=password_hash,
|
|
role=UserRole.ADMIN,
|
|
is_active=True,
|
|
email_verified=True
|
|
)
|
|
db.add(user)
|
|
await db.commit()
|
|
print(f"✅ Usuario creado: {user.email}")
|
|
|
|
print(f"\n📋 Credenciales de prueba:")
|
|
print(f" Email: admin@aduanasoft.com")
|
|
print(f" Password: admin123")
|
|
print(f" Tenant: {tenant.slug}")
|
|
print(f" Role: ADMIN")
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(create_test_user())
|