mirror of
https://github.com/ansible/awx.git
synced 2026-02-26 07:26:03 -03:30
Merge pull request #1734 from wwitzel3/team-roles-access
ensure change access for adding team roles
This commit is contained in:
@@ -834,7 +834,6 @@ class TeamRolesList(SubListCreateAttachDetachAPIView):
|
|||||||
raise PermissionDenied()
|
raise PermissionDenied()
|
||||||
return Role.filter_visible_roles(self.request.user, team.member_role.children.all())
|
return Role.filter_visible_roles(self.request.user, team.member_role.children.all())
|
||||||
|
|
||||||
# XXX: Need to enforce permissions
|
|
||||||
def post(self, request, *args, **kwargs):
|
def post(self, request, *args, **kwargs):
|
||||||
# Forbid implicit role creation here
|
# Forbid implicit role creation here
|
||||||
sub_id = request.data.get('id', None)
|
sub_id = request.data.get('id', None)
|
||||||
|
|||||||
@@ -3,6 +3,25 @@ import pytest
|
|||||||
from awx.main.access import TeamAccess
|
from awx.main.access import TeamAccess
|
||||||
from awx.main.models import Project
|
from awx.main.models import Project
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_team_attach_unattach(team, user):
|
||||||
|
u = user('member', False)
|
||||||
|
access = TeamAccess(u)
|
||||||
|
|
||||||
|
team.member_role.members.add(u)
|
||||||
|
assert not access.can_attach(team, u.admin_role, 'member_role.children', None)
|
||||||
|
assert not access.can_unattach(team, u.admin_role, 'member_role.children')
|
||||||
|
|
||||||
|
team.admin_role.members.add(u)
|
||||||
|
assert access.can_attach(team, u.admin_role, 'member_role.children', None)
|
||||||
|
assert access.can_unattach(team, u.admin_role, 'member_role.children')
|
||||||
|
|
||||||
|
u2 = user('non-member', False)
|
||||||
|
access = TeamAccess(u2)
|
||||||
|
assert not access.can_attach(team, u2.admin_role, 'member_role.children', None)
|
||||||
|
assert not access.can_unattach(team, u2.admin_role, 'member_role.chidlren')
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
def test_team_access_superuser(team, user):
|
def test_team_access_superuser(team, user):
|
||||||
team.member_role.members.add(user('member', False))
|
team.member_role.members.add(user('member', False))
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
# Python
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
# AWX
|
from awx.api.views import (
|
||||||
from awx.api.views import ApiV1RootView
|
ApiV1RootView,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def mock_response_new(mocker):
|
def mock_response_new(mocker):
|
||||||
@@ -10,6 +11,7 @@ def mock_response_new(mocker):
|
|||||||
m.return_value = m
|
m.return_value = m
|
||||||
return m
|
return m
|
||||||
|
|
||||||
|
|
||||||
class TestApiV1RootView:
|
class TestApiV1RootView:
|
||||||
def test_get_endpoints(self, mocker, mock_response_new):
|
def test_get_endpoints(self, mocker, mock_response_new):
|
||||||
endpoints = [
|
endpoints = [
|
||||||
|
|||||||
Reference in New Issue
Block a user