Spaces:
Paused
Paused
| import os | |
| import sys | |
| # Add backend to path | |
| sys.path.append(os.getcwd()) | |
| sys.path.append(os.path.join(os.getcwd(), "backend")) | |
| import uuid | |
| from app.services.infrastructure.auth_service import auth_service | |
| from core.database import User, UserRole, create_engine_and_session | |
| def seed(): | |
| # Create analyst1 | |
| seed_user("analyst@zenith.com", "Test Analyst", "Test123!", UserRole.ANALYST) | |
| # Create analyst2 | |
| seed_user("analyst2@zenith.com", "Analyst Two", "Test123!", UserRole.ANALYST) | |
| def seed_user(email, username, password, role): | |
| _engine, session_local = create_engine_and_session() | |
| db = session_local() | |
| # Check if exists (scan all because of encryption) | |
| exists = False | |
| try: | |
| for u in db.query(User).all(): | |
| if u.email == email: | |
| exists = True | |
| print(f"User {email} already exists.") | |
| # Update password and username to be sure | |
| u.password_hash = auth_service.hash_password(password) | |
| u.username = email # Consistent with previous fix | |
| u.is_active = True | |
| db.commit() | |
| print("Password and username updated.") | |
| break | |
| except Exception as e: | |
| print(f"Error checking users: {e}") | |
| if not exists: | |
| print(f"Creating user {email}...") | |
| try: | |
| pwd_hash = auth_service.hash_password(password) | |
| user = User( | |
| id=str(uuid.uuid4()), | |
| username=email, # Consistent with previous fix | |
| email=email, | |
| full_name=username, | |
| password_hash=pwd_hash, | |
| role=role, | |
| is_active=True, | |
| ) | |
| db.add(user) | |
| db.commit() | |
| print(f"User {email} created.") | |
| except Exception as e: | |
| print(f"Error creating user {email}: {e}") | |
| db.rollback() | |
| db.close() | |
| if __name__ == "__main__": | |
| seed() | |