Versión 1.3.0: Conexion completa del proyecto
This commit is contained in:
67
fix_admin_password.py
Normal file
67
fix_admin_password.py
Normal file
@@ -0,0 +1,67 @@
|
||||
"""
|
||||
Script para actualizar el password del usuario admin
|
||||
Ejecutar: python fix_admin_password.py
|
||||
"""
|
||||
import asyncio
|
||||
import sys
|
||||
from sqlalchemy import select, update
|
||||
from passlib.context import CryptContext
|
||||
|
||||
# Importar desde el proyecto
|
||||
sys.path.insert(0, '/app')
|
||||
from app.core.database import AsyncSessionLocal
|
||||
from app.models.user import User
|
||||
|
||||
# Configurar passlib igual que en security.py
|
||||
pwd_context = CryptContext(
|
||||
schemes=["argon2", "bcrypt"],
|
||||
deprecated="auto",
|
||||
argon2__memory_cost=65536,
|
||||
argon2__time_cost=3,
|
||||
argon2__parallelism=4,
|
||||
)
|
||||
|
||||
async def fix_admin_password():
|
||||
"""Actualizar password del admin a 'admin123'"""
|
||||
|
||||
# Generar hash del password
|
||||
new_password = "admin123"
|
||||
password_hash = pwd_context.hash(new_password)
|
||||
|
||||
print(f"Nuevo hash generado para password: {new_password}")
|
||||
print(f"Hash: {password_hash[:50]}...")
|
||||
|
||||
async with AsyncSessionLocal() as session:
|
||||
try:
|
||||
# Buscar usuario admin
|
||||
result = await session.execute(
|
||||
select(User).where(User.email == "admin@aduanasoft.com")
|
||||
)
|
||||
user = result.scalar_one_or_none()
|
||||
|
||||
if not user:
|
||||
print("❌ Usuario admin no encontrado")
|
||||
return
|
||||
|
||||
print(f"✅ Usuario encontrado: {user.email} (ID: {user.id})")
|
||||
|
||||
# Actualizar password
|
||||
user.password_hash = password_hash
|
||||
|
||||
await session.commit()
|
||||
|
||||
print("✅ Password actualizado exitosamente")
|
||||
print(f" Email: admin@aduanasoft.com")
|
||||
print(f" Password: admin123")
|
||||
|
||||
except Exception as e:
|
||||
await session.rollback()
|
||||
print(f"❌ Error: {e}")
|
||||
raise
|
||||
|
||||
if __name__ == "__main__":
|
||||
print("=" * 60)
|
||||
print("ACTUALIZAR PASSWORD DEL ADMIN")
|
||||
print("=" * 60)
|
||||
asyncio.run(fix_admin_password())
|
||||
print("=" * 60)
|
||||
Reference in New Issue
Block a user