1
0
forked from Mapan/odoo17e
odoo17e-kedaikipas58/addons/helpdesk/tests/test_helpdesk_team_privacy_visibility.py
2024-12-10 09:04:09 +07:00

95 lines
4.7 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from .common import HelpdeskCommon
from odoo.addons.mail.tests.common import mail_new_test_user
class TestHelpdeskTeamPrivacyVisibility(HelpdeskCommon):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.portal_user = mail_new_test_user(
cls.env,
name='helpdesk_portal',
login='helpdesk_portal',
email='helpdesk@portal.com',
notification_type='email',
groups='base.group_portal',
)
cls.user_partner = cls.env['res.partner'].with_context({'mail_create_nolog': True}).create({
'name': 'helpdesk_user',
'email': 'helpdesk@user.com',
'company_id': False,
'user_ids': [cls.helpdesk_user.id],
})
cls.portal_partner = cls.env['res.partner'].with_context({'mail_create_nolog': True}).create({
'name': 'helpdesk_portal',
'email': 'helpdesk@portal.com',
'company_id': False,
'user_ids': [cls.portal_user.id],
})
cls.ticket = cls.env['helpdesk.ticket'].create({
'name': 'Test Ticket',
'team_id': cls.test_team.id,
'stage_id': cls.stage_new.id,
'user_id': None,
})
def search_test_team_with_user(self, user):
return self.env['helpdesk.team'].with_user(user).search([('id', '=', self.test_team.id)])
def search_test_ticket_with_user(self, user):
return self.env['helpdesk.ticket'].with_user(user).search([('id', '=', self.ticket.id)])
def test_helpdesk_team_visibility_invited_internal(self):
self.test_team.privacy_visibility = 'invited_internal'
self.assertTrue(self.search_test_team_with_user(self.helpdesk_manager), "A Helpdesk > Admin should see the team.")
self.assertFalse(self.search_test_team_with_user(self.helpdesk_user), "An uninvited Helpdesk > User should not see the team.")
self.assertFalse(self.search_test_ticket_with_user(self.portal_user), "A Portal User should not see the team's tickets.")
self.test_team.message_subscribe(partner_ids=[self.user_partner.id])
self.assertTrue(self.search_test_team_with_user(self.helpdesk_user), "A Helpdesk > User following the team should see it.")
self.assertTrue(self.search_test_ticket_with_user(self.helpdesk_user), "A Helpdesk > User following the team should see its tickets.")
self.test_team.message_unsubscribe([self.user_partner.id])
self.ticket.message_subscribe([self.user_partner.id])
self.assertTrue(self.search_test_ticket_with_user(self.helpdesk_user), "A Helpdesk > User following the ticket should see it.")
def test_helpdesk_team_visibility_internal(self):
self.test_team.privacy_visibility = 'internal'
self.assertTrue(self.search_test_team_with_user(self.helpdesk_manager), "A Helpdesk > Admin should see the team.")
self.assertTrue(self.search_test_team_with_user(self.helpdesk_user), "A Helpdesk > User should see the team.")
self.assertFalse(self.search_test_ticket_with_user(self.portal_user), "A Portal User should not see the team's tickets.")
self.test_team.message_subscribe(partner_ids=[self.portal_partner.id])
self.assertFalse(self.search_test_ticket_with_user(self.portal_user), "A Portal User following a team without the portal visibility should not see its tickets.")
self.test_team.message_unsubscribe([self.portal_partner.id])
self.ticket.message_subscribe([self.portal_partner.id])
self.assertFalse(self.search_test_ticket_with_user(self.portal_user), "A Portal User following a ticket in a team without the portal visibility should not see it.")
def test_helpdesk_team_visibility_portal(self):
self.test_team.privacy_visibility = 'portal'
self.assertTrue(self.search_test_team_with_user(self.helpdesk_manager), "A Helpdesk > Admin should see the team.")
self.assertTrue(self.search_test_team_with_user(self.helpdesk_user), "A Helpdesk > User should see the team.")
self.assertFalse(self.search_test_ticket_with_user(self.portal_user), "An uninvited Portal User should not see the team's tickets.")
self.test_team.message_subscribe(partner_ids=[self.portal_partner.id])
self.assertTrue(self.search_test_ticket_with_user(self.portal_user), "A Portal User following the team should see its tickets.")
self.test_team.message_unsubscribe([self.portal_partner.id])
self.ticket.message_subscribe([self.portal_partner.id])
self.assertTrue(self.search_test_ticket_with_user(self.portal_user), "A Portal User following the ticket should see it.")