Skip to content

Commit

Permalink
Codefactor fix 1
Browse files Browse the repository at this point in the history
  • Loading branch information
monsieurswag committed Oct 21, 2024
1 parent edecfa0 commit 60c091d
Showing 1 changed file with 34 additions and 32 deletions.
66 changes: 34 additions & 32 deletions backend/core/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
from rest_framework.renderers import JSONRenderer
from rest_framework.request import Request
from rest_framework.response import Response
from rest_framework.status import HTTP_400_BAD_REQUEST, HTTP_403_FORBIDDEN
from rest_framework.status import HTTP_400_BAD_REQUEST, HTTP_403_FORBIDDEN, HTTP_404_NOT_FOUND
from rest_framework.utils.serializer_helpers import ReturnDict
from rest_framework.views import APIView

Expand Down Expand Up @@ -941,37 +941,39 @@ def duplicate(self, request, pk):
(object_ids_view, _, _) = RoleAssignment.get_accessible_object_ids(
Folder.get_root_folder(), request.user, AppliedControl
)
if UUID(pk) in object_ids_view:
applied_control = self.get_object()
data = request.data
new_folder = Folder.objects.get(id=data["folder"])
duplicate_applied_control = AppliedControl.objects.create(
reference_control=applied_control.reference_control,
name=data["name"],
description=data["description"],
folder=new_folder,
category=applied_control.category,
csf_function=applied_control.csf_function,
status=applied_control.status,
start_date=applied_control.start_date,
eta=applied_control.eta,
expiry_date=applied_control.expiry_date,
link=applied_control.link,
effort=applied_control.effort,
cost=applied_control.cost,
)
if request.data["duplicate_evidences"]:
for evidence in applied_control.evidences.all():
# Evidences will only be duplicated if necessary
if new_folder.can_access(evidence.folder):
duplicate_applied_control.evidences.add(evidence)
else:
new_evidence = evidence.duplicate_into_folder(new_folder)
duplicate_applied_control.evidences.add(new_evidence)

duplicate_applied_control.save()

return Response({"results": "applied control duplicated"})
if UUID(pk) not in object_ids_view:
return Response({"results": "applied control duplicated"}, status=HTTP_404_NOT_FOUND)

applied_control = self.get_object()
data = request.data
new_folder = Folder.objects.get(id=data["folder"])
duplicate_applied_control = AppliedControl.objects.create(
reference_control=applied_control.reference_control,
name=data["name"],
description=data["description"],
folder=new_folder,
category=applied_control.category,
csf_function=applied_control.csf_function,
status=applied_control.status,
start_date=applied_control.start_date,
eta=applied_control.eta,
expiry_date=applied_control.expiry_date,
link=applied_control.link,
effort=applied_control.effort,
cost=applied_control.cost,
)
if request.data["duplicate_evidences"]:
for evidence in applied_control.evidences.all():
# Evidences will only be duplicated if necessary
if new_folder.can_access(evidence.folder):
duplicate_applied_control.evidences.add(evidence)
else:
new_evidence = evidence.duplicate_into_folder(new_folder)
duplicate_applied_control.evidences.add(new_evidence)

duplicate_applied_control.save()

return Response({"results": "applied control duplicated"})


class PolicyViewSet(AppliedControlViewSet):
Expand Down

0 comments on commit 60c091d

Please sign in to comment.