diff --git a/project_group/security/project_project.xml b/project_group/security/project_project.xml index 7bbfb19a13..faf52ff4b1 100644 --- a/project_group/security/project_project.xml +++ b/project_group/security/project_project.xml @@ -6,7 +6,7 @@ Project: employees: Groups [ - ('privacy_visibility', '=', 'followers'), + ('privacy_visibility', 'in', ('followers', 'invited_users')), ('group_ids', 'in', user.all_group_ids.ids) ] @@ -17,7 +17,7 @@ [ ('project_id', '!=', False), - ('project_id.privacy_visibility', '=', 'followers'), + ('project_id.privacy_visibility', 'in', ('followers', 'invited_users')), ('project_id.group_ids', 'in', user.all_group_ids.ids) ] diff --git a/project_group/tests/test_project_visibility.py b/project_group/tests/test_project_visibility.py index 6a8dea12fe..73d110ee12 100644 --- a/project_group/tests/test_project_visibility.py +++ b/project_group/tests/test_project_visibility.py @@ -106,3 +106,37 @@ def test_02_access_rights(self): "employees", "privacy_visibility should be 'employees' after update", ) + + def test_03_invited_users_group_access(self): + """Group members get access on 'invited_users' projects.""" + invited_project = self.ProjectObj.create( + { + "name": "Invited Users Project", + "privacy_visibility": "invited_users", + "group_ids": [Command.set([self.group1.id])], + } + ) + self.project_group_user.write({"group_ids": [Command.link(self.group2.id)]}) + self.assertNotIn( + invited_project, + self.ProjectObj.with_user(self.project_group_user).search( + [("id", "=", invited_project.id)] + ), + "User outside the project groups should not see the project", + ) + + self.project_group_user.write( + { + "group_ids": [ + Command.unlink(self.group2.id), + Command.link(self.group1.id), + ] + } + ) + self.assertIn( + invited_project, + self.ProjectObj.with_user(self.project_group_user).search( + [("id", "=", invited_project.id)] + ), + "User in a project group should see the 'invited_users' project", + ) diff --git a/project_group/views/project_project.xml b/project_group/views/project_project.xml index e129a5ac74..5eb0417018 100644 --- a/project_group/views/project_project.xml +++ b/project_group/views/project_project.xml @@ -9,7 +9,7 @@