def recipes_detail(request, pk): JWT = JWTAuthentication() request_data = JWT.authenticate( request) ##returns a tuple with user, token print(request_data[0]) user = request_data[0] try: recipe = Recipe.objects.get(pk=pk) except Recipe.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) if request.method == 'GET': serializer = RecipeSerializer(recipe) return Response(serializer.data) elif request.method == 'PUT': serializer = RecipeSerializer(recipe, data=request.data) if serializer.is_valid(): serializer.save(user=user) return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) elif request.method == 'DELETE': recipe.delete() return Response(status=status.HTTP_204_NO_CONTENT)
def format_data(self, data): JWT_authenticator = JWTAuthentication() # decode token user, _ = JWT_authenticator.authenticate(self.request) data['user'] = user.id data['date'] = format_date(data['date']) return data
def middleware(request): auth = JWTAuthentication() user = None try: user = auth.authenticate(request) #authenticate method returns tuple of user, validated_token or none except Exception: pass if user is not None: user = user[0] else: user = AnonymousUser() request.user = user response = get_response(request) return response
def create(self, request, *args, **kwargs): jwt_auth = JWTAuthentication() user, token = jwt_auth.authenticate(request) if not user: return Response(status=status.HTTP_401_UNAUTHORIZED) payload = self.request.data payload['likes'] = [] payload['user'] = user.id serializer = blog_serializers.PostSerializer(data=payload) if serializer.is_valid(): serializer.save() return Response(data=serializer.data, status=status.HTTP_201_CREATED) return Response(data=serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def ingredients_list(request): JWT = JWTAuthentication() request_data = JWT.authenticate( request) ##returns a tuple with user, token print(request_data[0]) user = request_data[0] if request.method == 'GET': data = user.ingredient_set.all() serializer = IngredientSerializer(data, context={'request': request}, many=True) return Response(serializer.data) elif request.method == 'POST': serializer = IngredientSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response(status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def wrapper(parent, info, *args, **kwargs): if isinstance(info.context, HttpRequest): authenticator = JWTAuthentication() auth_result = authenticator.authenticate(info.context) if auth_result is None: raise PermissionDenied() user, _ = auth_result if not user.is_authenticated: raise NotAuthenticated() if with_policies is not None and len(with_policies) > 0: is_allowed_request = PermissionService.check_policies(info.context, user, with_policies) if not is_allowed_request: raise PermissionDenied() kwargs["current_user"] = user resolved = resolver(parent, info, *args, **kwargs) return resolved
def recipes_list(request): JWT = JWTAuthentication() request_data = JWT.authenticate( request) ##returns a tuple with user, token print(request_data[0]) user = request_data[0] ##extracts user from the tuple try: if request.method == 'GET': data = user.recipe_set.all() query = request.GET.getlist('ingredients') exclusions = request.GET.getlist('exclude') if query: ## data = Recipe.objects.filter(ingredients__in=query).distinct() data = user.recipe_set.all().filter( ingredients__in=query).distinct() if exclusions: data = data.exclude(ingredients__in=exclusions) serializer = RecipeSerializer(data, context={'request': request}, many=True) return Response(serializer.data) elif request.method == 'POST': serializer = RecipeSerializer(data=request.data) if serializer.is_valid(): serializer.save(user=user) return Response(status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) except Exception as e: print(e)