mirror of
https://github.com/ansible/awx.git
synced 2026-04-05 01:59:25 -02:30
Wiring up team credentials service (WIP).
This commit is contained in:
@@ -557,8 +557,9 @@ class Credential(CommonModelNameNotUnique):
|
|||||||
user_obj = User.objects.get(pk=data['user'])
|
user_obj = User.objects.get(pk=data['user'])
|
||||||
return UserHelper.can_user_administrate(user, user_obj)
|
return UserHelper.can_user_administrate(user, user_obj)
|
||||||
if 'team' in data:
|
if 'team' in data:
|
||||||
team_obj = Team.objects.get(pk=data['user'])
|
raise Exception("FIXME")
|
||||||
return team_obj.organization.users.filter(admins__in = [user]).count()
|
#team_obj = Team.objects.get(pk=data['team'])
|
||||||
|
#return team_obj.organization.users.filter(admins__in = [user]).count()
|
||||||
|
|
||||||
def get_absolute_url(self):
|
def get_absolute_url(self):
|
||||||
import lib.urls
|
import lib.urls
|
||||||
|
|||||||
@@ -214,6 +214,26 @@ class TeamsUsersList(BaseSubList):
|
|||||||
return base
|
return base
|
||||||
raise PermissionDenied()
|
raise PermissionDenied()
|
||||||
|
|
||||||
|
class TeamsCredentialsList(BaseSubList):
|
||||||
|
|
||||||
|
model = Credential
|
||||||
|
serializer_class = CredentialSerializer
|
||||||
|
permission_classes = (CustomRbac,)
|
||||||
|
parent_model = Team
|
||||||
|
relationship = 'credentials'
|
||||||
|
postable = True
|
||||||
|
inject_primary_key_on_post_as = 'team'
|
||||||
|
|
||||||
|
def _get_queryset(self):
|
||||||
|
team = Team.objects.get(pk=self.kwargs['pk'])
|
||||||
|
if not Team.can_user_read(self.request.user, team):
|
||||||
|
raise PermissionDenied()
|
||||||
|
project_credentials = Credential.objects.filter(
|
||||||
|
projects__teams__users__in = [ user ]
|
||||||
|
)
|
||||||
|
return user.credentials.distinct() | project_credentials.distinct()
|
||||||
|
|
||||||
|
|
||||||
class ProjectsList(BaseList):
|
class ProjectsList(BaseList):
|
||||||
|
|
||||||
model = Project
|
model = Project
|
||||||
|
|||||||
@@ -50,6 +50,8 @@ views_ProjectsOrganizationsList = views.ProjectsOrganizationsList.as_view()
|
|||||||
views_TeamsList = views.TeamsList.as_view()
|
views_TeamsList = views.TeamsList.as_view()
|
||||||
views_TeamsDetail = views.TeamsDetail.as_view()
|
views_TeamsDetail = views.TeamsDetail.as_view()
|
||||||
views_TeamsUsersList = views.TeamsUsersList.as_view()
|
views_TeamsUsersList = views.TeamsUsersList.as_view()
|
||||||
|
views_TeamsCredentialsList = views.TeamsCredentialsList.as_view()
|
||||||
|
views_TeamsCredentialsList = views.TeamsCredentialsList.as_view()
|
||||||
|
|
||||||
# inventory service
|
# inventory service
|
||||||
views_InventoryList = views.InventoryList.as_view()
|
views_InventoryList = views.InventoryList.as_view()
|
||||||
@@ -121,6 +123,7 @@ urlpatterns = patterns('',
|
|||||||
url(r'^api/v1/teams/$', views_TeamsList),
|
url(r'^api/v1/teams/$', views_TeamsList),
|
||||||
url(r'^api/v1/teams/(?P<pk>[0-9]+)/$', views_TeamsDetail),
|
url(r'^api/v1/teams/(?P<pk>[0-9]+)/$', views_TeamsDetail),
|
||||||
url(r'^api/v1/teams/(?P<pk>[0-9]+)/users/$', views_TeamsUsersList),
|
url(r'^api/v1/teams/(?P<pk>[0-9]+)/users/$', views_TeamsUsersList),
|
||||||
|
url(r'^api/v1/teams/(?P<pk>[0-9]+)/credentials/$', views_TeamsCredentialsList),
|
||||||
|
|
||||||
# api/v1/teams/N/
|
# api/v1/teams/N/
|
||||||
# api/v1/teams/N/users/
|
# api/v1/teams/N/users/
|
||||||
|
|||||||
Reference in New Issue
Block a user