This commit fixes the multi_company access error when the user is attempting to see a record belonging to another company then the one he is logged in to from the plugins, upon login, it returns all the company ids related to the user so that the plugin redirects the user to the record with all companies ticked. Task-2541205 closes odoo/odoo#72529 Plugin-pr: https://github.com/odoo/mail-client-extensions/pull/10 X-original-commit: 92972fa16920e070e533040439243a0257357aad Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
65 lines
2.8 KiB
Python
65 lines
2.8 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
import werkzeug
|
|
|
|
from odoo import http
|
|
from odoo.http import request
|
|
from odoo.tools import html2plaintext
|
|
|
|
|
|
class CrmClient(http.Controller):
|
|
|
|
@http.route(route='/mail_client_extension/log_single_mail_content',
|
|
type="json", auth="outlook", cors="*")
|
|
def log_single_mail_content(self, lead, message, **kw):
|
|
"""
|
|
deprecated as of saas-14.3, not needed for newer versions of the mail plugin but necessary
|
|
for supporting older versions
|
|
"""
|
|
crm_lead = request.env['crm.lead'].browse(lead)
|
|
crm_lead.message_post(body=message)
|
|
|
|
@http.route('/mail_client_extension/lead/get_by_partner_id', type="json", auth="outlook", cors="*")
|
|
def crm_lead_get_by_partner_id(self, partner, limit=5, offset=0, **kwargs):
|
|
"""
|
|
deprecated as of saas-14.3, not needed for newer versions of the mail plugin but necessary
|
|
for supporting older versions
|
|
"""
|
|
partner_instance = request.env['res.partner'].browse(partner)
|
|
return {'leads': self._fetch_partner_leads(partner_instance, limit, offset)}
|
|
|
|
@http.route('/mail_client_extension/lead/create_from_partner', type='http', auth='user', methods=['GET'])
|
|
def crm_lead_redirect_create_form_view(self, partner_id):
|
|
"""
|
|
deprecated as of saas-14.3, not needed for newer versions of the mail plugin but necessary
|
|
for supporting older versions
|
|
"""
|
|
server_action = http.request.env.ref("crm_mail_plugin.lead_creation_prefilled_action")
|
|
return werkzeug.utils.redirect(
|
|
'/web#action=%s&model=crm.lead&partner_id=%s' % (server_action.id, int(partner_id)))
|
|
|
|
@http.route('/mail_plugin/lead/create', type='json', auth='outlook', cors="*")
|
|
def crm_lead_create(self, partner_id, email_body, email_subject):
|
|
partner = request.env['res.partner'].browse(partner_id).exists()
|
|
if not partner:
|
|
return {'error': 'partner_not_found'}
|
|
|
|
record = request.env['crm.lead'].create({
|
|
'name': html2plaintext(email_subject),
|
|
'partner_id': partner_id,
|
|
'description': html2plaintext(email_body),
|
|
})
|
|
|
|
return {'lead_id': record.id}
|
|
|
|
@http.route('/mail_client_extension/lead/open', type='http', auth='user')
|
|
def crm_lead_open(self, lead_id):
|
|
"""
|
|
deprecated as of saas-14.3, not needed for newer versions of the mail plugin but necessary
|
|
for supporting older versions
|
|
"""
|
|
action = http.request.env.ref("crm.crm_lead_view_form")
|
|
url = '/web#id=%s&action=%s&model=crm.lead&edit=1&model=crm.lead' % (lead_id, action.id)
|
|
return werkzeug.utils.redirect(url)
|