Merge pull request #2741 from matburt/fix_project_admin_add

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

Reviewed-by: Alan Rominger <arominge@redhat.com>
             https://github.com/AlanCoding
This commit is contained in:
softwarefactory-project-zuul[bot] 2018-11-19 16:53:16 +00:00 committed by GitHub
commit a3bbe308a8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 2 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

@ -298,7 +298,6 @@ class AutoscalePool(WorkerPool):
# max workers can't be less than min_workers
self.max_workers = max(self.min_workers, self.max_workers)
logger.warning(self.debug_meta)
@property
def should_grow(self):

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)