f1ad4273f4
- FastAPI 单进程托管 frontend/dist,systemd 替代 PM2 - 超级管理员 admin、注册开关与用户管理 - README/DEPLOY/USAGE 说明:改代码须本地构建 dist 后 push,服务器 update.sh - 提交 frontend/dist 与 build-frontend 脚本
25 lines
738 B
Python
25 lines
738 B
Python
from fastapi import APIRouter, Depends
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.core.database import get_db
|
|
from app.models.user import SystemSettings
|
|
from app.schemas import PublicSettingsOut
|
|
|
|
router = APIRouter(prefix="/settings", tags=["settings"])
|
|
|
|
|
|
def get_or_create_settings(db: Session) -> SystemSettings:
|
|
row = db.get(SystemSettings, 1)
|
|
if row is None:
|
|
row = SystemSettings(id=1, registration_enabled=True)
|
|
db.add(row)
|
|
db.commit()
|
|
db.refresh(row)
|
|
return row
|
|
|
|
|
|
@router.get("/public", response_model=PublicSettingsOut)
|
|
def public_settings(db: Session = Depends(get_db)):
|
|
row = get_or_create_settings(db)
|
|
return PublicSettingsOut(registration_enabled=row.registration_enabled)
|