32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
from odoo import models
|
|
|
|
|
|
class IrBinary(models.AbstractModel):
|
|
_inherit = 'ir.binary'
|
|
|
|
def _find_record(
|
|
self, xmlid=None, res_model='ir.attachment', res_id=None,
|
|
access_token=None,
|
|
):
|
|
record = None
|
|
if xmlid:
|
|
website = self.env['website'].get_current_website()
|
|
if website.theme_id:
|
|
domain = [('key', '=', xmlid), ('website_id', '=', website.id)]
|
|
Attachment = self.env['ir.attachment']
|
|
if self.env.user.share:
|
|
domain.append(('public', '=', True))
|
|
Attachment = Attachment.sudo()
|
|
record = Attachment.search(domain, limit=1)
|
|
|
|
if not record:
|
|
record = super()._find_record(xmlid, res_model, res_id, access_token)
|
|
|
|
return record
|
|
|
|
def _find_record_check_access(self, record, access_token):
|
|
if 'website_published' in record._fields and record.sudo().website_published:
|
|
return record.sudo()
|
|
|
|
return super()._find_record_check_access(record, access_token)
|