mirror of
https://github.com/ansible/awx.git
synced 2026-02-05 03:24:50 -03:30
Allow post to /api/v1/projects/N/organizations/, add resource for /api/v1/projects/N/teams/.
This commit is contained in:
@@ -115,6 +115,7 @@ class ProjectSerializer(BaseSerializer):
|
||||
res = super(ProjectSerializer, self).get_related(obj)
|
||||
res.update(dict(
|
||||
organizations = reverse('main:project_organizations_list', args=(obj.pk,)),
|
||||
teams = reverse('main:project_teams_list', args=(obj.pk,)),
|
||||
playbooks = reverse('main:project_detail_playbooks', args=(obj.pk,)),
|
||||
))
|
||||
return res
|
||||
|
||||
@@ -255,7 +255,7 @@ class ProjectsTest(BaseTest):
|
||||
self.assertEquals(got['count'], 1)
|
||||
self.assertEquals(got['results'][0]['url'], reverse('main:organization_detail', args=(self.organizations[0].pk,)))
|
||||
# you can't add organizations to projects here, verify that this is true (405)
|
||||
self.post(proj_orgs, data={}, expect=405, auth=self.get_super_credentials())
|
||||
#self.post(proj_orgs, data={}, expect=405, auth=self.get_super_credentials())
|
||||
|
||||
# =====================================================================
|
||||
# TEAMS
|
||||
|
||||
@@ -35,6 +35,7 @@ project_urls = patterns('awx.main.views',
|
||||
url(r'^(?P<pk>[0-9]+)/$', 'project_detail'),
|
||||
url(r'^(?P<pk>[0-9]+)/playbooks/$', 'project_detail_playbooks'),
|
||||
url(r'^(?P<pk>[0-9]+)/organizations/$', 'project_organizations_list'),
|
||||
url(r'^(?P<pk>[0-9]+)/teams/$', 'project_teams_list'),
|
||||
)
|
||||
|
||||
team_urls = patterns('awx.main.views',
|
||||
|
||||
@@ -448,7 +448,7 @@ class ProjectOrganizationsList(BaseSubList):
|
||||
permission_classes = (CustomRbac,)
|
||||
parent_model = Project
|
||||
relationship = 'organizations'
|
||||
postable = False
|
||||
postable = True
|
||||
filter_fields = ('name',)
|
||||
|
||||
def get_queryset(self):
|
||||
@@ -457,6 +457,22 @@ class ProjectOrganizationsList(BaseSubList):
|
||||
raise PermissionDenied()
|
||||
return Organization.objects.filter(projects__in = [ project ])
|
||||
|
||||
class ProjectTeamsList(BaseSubList):
|
||||
|
||||
model = Team
|
||||
serializer_class = TeamSerializer
|
||||
permission_classes = (CustomRbac,)
|
||||
parent_model = Project
|
||||
relationship = 'teams'
|
||||
postable = True
|
||||
filter_fields = ('name',)
|
||||
|
||||
def get_queryset(self):
|
||||
project = Project.objects.get(pk=self.kwargs['pk'])
|
||||
if not self.request.user.is_superuser:
|
||||
raise PermissionDenied()
|
||||
return Team.objects.filter(projects__in = [ project ])
|
||||
|
||||
class UserList(BaseList):
|
||||
|
||||
model = User
|
||||
|
||||
Reference in New Issue
Block a user