From cb3e415a7cbaa169deb46711858d16a90ca1c89e Mon Sep 17 00:00:00 2001 From: Goffin Simon Date: Wed, 21 Dec 2016 11:57:04 +0100 Subject: [PATCH] [FIX] mail: Allow modifying followers in multi company/with private channel It's a backport for https://github.com/odoo/odoo/commit/b795d69ce8aca2e88182c6d6d6b7af54d536f9dd It also backports this fix https://github.com/odoo/odoo/commit/c49265afa1b0610d52fd356df26491546f1905bf It also fixes #13578 --- addons/mail/controllers/main.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/addons/mail/controllers/main.py b/addons/mail/controllers/main.py index d9e55765df1..2a632d09f9a 100644 --- a/addons/mail/controllers/main.py +++ b/addons/mail/controllers/main.py @@ -112,7 +112,14 @@ class MailController(http.Controller): def read_followers(self, follower_ids): result = [] is_editable = request.env.user.has_group('base.group_no_one') - for follower in request.env['mail.followers'].browse(follower_ids): + follower_recs = request.env['mail.followers'].sudo().browse(follower_ids) + if follower_recs: + mapped_data = {} + for follower_rec in follower_recs: + mapped_data.setdefault(follower_rec.res_model, set()).add(follower_rec.res_id) + for res_model, res_ids in mapped_data.iteritems(): + request.env[res_model].browse(list(res_ids)).check_access_rule("read") + for follower in follower_recs: result.append({ 'id': follower.id, 'name': follower.partner_id.name or follower.channel_id.name,