* = website_livechat Prevents from leaking unnecessary information to livechat clients. opw-2453956 closes odoo/odoo#82026 X-original-commit: 5ec191d288d5b44f78cd1f6980c47bb64cfd9bd1 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com> Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
22 lines
1.1 KiB
Python
22 lines
1.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import models
|
|
|
|
|
|
class MailMessage(models.Model):
|
|
_inherit = 'mail.message'
|
|
|
|
def _message_format(self, fnames, format_reply=True):
|
|
"""Override to remove email_from and to return the livechat username if applicable.
|
|
A third param is added to the author_id tuple in this case to be able to differentiate it
|
|
from the normal name in client code."""
|
|
vals_list = super()._message_format(fnames=fnames, format_reply=format_reply)
|
|
for vals in vals_list:
|
|
message_sudo = self.browse(vals['id']).sudo().with_prefetch(self.ids)
|
|
if message_sudo.model == 'mail.channel' and self.env['mail.channel'].browse(message_sudo.res_id).channel_type == 'livechat':
|
|
vals.pop('email_from')
|
|
if message_sudo.author_id.user_livechat_username:
|
|
vals['author_id'] = (message_sudo.author_id.id, message_sudo.author_id.user_livechat_username, message_sudo.author_id.user_livechat_username)
|
|
return vals_list
|