diff options
| author | Christophe Simonis <chs@odoo.com> | 2019-04-04 11:20:03 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2019-04-04 11:20:03 +0200 |
| commit | d32420397d6500f46d3defa2a840e4f580a13496 (patch) | |
| tree | 4cdf23dbe8147fa8642f9f42e6778a7985eb7cae /addons/website_crm_partner_assign/models | |
| parent | c0cf4049b2a4a7c51169ea88569fd7f89e503a59 (diff) | |
| parent | 251021796c25676f5c341e0a3fc3ba4c9feb85bb (diff) | |
[MERGE] forward port branch 12.0 up to 251021796c2
Diffstat (limited to 'addons/website_crm_partner_assign/models')
| -rw-r--r-- | addons/website_crm_partner_assign/models/crm_lead.py | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/addons/website_crm_partner_assign/models/crm_lead.py b/addons/website_crm_partner_assign/models/crm_lead.py index cd90ea185ef..cfe2cd78ade 100644 --- a/addons/website_crm_partner_assign/models/crm_lead.py +++ b/addons/website_crm_partner_assign/models/crm_lead.py @@ -4,7 +4,7 @@ import random from odoo import api, fields, models, _ -from odoo.exceptions import AccessDenied +from odoo.exceptions import AccessDenied, AccessError class CrmLead(models.Model): @@ -270,3 +270,35 @@ class CrmLead(models.Model): return { 'id': lead.id } + + # + # DO NOT FORWARD PORT IN MASTER + # instead, crm.lead should implement portal.mixin + # + @api.multi + def get_access_action(self, access_uid=None): + """ Instead of the classic form view, redirect to the online document for + portal users or if force_website=True in the context. """ + self.ensure_one() + + user, record = self.env.user, self + if access_uid: + try: + record.check_access_rights('read') + record.check_access_rule("read") + except AccessError: + return super(CrmLead, self).get_access_action(access_uid) + user = self.env['res.users'].sudo().browse(access_uid) + record = self.sudo(user) + if user.share or self.env.context.get('force_website'): + try: + record.check_access_rights('read') + record.check_access_rule('read') + except AccessError: + pass + else: + return { + 'type': 'ir.actions.act_url', + 'url': '/my/opportunity/%s' % record.id, + } + return super(CrmLead, self).get_access_action(access_uid) |
