mirror of
https://github.com/ansible/awx.git
synced 2026-03-26 21:35:01 -02:30
show org-admins all teams if ALL USERS setting enabled
This commit is contained in:
@@ -1114,6 +1114,9 @@ class TeamAccess(BaseAccess):
|
|||||||
select_related = ('created_by', 'modified_by', 'organization',)
|
select_related = ('created_by', 'modified_by', 'organization',)
|
||||||
|
|
||||||
def filtered_queryset(self):
|
def filtered_queryset(self):
|
||||||
|
if settings.ORG_ADMINS_CAN_SEE_ALL_USERS and \
|
||||||
|
(self.user.admin_of_organizations.exists() or self.user.auditor_of_organizations.exists()):
|
||||||
|
return self.model.objects.all()
|
||||||
return self.model.accessible_objects(self.user, 'read_role')
|
return self.model.accessible_objects(self.user, 'read_role')
|
||||||
|
|
||||||
@check_superuser
|
@check_superuser
|
||||||
|
|||||||
@@ -38,7 +38,8 @@ register(
|
|||||||
'ORG_ADMINS_CAN_SEE_ALL_USERS',
|
'ORG_ADMINS_CAN_SEE_ALL_USERS',
|
||||||
field_class=fields.BooleanField,
|
field_class=fields.BooleanField,
|
||||||
label=_('All Users Visible to Organization Admins'),
|
label=_('All Users Visible to Organization Admins'),
|
||||||
help_text=_('Controls whether any Organization Admin can view all users, even those not associated with their Organization.'),
|
help_text=_('Controls whether any Organization Admin can view all users and teams, '
|
||||||
|
'even those not associated with their Organization.'),
|
||||||
category=_('System'),
|
category=_('System'),
|
||||||
category_slug='system',
|
category_slug='system',
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
import pytest
|
import pytest
|
||||||
|
import mock
|
||||||
|
|
||||||
from awx.main.access import TeamAccess
|
from awx.main.access import TeamAccess
|
||||||
from awx.main.models import Project
|
from awx.main.models import Project, Organization, Team
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
@@ -116,3 +117,14 @@ def test_org_admin_team_access(organization, team, user, project):
|
|||||||
team.member_role.children.add(project.use_role)
|
team.member_role.children.add(project.use_role)
|
||||||
|
|
||||||
assert len(Project.accessible_objects(u, 'use_role')) == 1
|
assert len(Project.accessible_objects(u, 'use_role')) == 1
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
@pytest.mark.parametrize('enabled', [True, False])
|
||||||
|
def test_org_admin_view_all_teams(org_admin, enabled):
|
||||||
|
access = TeamAccess(org_admin)
|
||||||
|
other_org = Organization.objects.create(name='other-org')
|
||||||
|
other_team = Team.objects.create(name='other-team', organization=other_org)
|
||||||
|
with mock.patch('awx.main.access.settings') as settings_mock:
|
||||||
|
settings_mock.ORG_ADMINS_CAN_SEE_ALL_USERS = enabled
|
||||||
|
assert access.can_read(other_team) is enabled
|
||||||
|
|||||||
Reference in New Issue
Block a user