mirror of
https://github.com/ansible/awx.git
synced 2026-01-11 01:57:35 -03:30
Ability to list teams and get individual team records.
This commit is contained in:
parent
987abb1663
commit
941d605806
@ -507,6 +507,10 @@ class Team(CommonModel):
|
||||
users = models.ManyToManyField('auth.User', blank=True, related_name='teams')
|
||||
organizations = models.ManyToManyField('Organization', related_name='teams')
|
||||
|
||||
def get_absolute_url(self):
|
||||
import lib.urls
|
||||
return reverse(lib.urls.views_TeamsDetail, args=(self.pk,))
|
||||
|
||||
class Project(CommonModel):
|
||||
'''
|
||||
A project represents a playbook git repo that can access a set of inventories
|
||||
|
||||
@ -146,6 +146,34 @@ class OrganizationsTagsList(BaseSubList):
|
||||
raise PermissionDenied()
|
||||
return Tag.objects.filter(organization_by_tag__in = [ organization ])
|
||||
|
||||
class TeamsList(BaseList):
|
||||
|
||||
model = Team
|
||||
serializer_class = TeamSerializer
|
||||
permission_classes = (CustomRbac,)
|
||||
|
||||
# I can see a team if:
|
||||
# I am a superuser
|
||||
# I am an admin of the organization that the team is
|
||||
# I am on that team
|
||||
|
||||
def _get_queryset(self):
|
||||
''' I can see organizations when I am a superuser, or I am an admin or user in that organization '''
|
||||
base = Team.objects
|
||||
if self.request.user.is_superuser:
|
||||
return base.all()
|
||||
return base.filter(
|
||||
admins__in = [ self.request.user ]
|
||||
).distinct() | base.filter(
|
||||
users__in = [ self.request.user ]
|
||||
).distinct()
|
||||
|
||||
class TeamsDetail(BaseDetail):
|
||||
|
||||
model = Team
|
||||
serializer_class = TeamSerializer
|
||||
permission_classes = (CustomRbac,)
|
||||
|
||||
class ProjectsList(BaseList):
|
||||
|
||||
model = Project
|
||||
|
||||
@ -44,6 +44,8 @@ views_ProjectsOrganizationsList = views.ProjectsOrganizationsList.as_view()
|
||||
# audit trail service
|
||||
|
||||
# team service
|
||||
views_TeamsList = views.TeamsList.as_view()
|
||||
views_TeamsDetail = views.TeamsDetail.as_view()
|
||||
|
||||
# inventory service
|
||||
views_InventoryList = views.InventoryList.as_view()
|
||||
@ -106,6 +108,9 @@ urlpatterns = patterns('',
|
||||
|
||||
# team service
|
||||
# api/v1/teams/
|
||||
url(r'^api/v1/teams/$', views_TeamsList),
|
||||
url(r'^api/v1/teams/(?P<pk>[0-9]+)/$', views_TeamsDetail),
|
||||
|
||||
# api/v1/teams/N/
|
||||
# api/v1/teams/N/users/
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user