feat: Script para crear usuario de prueba con contraseña conocida
- Permite crear/actualizar usuario admin@aduanasoft.com - Password: admin123 - Facilita testing del sistema de auditoría - Genera hash correcto con Argon2
This commit is contained in:
67
backend/create_test_user.py
Normal file
67
backend/create_test_user.py
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
"""
|
||||||
|
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())
|
||||||
Reference in New Issue
Block a user