summaryrefslogtreecommitdiff
path: root/addons/website_crm_partner_assign/models
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2019-04-04 11:20:03 +0200
committerChristophe Simonis <chs@odoo.com>2019-04-04 11:20:03 +0200
commitd32420397d6500f46d3defa2a840e4f580a13496 (patch)
tree4cdf23dbe8147fa8642f9f42e6778a7985eb7cae /addons/website_crm_partner_assign/models
parentc0cf4049b2a4a7c51169ea88569fd7f89e503a59 (diff)
parent251021796c25676f5c341e0a3fc3ba4c9feb85bb (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.py34
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)