def put(self, request, tag_slug, *args, **kwargs): """ Return the credential information for this tag """ user = request.user tag = CoreTag.objects.get(name__iexact=tag_slug) if not user.is_staff and user != tag.user: return Response([ 'Only the tag creator can update a tag.' + 'Contact support if you need to change ' + 'a tag that is not yours.' ], status=status.HTTP_400_BAD_REQUEST) #Allowed to update tags.. data = request.DATA.copy() if tag.user: data['user'] = tag.user.id else: data['user'] = user.id # Tag names are immutable data['name'] = tag.name serializer = TagSerializer(tag, data=data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def put(self, request, tag_slug, *args, **kwargs): """ Return the credential information for this tag """ user = request.user tag = CoreTag.objects.get(name__iexact=tag_slug) if not user.is_staff and user != tag.user: return Response([ 'Only the tag creator can update a tag.' + 'Contact support if you need to change ' + 'a tag that is not yours.'], status=status.HTTP_400_BAD_REQUEST) #Allowed to update tags.. data = request.DATA.copy() if tag.user: data['user'] = tag.user.id else: data['user'] = user.id # Tag names are immutable data['name'] = tag.name serializer = TagSerializer(tag, data=data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def post(self, request, provider_uuid, identity_uuid, instance_id, *args, **kwargs): """Create a new tag resource Params:name -- Name of the new Tag Returns: Status Code: 201 Body: A new Tag object Status Code: 400 Body: Errors (Duplicate/Invalid Name) """ user = request.user data = request.DATA.copy() if 'name' not in data: return Response("Missing 'name' in POST data", status=status.HTTP_400_BAD_REQUEST) core_instance = get_core_instance(request, provider_uuid, identity_uuid, instance_id) if not core_instance: instance_not_found(instance_id) created = False same_name_tags = CoreTag.objects.filter(name__iexact=data['name']) if same_name_tags: add_tag = same_name_tags[0] else: data['user'] = user.username data['name'] = data['name'].lower() #description is optional serializer = TagSerializer(data=data) if not serializer.is_valid(): return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) serializer.save() add_tag = serializer.object created = True core_instance.tags.add(add_tag) return Response(status=status.HTTP_204_NO_CONTENT)
def post(self, request, provider_id, identity_id, instance_id, *args, **kwargs): """Create a new tag resource Params:name -- Name of the new Tag Returns: Status Code: 201 Body: A new Tag object Status Code: 400 Body: Errors (Duplicate/Invalid Name) """ user = request.user data = request.DATA.copy() if 'name' not in data: return Response("Missing 'name' in POST data", status=status.HTTP_400_BAD_REQUEST) core_instance = get_core_instance(request, provider_id, identity_id, instance_id) if not core_instance: instance_not_found(instance_id) created = False same_name_tags = CoreTag.objects.filter(name__iexact=data['name']) if same_name_tags: add_tag = same_name_tags[0] else: data['user'] = user.username data['name'] = data['name'].lower() #description is optional serializer = TagSerializer(data=data) if not serializer.is_valid(): return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) serializer.save() add_tag = serializer.object created = True core_instance.tags.add(add_tag) return Response(status=status.HTTP_204_NO_CONTENT)
def test_add_tags(self): tag = "Centos" data = {"name": tag} t = TagSerializer(data=data) self.assertTrue(t.is_valid()) t.save() ts = Tag.objects.get(name=tag) self.assertTrue(ts.name == tag)
def tag_list(request, format=None): if request.method == 'GET': snippets = Tag.objects.all() serializer = TagSerializer(snippets, many=True) return Response(serializer.data) elif request.method == 'POST': serializer = TagSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def tag_list(request,format=None): if request.method == 'GET': snippets = Tag.objects.all() serializer = TagSerializer(snippets, many=True) return Response(serializer.data) elif request.method == 'POST': serializer = TagSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def post(self, request, *args, **kwargs): """ Create a new tag resource """ user = request.user data = request.DATA.copy() same_name_tags = CoreTag.objects.filter(name__iexact=data['name']) if same_name_tags: return Response(['A tag with this name already exists: %s' % same_name_tags], status=status.HTTP_400_BAD_REQUEST) data['user'] = user.username data['name'] = data['name'].lower() serializer = TagSerializer(data=data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def post(self, request, *args, **kwargs): """ Create a new tag resource """ user = request.user data = request.DATA.copy() same_name_tags = CoreTag.objects.filter(name__iexact=data['name']) if same_name_tags: return Response( ['A tag with this name already exists: %s' % same_name_tags], status=status.HTTP_400_BAD_REQUEST) data['user'] = user.username data['name'] = data['name'].lower() serializer = TagSerializer(data=data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def tag_detail(request, id, format=None): try: snippet = Tag.objects.get(id=id) except Tag.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) if request.method == 'GET': serializer = TagSerializer(snippet) return Response(serializer.data) elif request.method == 'PUT': serializer = TagSerializer(snippet, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) elif request.method == 'DELETE': if not request.user.has_perm('wiki.wiki_can_delete_wiki_tag'): return Response(status=status.HTTP_403_FORBIDDEN) snippet.delete() return Response(status=status.HTTP_204_NO_CONTENT)
def tag_detail(request, id,format=None): try: snippet = Tag.objects.get(id=id) except Tag.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) if request.method == 'GET': serializer = TagSerializer(snippet) return Response(serializer.data) elif request.method == 'PUT': serializer = TagSerializer(snippet, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) elif request.method == 'DELETE': if not request.user.has_perm('OpsManage.can_delete_wiki_tag'): return Response(status=status.HTTP_403_FORBIDDEN) snippet.delete() return Response(status=status.HTTP_204_NO_CONTENT)
def update_tag(self, request, tag_slug, partial=False): user = request.user tag = CoreTag.objects.get(name__iexact=tag_slug) if not user.is_staff and user != tag.user: return Response([ "Only the tag creator can update a tag." "Contact support if you need to change " "a tag that is not yours."], status=status.HTTP_400_BAD_REQUEST) # Allowed to update tags.. data = request.DATA.copy() if tag.user: data['user'] = tag.user else: data['user'] = user # Tag names are immutable data['name'] = tag.name serializer = TagSerializer(tag, data=data, partial=partial) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def update_tag(self, request, tag_slug, partial=False): user = request.user tag = CoreTag.objects.get(name__iexact=tag_slug) if not user.is_staff and user != tag.user: return Response([ 'Only the tag creator can update a tag.' + 'Contact support if you need to change ' + 'a tag that is not yours.' ], status=status.HTTP_400_BAD_REQUEST) # Allowed to update tags.. data = request.DATA.copy() if tag.user: data['user'] = tag.user else: data['user'] = user # Tag names are immutable data['name'] = tag.name serializer = TagSerializer(tag, data=data, partial=partial) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)