From 5a292daa0b911fd4cdede319fa05898ac7c0c309 Mon Sep 17 00:00:00 2001 From: icamarillo Date: Mon, 16 Feb 2026 09:21:06 -0700 Subject: [PATCH] =?UTF-8?q?feat:=20Script=20para=20crear=20usuario=20de=20?= =?UTF-8?q?prueba=20con=20contrase=C3=B1a=20conocida?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Permite crear/actualizar usuario admin@aduanasoft.com - Password: admin123 - Facilita testing del sistema de auditoría - Genera hash correcto con Argon2 --- backend/create_test_user.py | 67 +++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 backend/create_test_user.py diff --git a/backend/create_test_user.py b/backend/create_test_user.py new file mode 100644 index 0000000..8c3fcb7 --- /dev/null +++ b/backend/create_test_user.py @@ -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())