forked from Mapan/odoo17e
95 lines
4.7 KiB
Python
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.")
|