diff options
| author | Raphael Collet <rco@odoo.com> | 2019-06-17 09:45:09 +0000 |
|---|---|---|
| committer | Raphael Collet <rco@odoo.com> | 2019-07-04 11:32:22 +0000 |
| commit | b7fd679a6c41dbb694c6fb2ce4911798de0424b1 (patch) | |
| tree | cb4e75910deb2516d5397925e96ab5e680eed9e1 /addons/project | |
| parent | 1e6c3bec2c5ca621344b09e58dbed535e80fb343 (diff) | |
[FIX] *: sudo() -> with_user()
Diffstat (limited to 'addons/project')
| -rw-r--r-- | addons/project/controllers/rating.py | 2 | ||||
| -rw-r--r-- | addons/project/tests/test_access_rights.py | 34 | ||||
| -rw-r--r-- | addons/project/tests/test_portal.py | 24 | ||||
| -rw-r--r-- | addons/project/tests/test_project_flow.py | 2 |
4 files changed, 31 insertions, 31 deletions
diff --git a/addons/project/controllers/rating.py b/addons/project/controllers/rating.py index c89f186a6ce..3df60f3f063 100644 --- a/addons/project/controllers/rating.py +++ b/addons/project/controllers/rating.py @@ -82,7 +82,7 @@ class RatingProject(http.Controller): project = request.env['project.project'].sudo().browse(project_id) # to avoid giving any access rights on projects to the public user, let's use sudo # and check if the user should be able to view the project (project managers only if it's unpublished or has no rating) - if not ((project.rating_status != 'no') and project.portal_show_rating) and not user.sudo(user).has_group('project.group_project_manager'): + if not ((project.rating_status != 'no') and project.portal_show_rating) and not user.with_user(user).has_group('project.group_project_manager'): raise NotFound() return request.render('project.rating_project_rating_page', { diff --git a/addons/project/tests/test_access_rights.py b/addons/project/tests/test_access_rights.py index 8073a9ed1d9..4412f7f304f 100644 --- a/addons/project/tests/test_access_rights.py +++ b/addons/project/tests/test_access_rights.py @@ -36,25 +36,25 @@ class TestPortalProject(TestPortalProjectBase): pigs.write({'privacy_visibility': 'employees'}) # Do: Alfred reads project -> ok (employee ok employee) - pigs.sudo(self.user_projectuser).read(['user_id']) + pigs.with_user(self.user_projectuser).read(['user_id']) # Test: all project tasks visible - tasks = self.env['project.task'].sudo(self.user_projectuser).search([('project_id', '=', pigs.id)]) + tasks = self.env['project.task'].with_user(self.user_projectuser).search([('project_id', '=', pigs.id)]) test_task_ids = set([self.task_1.id, self.task_2.id, self.task_3.id, self.task_4.id, self.task_5.id, self.task_6.id]) self.assertEqual(set(tasks.ids), test_task_ids, 'access rights: project user cannot see all tasks of an employees project') # Do: Bert reads project -> crash, no group - self.assertRaises(AccessError, pigs.sudo(self.user_noone).read, ['user_id']) + self.assertRaises(AccessError, pigs.with_user(self.user_noone).read, ['user_id']) # Do: Donovan reads project -> ko (public ko employee) - self.assertRaises(AccessError, pigs.sudo(self.user_public).read, ['user_id']) + self.assertRaises(AccessError, pigs.with_user(self.user_public).read, ['user_id']) # Do: project user is employee and can create a task - tmp_task = self.env['project.task'].sudo(self.user_projectuser).with_context({'mail_create_nolog': True}).create({ + tmp_task = self.env['project.task'].with_user(self.user_projectuser).with_context({'mail_create_nolog': True}).create({ 'name': 'Pigs task', 'project_id': pigs.id}) - tmp_task.sudo(self.user_projectuser).unlink() + tmp_task.with_user(self.user_projectuser).unlink() @mute_logger('odoo.addons.base.models.ir_model') def test_favorite_project_access_rights(self): - pigs = self.project_pigs.sudo(self.user_projectuser) + pigs = self.project_pigs.with_user(self.user_projectuser) # we can't write on project name self.assertRaises(AccessError, pigs.write, {'name': 'False Pigs'}) @@ -67,36 +67,36 @@ class TestPortalProject(TestPortalProjectBase): pigs.write({'privacy_visibility': 'followers'}) # Do: Alfred reads project -> ko (employee ko followers) - self.assertRaises(AccessError, pigs.sudo(self.user_projectuser).read, ['user_id']) + self.assertRaises(AccessError, pigs.with_user(self.user_projectuser).read, ['user_id']) # Test: no project task visible - tasks = self.env['project.task'].sudo(self.user_projectuser).search([('project_id', '=', pigs.id)]) + tasks = self.env['project.task'].with_user(self.user_projectuser).search([('project_id', '=', pigs.id)]) self.assertEqual(tasks, self.task_1, 'access rights: employee user should not see tasks of a not-followed followers project, only assigned') # Do: Bert reads project -> crash, no group - self.assertRaises(AccessError, pigs.sudo(self.user_noone).read, ['user_id']) + self.assertRaises(AccessError, pigs.with_user(self.user_noone).read, ['user_id']) # Do: Donovan reads project -> ko (public ko employee) - self.assertRaises(AccessError, pigs.sudo(self.user_public).read, ['user_id']) + self.assertRaises(AccessError, pigs.with_user(self.user_public).read, ['user_id']) pigs.message_subscribe(partner_ids=[self.user_projectuser.partner_id.id]) # Do: Alfred reads project -> ok (follower ok followers) - donkey = pigs.sudo(self.user_projectuser) + donkey = pigs.with_user(self.user_projectuser) donkey.invalidate_cache() donkey.read(['user_id']) # Do: Donovan reads project -> ko (public ko follower even if follower) - self.assertRaises(AccessError, pigs.sudo(self.user_public).read, ['user_id']) + self.assertRaises(AccessError, pigs.with_user(self.user_public).read, ['user_id']) # Do: project user is follower of the project and can create a task - self.env['project.task'].sudo(self.user_projectuser.id).with_context({'mail_create_nolog': True}).create({ + self.env['project.task'].with_user(self.user_projectuser).with_context({'mail_create_nolog': True}).create({ 'name': 'Pigs task', 'project_id': pigs.id }) # not follower user should not be able to create a task - pigs.sudo(self.user_projectuser).message_unsubscribe(partner_ids=[self.user_projectuser.partner_id.id]) - self.assertRaises(AccessError, self.env['project.task'].sudo(self.user_projectuser).with_context({ + pigs.with_user(self.user_projectuser).message_unsubscribe(partner_ids=[self.user_projectuser.partner_id.id]) + self.assertRaises(AccessError, self.env['project.task'].with_user(self.user_projectuser).with_context({ 'mail_create_nolog': True}).create, {'name': 'Pigs task', 'project_id': pigs.id}) # Do: project user can create a task without project - self.assertRaises(AccessError, self.env['project.task'].sudo(self.user_projectuser).with_context({ + self.assertRaises(AccessError, self.env['project.task'].with_user(self.user_projectuser).with_context({ 'mail_create_nolog': True}).create, {'name': 'Pigs task', 'project_id': pigs.id}) diff --git a/addons/project/tests/test_portal.py b/addons/project/tests/test_portal.py index ba18b5a5a16..572297bc25e 100644 --- a/addons/project/tests/test_portal.py +++ b/addons/project/tests/test_portal.py @@ -13,27 +13,27 @@ class TestPortalProject(TestPortalProjectBase): pigs.write({'privacy_visibility': 'portal'}) # Do: Alfred reads project -> ok (employee ok public) - pigs.sudo(self.user_projectuser).read(['user_id']) + pigs.with_user(self.user_projectuser).read(['user_id']) # Test: all project tasks visible - tasks = self.env['project.task'].sudo(self.user_projectuser).search([('project_id', '=', pigs.id)]) + tasks = self.env['project.task'].with_user(self.user_projectuser).search([('project_id', '=', pigs.id)]) self.assertEqual(tasks, self.task_1 | self.task_2 | self.task_3 | self.task_4 | self.task_5 | self.task_6, 'access rights: project user should see all tasks of a portal project') # Do: Bert reads project -> crash, no group - self.assertRaises(AccessError, pigs.sudo(self.user_noone).read, ['user_id']) + self.assertRaises(AccessError, pigs.with_user(self.user_noone).read, ['user_id']) # Test: no project task searchable - self.assertRaises(AccessError, self.env['project.task'].sudo(self.user_noone).search, [('project_id', '=', pigs.id)]) + self.assertRaises(AccessError, self.env['project.task'].with_user(self.user_noone).search, [('project_id', '=', pigs.id)]) # Data: task follower - pigs.sudo(self.user_projectmanager).message_subscribe(partner_ids=[self.user_portal.partner_id.id]) - self.task_1.sudo(self.user_projectuser).message_subscribe(partner_ids=[self.user_portal.partner_id.id]) - self.task_3.sudo(self.user_projectuser).message_subscribe(partner_ids=[self.user_portal.partner_id.id]) + pigs.with_user(self.user_projectmanager).message_subscribe(partner_ids=[self.user_portal.partner_id.id]) + self.task_1.with_user(self.user_projectuser).message_subscribe(partner_ids=[self.user_portal.partner_id.id]) + self.task_3.with_user(self.user_projectuser).message_subscribe(partner_ids=[self.user_portal.partner_id.id]) # Do: Chell reads project -> ok (portal ok public) - pigs.sudo(self.user_portal).read(['user_id']) + pigs.with_user(self.user_portal).read(['user_id']) # Do: Donovan reads project -> ko (public ko portal) - self.assertRaises(AccessError, pigs.sudo(self.user_public).read, ['user_id']) + self.assertRaises(AccessError, pigs.with_user(self.user_public).read, ['user_id']) # Test: no access right to project.task - self.assertRaises(AccessError, self.env['project.task'].sudo(self.user_public).search, []) + self.assertRaises(AccessError, self.env['project.task'].with_user(self.user_public).search, []) # Data: task follower cleaning - self.task_1.sudo(self.user_projectuser).message_unsubscribe(partner_ids=[self.user_portal.partner_id.id]) - self.task_3.sudo(self.user_projectuser).message_unsubscribe(partner_ids=[self.user_portal.partner_id.id]) + self.task_1.with_user(self.user_projectuser).message_unsubscribe(partner_ids=[self.user_portal.partner_id.id]) + self.task_3.with_user(self.user_projectuser).message_unsubscribe(partner_ids=[self.user_portal.partner_id.id]) diff --git a/addons/project/tests/test_project_flow.py b/addons/project/tests/test_project_flow.py index 5eb063d7f46..84f42cfdbcd 100644 --- a/addons/project/tests/test_project_flow.py +++ b/addons/project/tests/test_project_flow.py @@ -37,7 +37,7 @@ Integrator at Agrolait""" class TestProjectFlow(TestProjectBase): def test_project_process_project_manager_duplicate(self): - pigs = self.project_pigs.sudo(self.user_projectmanager) + pigs = self.project_pigs.with_user(self.user_projectmanager) dogs = pigs.copy() self.assertEqual(len(dogs.tasks), 2, 'project: duplicating a project must duplicate its tasks') |
