From dca2486eccb0394a30aab89fcc1092fc84244dbe Mon Sep 17 00:00:00 2001 From: Place Jean-Marie Date: Fri, 5 Nov 2021 10:26:35 +0100 Subject: [PATCH] adapt sco_bulletin_pdf.py --- app/scodoc/sco_bulletins_pdf.py | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/app/scodoc/sco_bulletins_pdf.py b/app/scodoc/sco_bulletins_pdf.py index 81df5b1e..438ec236 100644 --- a/app/scodoc/sco_bulletins_pdf.py +++ b/app/scodoc/sco_bulletins_pdf.py @@ -68,6 +68,7 @@ from app.scodoc import sco_pdf from app.scodoc import sco_preferences from app.scodoc import sco_etud import sco_version +from app.scodoc.sco_logos import find_logo def pdfassemblebulletins( @@ -141,24 +142,15 @@ def process_field(field, cdict, style, suppress_empty_pars=False, format="pdf"): return text # --- PDF format: # handle logos: - image_dir = scu.SCODOC_LOGOS_DIR + "/logos_" + g.scodoc_dept + "/" - if not os.path.exists(image_dir): - image_dir = scu.SCODOC_LOGOS_DIR + "/" # use global logos - if not os.path.exists(image_dir): - log(f"Warning: missing global logo directory ({image_dir})") - image_dir = None - + breakpoint() + # la protection contre des noms malveillants est assuré par l'utilisation de secure_filename dans la classe Logo text = re.sub( - r"<(\s*)logo(.*?)src\s*=\s*(.*?)>", r"<\1logo\2\3>", text - ) # remove forbidden src attribute - if image_dir is not None: + r"<(\s*)logo(.*?)src\s*=\s*(.*?)>", r"<\1logo\2\3>", text) # remove forbidden src attribute + image = find_logo(logoname=text, dept_id=g.scodoc_dept_id) + if image is not None: text = re.sub( r'<\s*logo(.*?)name\s*=\s*"(\w*?)"(.*?)/?>', - r'' % image_dir, - text, - ) - # nota: le match sur \w*? donne le nom du logo et interdit les .. et autres - # tentatives d'acceder à d'autres fichiers ! + r'' % image.filepath,) # log('field: %s' % (text)) return sco_pdf.makeParas(text, style, suppress_empty=suppress_empty_pars)