#!/usr/bin/env python3 """ 初始化管理員帳號腳本 用於建立系統的第一個管理員帳號。 執行方式:python init_admin.py 預設帳號:admin 預設密碼:Wooo@2026! (符合密碼複雜度要求) """ import os import sys # 確保專案根目錄在 sys.path BASE_DIR = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, BASE_DIR) from database.manager import DatabaseManager, get_session from services.user_service import create_initial_admin from database.user_models import User def main(): print("=" * 60) print(" WOOO TECH - 初始化管理員帳號") print("=" * 60) print() # 初始化資料庫(確保資料表已建立) print("1. 初始化資料庫...") try: db_manager = DatabaseManager() print(" 資料庫連線成功") except Exception as e: print(f" 資料庫連線失敗: {e}") sys.exit(1) # 取得資料庫 session db_session = get_session() try: # 檢查是否已有管理員 print() print("2. 檢查現有管理員...") existing_admin = db_session.query(User).filter(User.role == User.ROLE_ADMIN).first() if existing_admin: print(f" 已存在管理員帳號: {existing_admin.username}") print() print(" 如需重設密碼,請使用用戶管理介面或直接修改資料庫。") print() return # 建立管理員 print() print("3. 建立管理員帳號...") success, message = create_initial_admin(db_session) if success: print(f" {message}") print() print("=" * 60) print(" 管理員帳號建立成功!") print("=" * 60) print() print(" 帳號: admin") print(" 密碼: Wooo@2026!") print() print(" 請登入後立即修改密碼!") print("=" * 60) else: print(f" {message}") except Exception as e: print(f" 發生錯誤: {e}") import traceback traceback.print_exc() finally: db_session.close() if __name__ == '__main__': main()