mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-05-19 10:59:21 +02:00
Add corrected delete logic
This commit is contained in:
parent
c1daa455ae
commit
4b8f77436d
2 changed files with 19 additions and 5 deletions
|
@ -796,6 +796,12 @@ class DomainRequestDeleteView(DomainRequestPermissionDeleteView):
|
||||||
if status not in valid_statuses:
|
if status not in valid_statuses:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
# Portfolio users cannot delete their requests if they aren't permissioned to do so
|
||||||
|
if self.request.user.is_org_user(self.request):
|
||||||
|
portfolio = self.request.session.get("portfolio")
|
||||||
|
if not self.request.user.has_edit_request_portfolio_permission(portfolio):
|
||||||
|
return False
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def get_success_url(self):
|
def get_success_url(self):
|
||||||
|
|
|
@ -25,9 +25,8 @@ def get_domain_requests_json(request):
|
||||||
paginator = Paginator(objects, 10)
|
paginator = Paginator(objects, 10)
|
||||||
page_number = request.GET.get("page", 1)
|
page_number = request.GET.get("page", 1)
|
||||||
page_obj = paginator.get_page(page_number)
|
page_obj = paginator.get_page(page_number)
|
||||||
|
|
||||||
domain_requests = [
|
domain_requests = [
|
||||||
serialize_domain_request(domain_request, request.user) for domain_request in page_obj.object_list
|
serialize_domain_request(request, domain_request, request.user) for domain_request in page_obj.object_list
|
||||||
]
|
]
|
||||||
|
|
||||||
return JsonResponse(
|
return JsonResponse(
|
||||||
|
@ -90,13 +89,22 @@ def apply_sorting(queryset, request):
|
||||||
return queryset.order_by(sort_by)
|
return queryset.order_by(sort_by)
|
||||||
|
|
||||||
|
|
||||||
def serialize_domain_request(domain_request, user):
|
def serialize_domain_request(request, domain_request, user):
|
||||||
# Determine if the request is deletable
|
|
||||||
is_deletable = domain_request.status in [
|
deletable_statuses = [
|
||||||
DomainRequest.DomainRequestStatus.STARTED,
|
DomainRequest.DomainRequestStatus.STARTED,
|
||||||
DomainRequest.DomainRequestStatus.WITHDRAWN,
|
DomainRequest.DomainRequestStatus.WITHDRAWN,
|
||||||
]
|
]
|
||||||
|
|
||||||
|
# Determine if the request is deletable
|
||||||
|
if not user.is_org_user(request):
|
||||||
|
is_deletable = domain_request.status in deletable_statuses
|
||||||
|
else:
|
||||||
|
portfolio = request.session.get("portfolio")
|
||||||
|
is_deletable = (
|
||||||
|
domain_request.status in deletable_statuses and user.has_edit_request_portfolio_permission(portfolio)
|
||||||
|
) and domain_request.creator == user
|
||||||
|
|
||||||
# Determine action label based on user permissions and request status
|
# Determine action label based on user permissions and request status
|
||||||
editable_statuses = [
|
editable_statuses = [
|
||||||
DomainRequest.DomainRequestStatus.STARTED,
|
DomainRequest.DomainRequestStatus.STARTED,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue