Adding and removing users from a team.

This commit is contained in:
Michael DeHaan
2013-04-01 18:19:37 -04:00
parent 93a230078d
commit 6bf4c1604f
3 changed files with 54 additions and 11 deletions

View File

@@ -192,6 +192,28 @@ class TeamsDetail(BaseDetail):
serializer_class = TeamSerializer
permission_classes = (CustomRbac,)
class TeamsUsersList(BaseSubList):
model = User
serializer_class = UserSerializer
permission_classes = (CustomRbac,)
parent_model = Team
relationship = 'users'
postable = True
inject_primary_key_on_post_as = 'team'
severable = True
def _get_queryset(self):
# FIXME: audit all BaseSubLists to check for permissions on the original object too
'team members can see the whole team, as can org admins or superusers'
team = Team.objects.get(pk=self.kwargs['pk'])
base = team.users.all()
if self.request.user.is_superuser or self.request.user in team.organization.admins.all():
return base
if self.request.user in team.users.all():
return base
raise PermissionDenied()
class ProjectsList(BaseList):
model = Project