diff --git a/odoo/addons/base/i18n/base.pot b/odoo/addons/base/i18n/base.pot index a2eee7ba4ce..f867502b0a5 100644 --- a/odoo/addons/base/i18n/base.pot +++ b/odoo/addons/base/i18n/base.pot @@ -28591,6 +28591,12 @@ msgstr "" msgid "binary" msgstr "" +#. module: base +#: code:addons/base/models/ir_attachment.py:0 +#, python-format +msgid "binary_field_real_user should be a res.users record." +msgstr "" + #. module: base #: model:ir.model.fields.selection,name:base.selection__ir_model_fields__ttype__boolean msgid "boolean" diff --git a/odoo/addons/base/models/ir_attachment.py b/odoo/addons/base/models/ir_attachment.py index 9190590cf29..e8421b143bf 100644 --- a/odoo/addons/base/models/ir_attachment.py +++ b/odoo/addons/base/models/ir_attachment.py @@ -341,6 +341,8 @@ class IrAttachment(models.Model): 'xml' in mimetype and # other xml (svg, text/xml, etc) not 'openxmlformats' in mimetype) # exception for Office formats user = self.env.context.get('binary_field_real_user', self.env.user) + if not isinstance(user, self.pool['res.users']): + raise UserError(_("binary_field_real_user should be a res.users record.")) force_text = xml_like and ( self.env.context.get('attachments_mime_plainxml') or not self.env['ir.ui.view'].with_user(user).check_access_rights('write', False))