Пример #1
0
 def get(self, request, team_id, nonmember=None, format=None):
     """Get the membership information for the specified team."""
     # if query param "nonmember" is set, returns users not on this team
     nonmember = request.query_params.get('nonmember', None) if nonmember is None else nonmember
     if nonmember is not None:
         users = User.objects.exclude(member_memberships__team_id=team_id).order_by('last_name').all()
         serializer = UserSerializer(users, many=True)
         return Response(serializer.data)
     team_memberships = self.get_object(team_id, request.user)
     serializer = TeamMembershipSerializer(team_memberships, many=True)
     return Response(serializer.data)
Пример #2
0
def login_otp(otp, phone):
    if (UserOtp.objects.checkOtp(otp, phone)):
        user = User.objects.get(phone=phone)
        if not user.is_active:
            user.activate()

        Token.objects.filter(user=user).delete()
        token = Token.objects.create(user=user)

        data = UserSerializer(user).data
        data['memberships'] = TeamMembershipSerializer(user.get_memberships(), many=True).data
        data['token'] = token.key
        return Response(data=data)
    else:
        return Response(data={"error": "Invalid OTP"}, status=status.HTTP_401_UNAUTHORIZED)
Пример #3
0
 def post(self, request, team_id, format=None):
     """Add a new membership for a user."""
     # add the team info to the data
     request.data["team"] = team_id
     serializer = TeamMembershipModifySerializer(data=request.data)
     if serializer.is_valid():
         # make sure the membership doesn't already exist
         existing_membership = TeamMembership.objects.filter(team__id=team_id,
                                                             member__id=request.data["member"]).first()
         if existing_membership is not None:
             return Response("user is already a member of this team", status=status.HTTP_400_BAD_REQUEST)
         membership = serializer.save()
         display_serializer = TeamMembershipSerializer(instance=membership)
         return Response(display_serializer.data, status=status.HTTP_201_CREATED)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Пример #4
0
def get_chats(request, team_id, user_id, format=None):
    team = get_object_or_404(Team, id=team_id)
    user = get_object_or_404(User, id=user_id)
    chat_members = team.get_chat_targets(user)
    serializer = TeamMembershipSerializer(chat_members, many=True)
    return Response(serializer.data)
Пример #5
0
 def get(self, request, team_id, membership_id, format=None):
     """Get details for the specified team."""
     (membership, _current_user_can_edit) = self.get_object(membership_id, request.user)
     serializer = TeamMembershipSerializer(instance=membership)
     return Response(serializer.data)