Fix a bug that did not allow project_admin's to create a project.

This was a regression from previous functionality
This commit is contained in:
Matthew Jones 2018-11-19 10:52:11 -05:00
parent b17c477af7
commit 61916b86b5
No known key found for this signature in database
GPG Key ID: EED42EEB8B369E1E
2 changed files with 26 additions and 1 deletions

View File

@ -1208,7 +1208,7 @@ class ProjectAccess(BaseAccess):
@check_superuser
def can_add(self, data):
if not data: # So the browseable API will work
return Organization.accessible_objects(self.user, 'admin_role').exists()
return Organization.accessible_objects(self.user, 'project_admin_role').exists()
return (self.check_related('organization', Organization, data, role_field='project_admin_role', mandatory=True) and
self.check_related('credential', Credential, data, role_field='use_role'))

View File

@ -0,0 +1,25 @@
import pytest
from awx.main.access import (
ProjectAccess,
)
@pytest.mark.django_db
@pytest.mark.parametrize("role", ["admin_role", "project_admin_role"])
def test_access_admin(role, organization, project, user):
a = user('admin', False)
project.organization = organization
role = getattr(organization, role)
role.members.add(a)
access = ProjectAccess(a)
assert access.can_read(project)
assert access.can_add(None)
assert access.can_add({'organization': organization.id})
assert access.can_change(project, None)
assert access.can_change(project, {'organization': organization.id})
assert access.can_admin(project, None)
assert access.can_admin(project, {'organization': organization.id})
assert access.can_delete(project)