# Copyright 2016-2020 Tecnativa - Pedro M. Baeza # Copyright 2021 Tecnativa - Víctor Martínez # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from .common import TestCommon class TestSalesTeamSecurity(TestCommon): @classmethod def setUpClass(cls): super().setUpClass() cls.user_partner = cls.user.partner_id cls.user2_partner = cls.user2.partner_id cls.record = cls.partner def test_onchange_parent_id(self): contact2 = self.env["res.partner"].create( {"name": "Test contact", "parent_id": self.partner2.id} ) self.assertEqual(contact2.user_id, self.user) def test_change_user_id_partner(self): self.partner.write({"user_id": self.user.id}) self.assertIn(self.user_partner, self.partner.message_partner_ids) self.assertNotIn(self.user_partner, self.partner_child_1.message_partner_ids) self.assertIn(self.user_partner, self.partner_child_2.message_partner_ids) # Change salesman self.partner.write({"user_id": self.user2.id}) self.assertNotIn(self.user_partner, self.partner.message_partner_ids) self.assertIn(self.user2_partner, self.partner.message_partner_ids) self.assertNotIn(self.user_partner, self.partner_child_2.message_partner_ids) self.assertIn(self.user2_partner, self.partner_child_2.message_partner_ids) def test_change_user_id_partner_child_1(self): self.partner_child_1.write({"user_id": self.user.id}) self.assertIn(self.user_partner, self.partner.message_partner_ids) self.assertIn(self.user_partner, self.partner_child_2.message_partner_ids) # Change salesman self.partner_child_1.write({"user_id": self.user2.id}) self.assertNotIn(self.user_partner, self.partner.message_partner_ids) self.assertIn(self.user2_partner, self.partner.message_partner_ids) self.assertNotIn(self.user_partner, self.partner_child_2.message_partner_ids) self.assertIn(self.user2_partner, self.partner_child_2.message_partner_ids) def test_partner_permissions(self): self._check_whole_permission_set() def test_partner_permissions_subscription(self): self.check_permission_subscribe = True self._check_permission(self.user2, False, True) def test_partner_permissions_own_partner(self): self.user.partner_id.write({"user_id": self.user2.id}) domain = [("id", "in", self.user.partner_id.ids)] Partner = self.env["res.partner"].with_user(self.user) # Make sure the acces is not due to the subscription self.partner.message_unsubscribe(partner_ids=self.user.partner_id.ids) self.assertEqual(bool(Partner.search(domain)), True)