Esempio n. 1
0
 def applications(self, request):
     """查询application信息
     """
     check_permission((IsAuthenticated, ), self, request)
     instances = Application.objects.filter(owner=request.user)
     serializer = ApplicationSerializer(instances, many=True)
     return Response(serializer.data)
Esempio n. 2
0
 def token(self, request, *args, **kwargs):
     """
     Get open problem detail
     """
     check_permission((IsAuthenticated, ), self, request)
     token = q.upload_token(bucket_name, None, 7200, policy)
     return Response({"token": token})
Esempio n. 3
0
 def list(self, request, *args, **kwargs):
     """
     展示用户名下的 所有 Social Oauth 信息
     """
     check_permission((IsAuthenticated, ), self=self, request=request)
     socials = self.queryset.filter(user=request.user)
     return Response(data={SocialAccountSerializer(socials, many=True)},
                     status=status.HTTP_200_OK)
Esempio n. 4
0
 def register(self, request):
     """注册一个application
     """
     check_permission((IsAuthenticated, ), self, request)
     serializer = ApplicationRegisterSerializer(data=request.data)
     serializer.is_valid(raise_exception=True)
     serializer.save(owner=request.user)
     return Response(data=serializer.data)
Esempio n. 5
0
 def update(self, request, *args, **kwargs):
     """
     修改用户信息
     """
     check_permission((IsAuthenticated, IsAdminOrSelf), self, request)
     instance = request.user
     serializer = ProfileChangeSerializer(instance, data=request.data)
     serializer.is_valid(raise_exception=True)
     serializer.save()
     return Response(data=serializer.data)
Esempio n. 6
0
 def binding(self, request):
     check_permission((IsAuthenticated, ), self=self, request=request)
     serializer = SocialAuthSerializer(data=request.data)
     serializer.is_valid(raise_exception=True)
     try:
         SocialOauthService.binding(request.user,
                                    serializer.data['provider'],
                                    serializer.data['code'])
         return Response(data={'detail': '绑定成功'}, status=status.HTTP_200_OK)
     except SocialOauthHasBound:
         return Response(data={'detail': '社交帐号已被其它帐号绑定'},
                         status=status.HTTP_403_FORBIDDEN)
Esempio n. 7
0
 def authorize(self, request):
     """获取code
     :param:
         client_id:
         [redirect_url]:
         [scope]:
         [state]:
     Returns:
         code
     """
     check_permission((IsAuthenticated, ), self, request)
     serializer = ApplicationAuthSerializer(data=request.GET)
     serializer.is_valid(raise_exception=True)
     try:
         grant = OauthService.grant(serializer.data['client_id'],
                                    request.user)
     except ApplicationNotExist:
         return Response(data={'detail': '应用不存在'},
                         status=status.HTTP_403_FORBIDDEN)
     return HttpResponseRedirect(grant.application.redirect_uri + '?code=' +
                                 grant.code)