diff options
| author | Thibault Delavallée <tde@odoo.com> | 2020-08-26 12:45:54 +0000 |
|---|---|---|
| committer | Thibault Delavallée <tde@odoo.com> | 2020-08-28 12:42:32 +0000 |
| commit | 42910ce25f06a31af3cfbc8d5d41e443ee754c34 (patch) | |
| tree | c06be39f88bf700959ceb2e72bf8098a408cde0f /addons/test_mail | |
| parent | f45d7ace687911f4090c081bdc0e8127c382bd64 (diff) | |
[IMP] mail: do not auto-subscribe inactive partners
Tested flows
* posting a message through an inactive partner (like automated actions
posting a message on behalf of an inactive partner);
* automatic subscription based on parent record (like an archived user and
partner following a project that should not be added as follower of sub
tasks);
* automatic subscription based on responsible field: this is already fixed
as user has to be active to receive a notification and be added in
followers;
LINKS
Task ID-2326281
PR odoo/odoo#56560
Diffstat (limited to 'addons/test_mail')
| -rw-r--r-- | addons/test_mail/tests/test_mail_followers.py | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/addons/test_mail/tests/test_mail_followers.py b/addons/test_mail/tests/test_mail_followers.py index 5bac6d00529..fe8c5f38d96 100644 --- a/addons/test_mail/tests/test_mail_followers.py +++ b/addons/test_mail/tests/test_mail_followers.py @@ -187,6 +187,22 @@ class AdvancedFollowersTest(TestMailCommon): """ Creator of records are automatically added as followers """ self.assertEqual(self.test_track.message_partner_ids, self.user_employee.partner_id) + def test_auto_subscribe_inactive(self): + """ Test inactive are not added as followers in automated subscription """ + self.test_track.user_id = False + self.user_admin.active = False + self.user_admin.flush() + self.partner_admin.active = False + self.partner_admin.flush() + + self.test_track.with_user(self.user_admin).message_post(body='Coucou hibou', message_type='comment') + self.assertEqual(self.test_track.message_partner_ids, self.user_employee.partner_id) + self.assertEqual(self.test_track.message_follower_ids.partner_id, self.user_employee.partner_id) + + self.test_track.write({'user_id': self.user_admin.id}) + self.assertEqual(self.test_track.message_partner_ids, self.user_employee.partner_id) + self.assertEqual(self.test_track.message_follower_ids.partner_id, self.user_employee.partner_id) + def test_auto_subscribe_post(self): """ People posting a message are automatically added as followers """ self.test_track.with_user(self.user_admin).message_post(body='Coucou hibou', message_type='comment') @@ -221,13 +237,20 @@ class AdvancedFollowersTest(TestMailCommon): automatically create subscription with matching subtypes * subscribing to a sub-record as creator applies default subtype values * portal user should not have access to internal subtypes + + Inactive partners should not be auto subscribed. """ container = self.env['mail.test.container'].with_context(self._test_context).create({ 'name': 'Project-Like', }) - container.message_subscribe(partner_ids=[self.partner_portal.id]) - self.assertEqual(container.message_partner_ids, self.partner_portal) + container.message_subscribe(partner_ids=(self.partner_portal | self.partner_admin).ids) + self.assertEqual(container.message_partner_ids, self.partner_portal | self.partner_admin) + + self.user_admin.active = False + self.user_admin.flush() + self.partner_admin.active = False + self.partner_admin.flush() sub1 = self.env['mail.test.track'].with_user(self.user_employee).create({ 'name': 'Task-Like Test', @@ -238,6 +261,7 @@ class AdvancedFollowersTest(TestMailCommon): external_defaults = all_defaults.filtered(lambda subtype: not subtype.internal) self.assertEqual(sub1.message_partner_ids, self.partner_portal | self.user_employee.partner_id) + self.assertEqual(sub1.message_follower_ids.partner_id, self.partner_portal | self.user_employee.partner_id) self.assertEqual( sub1.message_follower_ids.filtered(lambda fol: fol.partner_id == self.partner_portal).subtype_ids, external_defaults | self.sub_umb1) |
