增强文集导出用户验证,优化文集PDF导出只有封面的问题

This commit is contained in:
yangjian 2021-04-26 21:47:38 +08:00
parent 1baceadcfd
commit f08ce79cd6
2 changed files with 15 additions and 4 deletions

View File

@ -5,13 +5,15 @@
# 博客地址zmister.com # 博客地址zmister.com
# MrDoc文集文档导出相关功能代码 # MrDoc文集文档导出相关功能代码
from django.conf import settings from django.conf import settings
from django.core.exceptions import ObjectDoesNotExist
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from bs4 import BeautifulSoup
import subprocess import subprocess
import datetime,time import datetime,time
import re import re
import os,sys import os,sys
import shutil import shutil
from bs4 import BeautifulSoup
from django.core.wsgi import get_wsgi_application from django.core.wsgi import get_wsgi_application
sys.path.extend([settings.BASE_DIR]) sys.path.extend([settings.BASE_DIR])
@ -652,9 +654,10 @@ class ReportEPUB():
# 导出PDF # 导出PDF
@logger.catch() @logger.catch()
class ReportPDF(): class ReportPDF():
def __init__(self,project_id): def __init__(self,project_id,user_id):
# 查询文集信息 # 查询文集信息
self.pro_id = project_id self.pro_id = project_id
self.user_id = user_id
self.editormd_html_str = ''' self.editormd_html_str = '''
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
@ -667,7 +670,9 @@ class ReportPDF():
<link rel="stylesheet" href="../../static/editor.md/css/editormd.css" /> <link rel="stylesheet" href="../../static/editor.md/css/editormd.css" />
<link rel="stylesheet" href="../../static/mrdoc/mrdoc-docs.css" /> <link rel="stylesheet" href="../../static/mrdoc/mrdoc-docs.css" />
<script src="../../static/jquery/3.1.1/jquery.min.js"></script> <script src="../../static/jquery/3.1.1/jquery.min.js"></script>
<script>var iframe_whitelist = []</script>
<script src="../../static/editor.md/lib/marked.min.js"></script> <script src="../../static/editor.md/lib/marked.min.js"></script>
<script src="../../static/editor.md/lib/purify.min.js"></script>
<script src="../../static/editor.md/lib/prettify.min.js"></script> <script src="../../static/editor.md/lib/prettify.min.js"></script>
<script src="../../static/editor.md/lib/raphael.min.js"></script> <script src="../../static/editor.md/lib/raphael.min.js"></script>
<script src="../../static/editor.md/lib/underscore.min.js"></script> <script src="../../static/editor.md/lib/underscore.min.js"></script>
@ -745,8 +750,13 @@ class ReportPDF():
def work(self): def work(self):
try: try:
project = Project.objects.get(pk=self.pro_id) user = User.objects.get(id=self.user_id)
project = Project.objects.get(pk=self.pro_id,create_user=user)
except ObjectDoesNotExist:
logger.error("查询文集或用户失败")
return False
except: except:
logger.exception("未知异常")
return False return False
# 拼接文档的HTML字符串 # 拼接文档的HTML字符串
data = Doc.objects.filter(top_doc=self.pro_id,parent_doc=0).order_by("sort") data = Doc.objects.filter(top_doc=self.pro_id,parent_doc=0).order_by("sort")

View File

@ -2146,7 +2146,8 @@ def genera_project_file(request):
elif report_type in ['pdf']: elif report_type in ['pdf']:
try: try:
report_project = ReportPDF( report_project = ReportPDF(
project_id=project.id project_id=project.id,
user_id=request.user.id
).work() ).work()
if report_project is False: if report_project is False:
return JsonResponse({'status':False,'data':_('生成出错')}) return JsonResponse({'status':False,'data':_('生成出错')})