mirror of
https://github.com/ansible/awx.git
synced 2026-01-11 10:00:01 -03:30
Wiring up team credentials service (WIP).
This commit is contained in:
parent
5087db5a7f
commit
2c2c26860f
@ -557,8 +557,9 @@ class Credential(CommonModelNameNotUnique):
|
||||
user_obj = User.objects.get(pk=data['user'])
|
||||
return UserHelper.can_user_administrate(user, user_obj)
|
||||
if 'team' in data:
|
||||
team_obj = Team.objects.get(pk=data['user'])
|
||||
return team_obj.organization.users.filter(admins__in = [user]).count()
|
||||
raise Exception("FIXME")
|
||||
#team_obj = Team.objects.get(pk=data['team'])
|
||||
#return team_obj.organization.users.filter(admins__in = [user]).count()
|
||||
|
||||
def get_absolute_url(self):
|
||||
import lib.urls
|
||||
|
||||
@ -214,6 +214,26 @@ class TeamsUsersList(BaseSubList):
|
||||
return base
|
||||
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):
|
||||
|
||||
model = Project
|
||||
|
||||
@ -50,6 +50,8 @@ views_ProjectsOrganizationsList = views.ProjectsOrganizationsList.as_view()
|
||||
views_TeamsList = views.TeamsList.as_view()
|
||||
views_TeamsDetail = views.TeamsDetail.as_view()
|
||||
views_TeamsUsersList = views.TeamsUsersList.as_view()
|
||||
views_TeamsCredentialsList = views.TeamsCredentialsList.as_view()
|
||||
views_TeamsCredentialsList = views.TeamsCredentialsList.as_view()
|
||||
|
||||
# inventory service
|
||||
views_InventoryList = views.InventoryList.as_view()
|
||||
@ -121,6 +123,7 @@ urlpatterns = patterns('',
|
||||
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]+)/users/$', views_TeamsUsersList),
|
||||
url(r'^api/v1/teams/(?P<pk>[0-9]+)/credentials/$', views_TeamsCredentialsList),
|
||||
|
||||
# api/v1/teams/N/
|
||||
# api/v1/teams/N/users/
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user