feat(api): 为汇总记录提交添加来源验证和来源字段
- 移除 api_submit_summary 的 csrf_exempt 装饰器 - 允许客户端提交来源字段 - 在提交工具中添加来源输入框 - 自动生成来源信息当未提供时
This commit is contained in:
@@ -153,10 +153,17 @@ class SubmitSummaryTool(QMainWindow):
|
||||
self.content_edit.setPlaceholderText("输入要提交的内容...")
|
||||
self.content_edit.setMaximumHeight(100)
|
||||
|
||||
source_layout = QHBoxLayout()
|
||||
source_layout.addWidget(QLabel("来源:"))
|
||||
self.source_edit = QLineEdit()
|
||||
self.source_edit.setPlaceholderText("留空则自动生成")
|
||||
source_layout.addWidget(self.source_edit)
|
||||
|
||||
submit_btn = QPushButton("提交汇总记录")
|
||||
submit_btn.clicked.connect(self.manual_submit)
|
||||
|
||||
layout.addWidget(self.content_edit)
|
||||
layout.addLayout(source_layout)
|
||||
layout.addWidget(submit_btn)
|
||||
|
||||
group.setLayout(layout)
|
||||
@@ -264,7 +271,7 @@ class SubmitSummaryTool(QMainWindow):
|
||||
def auto_submit_content(self):
|
||||
"""自动提交系统监控内容"""
|
||||
content = self.get_system_content()
|
||||
self.submit_summary(content)
|
||||
self.submit_summary(content, source=None)
|
||||
|
||||
def manual_submit(self):
|
||||
"""手动提交"""
|
||||
@@ -272,7 +279,8 @@ class SubmitSummaryTool(QMainWindow):
|
||||
if not content:
|
||||
QMessageBox.warning(self, "警告", "请输入要提交的内容")
|
||||
return
|
||||
self.submit_summary(content)
|
||||
source = self.source_edit.text().strip()
|
||||
self.submit_summary(content, source)
|
||||
self.content_edit.clear()
|
||||
|
||||
def get_csrf_token(self):
|
||||
@@ -299,7 +307,7 @@ class SubmitSummaryTool(QMainWindow):
|
||||
self.log(f"获取CSRF token失败: {str(e)}")
|
||||
return None, None
|
||||
|
||||
def submit_summary(self, content):
|
||||
def submit_summary(self, content, source=""):
|
||||
"""提交汇总记录到家庭日报系统"""
|
||||
submit_url = f"{self.server_url}/api/v1/summary/submit/"
|
||||
|
||||
@@ -321,7 +329,11 @@ class SubmitSummaryTool(QMainWindow):
|
||||
self.log(f"设置CSRF header: X-CSRFToken = {csrf_token[:20]}...")
|
||||
|
||||
self.log(f"发送POST请求到: {submit_url}")
|
||||
response = session.post(submit_url, data={'content': content}, headers=headers, timeout=10)
|
||||
post_data = {'content': content}
|
||||
if source:
|
||||
post_data['source'] = source
|
||||
self.log(f"提交来源: {source}")
|
||||
response = session.post(submit_url, data=post_data, headers=headers, timeout=10)
|
||||
|
||||
self.log(f"服务器响应状态码: {response.status_code}")
|
||||
self.log(f"响应Headers: {dict(response.headers)}")
|
||||
|
||||
Reference in New Issue
Block a user