diff --git a/openerp/addons/base/ir/ir_attachment.py b/openerp/addons/base/ir/ir_attachment.py index 243fd7222de..80699e28086 100644 --- a/openerp/addons/base/ir/ir_attachment.py +++ b/openerp/addons/base/ir/ir_attachment.py @@ -212,12 +212,9 @@ class ir_attachment(osv.osv): def _check_contents(self, cr, uid, values, context=None): mimetype = values['mimetype'] = self._compute_mimetype(values) - needs_escape = 'htm' in mimetype or '/ht' in mimetype # hta, html, xhtml, etc. - if needs_escape and not self.pool['res.users']._is_admin(cr, uid, [uid]): - if 'datas' in values: - values['datas'] = html_escape(values['datas'].decode('base64')).encode('base64') - else: - values['mimetype'] = 'text/plain' + xml_like = 'ht' in mimetype or 'xml' in mimetype # hta, html, xhtml, etc. + if xml_like and not self.pool['res.users']._is_admin(cr, uid, [uid]): + values['mimetype'] = 'text/plain' return values def _index(self, cr, uid, bin_data, datas_fname, file_type): diff --git a/openerp/addons/base/ir/ir_http.py b/openerp/addons/base/ir/ir_http.py index e04bd270eea..90f03470696 100644 --- a/openerp/addons/base/ir/ir_http.py +++ b/openerp/addons/base/ir/ir_http.py @@ -295,10 +295,9 @@ class ir_http(osv.AbstractModel): filename = "%s-%s-%s" % (obj._model._name, obj.id, field) # mimetype + mimetype = 'mimetype' in obj and obj.mimetype or False if not mimetype: - if 'mimetype' in obj and obj.mimetype and obj.mimetype != 'application/octet-stream': - mimetype = obj.mimetype - elif filename: + if filename: mimetype = mimetypes.guess_type(filename)[0] if not mimetype and getattr(env[model]._fields[field], 'attachment', False): # for binary fields, fetch the ir_attachement for mimetype check