diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index cf7935dc160..8179ffa0541 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -23,8 +23,9 @@ from openerp.addons.base_status.base_stage import base_stage import crm from datetime import datetime from operator import itemgetter -from openerp.osv import fields, osv +from openerp.osv import fields, osv, orm import time +from openerp import SUPERUSER_ID from openerp import tools from openerp.tools.translate import _ from openerp.tools import html2plaintext @@ -972,15 +973,18 @@ class crm_lead(base_stage, format_address, osv.osv): def message_get_reply_to(self, cr, uid, ids, context=None): """ Override to get the reply_to of the parent project. """ return [lead.section_id.message_get_reply_to()[0] if lead.section_id else False - for lead in self.browse(cr, uid, ids, context=context)] + for lead in self.browse(cr, SUPERUSER_ID, ids, context=context)] def message_get_suggested_recipients(self, cr, uid, ids, context=None): recipients = super(crm_lead, self).message_get_suggested_recipients(cr, uid, ids, context=context) - for lead in self.browse(cr, uid, ids, context=context): - if lead.partner_id: - self._message_add_suggested_recipient(cr, uid, recipients, lead, partner=lead.partner_id, reason=_('Customer')) - elif lead.email_from: - self._message_add_suggested_recipient(cr, uid, recipients, lead, email=lead.email_from, reason=_('Customer Email')) + try: + for lead in self.browse(cr, uid, ids, context=context): + if lead.partner_id: + self._message_add_suggested_recipient(cr, uid, recipients, lead, partner=lead.partner_id, reason=_('Customer')) + elif lead.email_from: + self._message_add_suggested_recipient(cr, uid, recipients, lead, email=lead.email_from, reason=_('Customer Email')) + except (osv.except_osv, orm.except_orm): # no read access rights -> just ignore suggested recipients because this imply modifying followers + pass return recipients def message_new(self, cr, uid, msg, custom_values=None, context=None): diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index 631119ad28d..83a1df96bdf 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -33,7 +33,7 @@ from email.message import Message from openerp import tools from openerp import SUPERUSER_ID from openerp.addons.mail.mail_message import decode -from openerp.osv import fields, osv +from openerp.osv import fields, osv, orm from openerp.tools.safe_eval import safe_eval as eval from openerp.tools.translate import _ @@ -419,7 +419,7 @@ class mail_thread(osv.AbstractModel): return ["%s@%s" % (record['alias_name'], record['alias_domain']) if record.get('alias_domain') and record.get('alias_name') else False - for record in self.read(cr, uid, ids, ['alias_name', 'alias_domain'], context=context)] + for record in self.read(cr, SUPERUSER_ID, ids, ['alias_name', 'alias_domain'], context=context)] #------------------------------------------------------ # Mail gateway @@ -1156,7 +1156,10 @@ class mail_thread(osv.AbstractModel): """ Add partners to the records followers. """ user_pid = self.pool.get('res.users').read(cr, uid, uid, ['partner_id'], context=context)['partner_id'][0] if set(partner_ids) == set([user_pid]): - self.check_access_rights(cr, uid, 'read') + try: + self.check_access_rights(cr, uid, 'read') + except (osv.except_osv, orm.except_orm): + return else: self.check_access_rights(cr, uid, 'write')