oca-ocb-core/odoo-bringout-oca-ocb-mail/mail/controllers/message_reaction.py
Ernad Husremovic 2d3ee4855a 19.0 vanilla
2026-03-09 09:30:27 +01:00

27 lines
1.2 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from werkzeug.exceptions import NotFound
from odoo import http
from odoo.http import request
from odoo.addons.mail.controllers.thread import ThreadController
from odoo.addons.mail.tools.discuss import add_guest_to_context, Store
class MessageReactionController(ThreadController):
@http.route("/mail/message/reaction", methods=["POST"], type="jsonrpc", auth="public")
@add_guest_to_context
def mail_message_reaction(self, message_id, content, action, **kwargs):
message = self._get_message_with_access(int(message_id), mode="create", **kwargs)
if not message:
raise NotFound()
partner, guest = self._get_reaction_author(message, **kwargs)
if not partner and not guest:
raise NotFound()
store = Store()
# sudo: mail.message - access mail.message.reaction through an accessible message is allowed
message.sudo()._message_reaction(content, action, partner, guest, store)
return store.get_result()
def _get_reaction_author(self, message, **kwargs):
return request.env["res.partner"]._get_current_persona()