summaryrefslogtreecommitdiff
path: root/addons/project
diff options
context:
space:
mode:
authorRaphael Collet <rco@odoo.com>2019-06-17 09:45:09 +0000
committerRaphael Collet <rco@odoo.com>2019-07-04 11:32:22 +0000
commitb7fd679a6c41dbb694c6fb2ce4911798de0424b1 (patch)
treecb4e75910deb2516d5397925e96ab5e680eed9e1 /addons/project
parent1e6c3bec2c5ca621344b09e58dbed535e80fb343 (diff)
[FIX] *: sudo() -> with_user()
Diffstat (limited to 'addons/project')
-rw-r--r--addons/project/controllers/rating.py2
-rw-r--r--addons/project/tests/test_access_rights.py34
-rw-r--r--addons/project/tests/test_portal.py24
-rw-r--r--addons/project/tests/test_project_flow.py2
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')