UI优化完善初版
This commit is contained in:
@@ -5,13 +5,13 @@ from pydantic import BaseModel
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
|
||||
from app.database import get_db
|
||||
from app.models import Topic, PublishRecord, User
|
||||
from ..database import get_db
|
||||
from ..models import Topic, PublishRecord, User
|
||||
from sqlalchemy.orm import Session
|
||||
from .auth import verify_token
|
||||
from .auth import get_current_admin
|
||||
from ..core.audit_logger import audit_log
|
||||
|
||||
router = APIRouter()
|
||||
router = APIRouter(prefix="/api/publishing", tags=["publishing"])
|
||||
|
||||
class PublishRequest(BaseModel):
|
||||
topic_id: str
|
||||
@@ -21,26 +21,14 @@ class PublishResponse(BaseModel):
|
||||
topic_id: str
|
||||
message: str
|
||||
|
||||
def get_current_user(request: Request, db: Session = Depends(get_db)) -> User:
|
||||
"""获取当前登录用户(可选,未登录也允许,但记录为 anonymous)"""
|
||||
auth_header = request.headers.get("Authorization")
|
||||
if not auth_header or not auth_header.startswith("Bearer "):
|
||||
return None
|
||||
token = auth_header.split(" ")[1]
|
||||
try:
|
||||
from .auth import verify_token
|
||||
return verify_token(token, db)
|
||||
except Exception:
|
||||
return None
|
||||
|
||||
@router.post("/api/publishing/create", response_model=PublishResponse)
|
||||
@router.post("/create", response_model=PublishResponse)
|
||||
async def create_publish_record(
|
||||
req: PublishRequest,
|
||||
request: Request,
|
||||
db: Session = Depends(get_db),
|
||||
current_user: User = Depends(get_current_user)
|
||||
current_user: User = Depends(get_current_admin)
|
||||
):
|
||||
"""标记选题为已发布,并创建发布记录"""
|
||||
"""标记选题为已发布,并创建发布记录(管理员)"""
|
||||
try:
|
||||
# 查找选题
|
||||
topic = db.query(Topic).filter(Topic.id == req.topic_id).first()
|
||||
@@ -56,7 +44,7 @@ async def create_publish_record(
|
||||
topic.published_at = datetime.now().date() # 设置发布时间为今天
|
||||
|
||||
# 创建发布记录
|
||||
operator = current_user.username if current_user else 'anonymous'
|
||||
operator = current_user.username
|
||||
record = PublishRecord(
|
||||
topic_id=req.topic_id,
|
||||
platform='all',
|
||||
|
||||
Reference in New Issue
Block a user