mirror of
https://github.com/ansible/awx.git
synced 2026-02-02 01:58:09 -03:30
Add related resources from a user object, as a rapid way to list what organizations or projects they belong to.
This commit is contained in:
@@ -193,6 +193,51 @@ class UsersMeList(BaseList):
|
||||
''' a quick way to find my user record '''
|
||||
return User.objects.filter(pk=self.request.user.pk)
|
||||
|
||||
class UsersTeamsList(BaseSubList):
|
||||
|
||||
model = Team
|
||||
serializer_class = TeamSerializer
|
||||
permission_classes = (CustomRbac,)
|
||||
parent_model = User
|
||||
relationship = 'teams'
|
||||
postable = False
|
||||
|
||||
def _get_queryset(self):
|
||||
user = User.objects.get(pk=self.kwargs['pk'])
|
||||
if not UserHelper.can_user_administrate(self.request.user, user):
|
||||
raise PermissionDenied()
|
||||
return Team.objects.filter(users__in = [ user ])
|
||||
|
||||
class UsersOrganizationsList(BaseSubList):
|
||||
|
||||
model = Organization
|
||||
serializer_class = OrganizationSerializer
|
||||
permission_classes = (CustomRbac,)
|
||||
parent_model = User
|
||||
relationship = 'organizations'
|
||||
postable = False
|
||||
|
||||
def _get_queryset(self):
|
||||
user = User.objects.get(pk=self.kwargs['pk'])
|
||||
if not UserHelper.can_user_administrate(self.request.user, user):
|
||||
raise PermissionDenied()
|
||||
return Organization.objects.filter(users__in = [ user ])
|
||||
|
||||
class UsersAdminOrganizationsList(BaseSubList):
|
||||
|
||||
model = Organization
|
||||
serializer_class = OrganizationSerializer
|
||||
permission_classes = (CustomRbac,)
|
||||
parent_model = User
|
||||
relationship = 'admin_of_organizations'
|
||||
postable = False
|
||||
|
||||
def _get_queryset(self):
|
||||
user = User.objects.get(pk=self.kwargs['pk'])
|
||||
if not UserHelper.can_user_administrate(self.request.user, user):
|
||||
raise PermissionDenied()
|
||||
return Organization.objects.filter(admins__in = [ user ])
|
||||
|
||||
class UsersDetail(BaseDetail):
|
||||
|
||||
model = User
|
||||
|
||||
Reference in New Issue
Block a user