social/mail_gateway/controllers/main.py

27 lines
1018 B
Python

from odoo import http
from odoo.http import request
from odoo.addons.mail.controllers.bus import MailChatController
from odoo.addons.mail.controllers.main import MailController
class NewMailController(MailController):
@http.route("/mail/init_messaging", type="json", auth="user")
def mail_init_messaging(self):
result = super().mail_init_messaging()
result["broker_slots"] = request.env["mail.broker"].broker_fetch_slot()
return result
class NewMailChatController(MailChatController):
def _poll(self, dbname, channels, last, options):
if request.session.uid:
if request.env.user.has_group("mail_broker.broker_user"):
channels = list(channels)
for channel in request.env["mail.channel"].search(
[("public", "=", "broker")]
):
channels.append((request.db, "mail.channel", channel.id))
result = super()._poll(dbname, channels, last, options)
return result