Merge pull request #3644 from AlanCoding/3559_manual_proj

Set `start` capability to False for manual projects
This commit is contained in:
Alan Rominger 2016-10-06 12:04:35 -04:00 committed by GitHub
commit cd8aeac5c3
2 changed files with 9 additions and 0 deletions

View File

@ -264,6 +264,10 @@ class BaseAccess(object):
elif display_method == 'copy' and isinstance(obj, (Group, Host)):
user_capabilities['copy'] = user_capabilities['edit']
continue
elif display_method == 'start' and isinstance(obj, (Project)) and obj.scm_type == '':
# Special case to return False for a manual project
user_capabilities['start'] = False
continue
# Preprocessing before the access method is called
data = {}

View File

@ -309,6 +309,11 @@ def test_prefetch_jt_copy_capability(job_template, project, inventory, machine_c
]}], JobTemplate, rando)
assert qs[0].capabilities_cache == {'copy': True}
@pytest.mark.django_db
def test_manual_projects_no_update(project, get, admin_user):
response = get(reverse('api:project_detail', args=[project.pk]), admin_user, expect=200)
assert not response.data['summary_fields']['user_capabilities']['start']
@pytest.mark.django_db
def test_group_update_capabilities_possible(group, inventory_source, admin_user):
group.inventory_source = inventory_source