Files
ewoooc/scripts/archive/init_admin.py
ogt 1b4f3a7bbe
Some checks failed
CD Pipeline / deploy (push) Failing after 59s
feat: EwoooC 初始化 — 完整專案推版至 Gitea
- 建立 Gitea Actions CD pipeline (.gitea/workflows/cd.yaml)
- 部署模式: rsync Python 檔案至 188 → docker restart (volume mount)
- Dockerfile/requirements 變動時自動重建 Docker image
- 部署通知: Telegram (開始/成功/失敗)
- 健康檢查: https://mo.wooo.work/health (最多 5 次重試)
- 同步最新 CLAUDE.md / ADR-008 / memory (2026-04-19)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-19 01:21:13 +08:00

85 lines
2.2 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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()