Example #1
0
 def post(self, request):
     '''
     绑定用户
     '''
     serializer = self.get_serializer(data=request.data)
     serializer.is_valid(raise_exception=True)
     user = serializer.validated_data['user']
     unionid = serializer.validated_data['user_id']
     wechat_user = WechatUser.valid_objects.filter(user=user).first()
     if wechat_user:
         wechat_user.unionid = unionid
     else:
         wechat_user = WechatUser.valid_objects.create(unionid=unionid, user=user)
     wechat_user.save()
     token = user.token
     data = {'token': token, **UserWithPermSerializer(user).data}
     LOG_CLI(user).user_login()
     return Response(data, HTTP_201_CREATED)
Example #2
0
    def update(self, request, *args, **kwargs):  # pylint: disable=unused-argument
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        validated_data = serializer.validated_data

        user = validated_data.pop('user')
        if user.is_settled:  # raise AuthenticationFailed return 403 ?
            return Response('only for unsettled user',
                            status=status.HTTP_401_UNAUTHORIZED)
        cli = CLI(user=user)
        user.__dict__.update(validated_data)
        user.save()
        cli.set_user_password(user, validated_data['password'])
        LOG_CLI(user).user_activate()
        return Response({
            # 'token': user.token,
            **UserWithPermSerializer(user).data,
        })
Example #3
0
    def get(self, request, *args, **kwargs):
        key = request.query_params.get('key', '')
        if not key:
            raise ValidationError({'key': ['this field is requied']})

        invitation = Invitation.parse(key)
        if invitation is None:
            return Response({'key': ['invalid']},
                            status=status.HTTP_400_BAD_REQUEST)

        if invitation.is_expired:
            return Response({'key': ['expired']},
                            status=status.HTTP_400_BAD_REQUEST)

        user = invitation.invitee
        return Response({
            # 'token': user.token,
            **UserWithPermSerializer(user).data,
        })
Example #4
0
 def post(self, request):
     """
     绑定用户
     """
     serializer = self.get_serializer(data=request.data)
     serializer.is_valid(raise_exception=True)
     user = serializer.validated_data['user']
     github_user_id = serializer.validated_data['user_id']
     github_user = GithubUser.valid_objects.filter(user=user).first()
     if github_user:
         github_user.github_user_id = github_user_id
     else:
         github_user = GithubUser.valid_objects.create(
             github_user_id=github_user_id, user=user)
     github_user.save()
     token = user.token
     data = {'token': token, **UserWithPermSerializer(user).data}
     LOG_CLI(user).user_login()
     return Response(data, HTTP_201_CREATED)
Example #5
0
 def attachment(self, token):
     user = token.user
     return UserWithPermSerializer(user).data