diff --git a/addons/portal/controllers/mail.py b/addons/portal/controllers/mail.py index 3a59ecd70b3..b8ff6f8f2fd 100644 --- a/addons/portal/controllers/mail.py +++ b/addons/portal/controllers/mail.py @@ -5,6 +5,7 @@ from werkzeug.exceptions import NotFound, Forbidden from odoo import http from odoo.http import request +from odoo.osv import expression from odoo.tools import consteq @@ -95,6 +96,9 @@ class PortalChatter(http.Controller): access_as_sudo = _has_token_access(res_model, res_id, token=kw.get('token')) if not access_as_sudo: # if token is not correct, raise Forbidden raise Forbidden() + # Non-employee see only messages with not internal subtype (aka, no internal logs) + if not request.env['res.users'].has_group('base.group_user'): + domain = expression.AND([['&', '&', ('subtype_id', '!=', False), ('subtype_id.internal', '=', False)], domain]) Message = request.env['mail.message'].sudo() return { 'messages': Message.search(domain, limit=limit, offset=offset).portal_message_format(),