def clean(self): "sanitize inputs" if self.signature_type == 1: self.signature_content = strip_tags(self.signature_content) else: cleaner = SignatureCleaner(remove_tags=UNCLEANTAGS, safe_attrs_only=False) self.signature_content = cleaner.clean_html(self.signature_content)
def write_html_sig(sigfile, sig, basedir, is_domain, logger): "write html sig" cleaner = SignatureCleaner(style=True, remove_tags=UNCLEANTAGS, safe_attrs_only=False) html = cleaner.clean_html(sig.signature_content) html = fragments_fromstring(html)[0] for element, attribute, link, pos in iterlinks(html): if link.startswith('/settings/imgs/'): view, args, kwargs = resolve(link) view = None args = None img = SignatureImg.objects.get(pk=kwargs['img_id']) if is_domain: imgfile = '%s/domains/imgs/%s' % (basedir, img.name) else: imgfile = '%s/users/imgs/%s' % (basedir, img.name) element.attrib['src'] = 'cid:%s' % img.name imghandle = open(imgfile, 'wb') imghandle.write(base64.decodestring(img.image)) imghandle.close() logger.info(_("Wrote img: %(img)s") % dict(img=imgfile)) # update the sig with image obtained sig.image = img if 'link' in locals(): sig.save() sighandle = open(sigfile, 'w') if not sig.signature_content.startswith('--'): sighandle.write('<br/>--<br/>') sighandle.write(tostring(html)) logger.info(_("Wrote html signature: %(sig)s") % dict(sig=sigfile))