fix bug with registrar and basic redirect link stuff

This commit is contained in:
zandercymatics 2024-09-05 11:38:16 -06:00
parent ec7202b47c
commit 9bd67cfdbe
No known key found for this signature in database
GPG key ID: FF4636ABEC9682B7
4 changed files with 36 additions and 7 deletions

View file

@ -144,8 +144,15 @@ class CheckPortfolioMiddleware:
if not request.user.is_authenticated: if not request.user.is_authenticated:
return None return None
# set the portfolio in the session if it is not set old_updated_at = None
if "portfolio" not in request.session or request.session["portfolio"] is None: if request.session.get("portfolio"):
old_updated_at = request.session.get("portfolio__updated_at")
request.session["portfolio__updated_at"] = request.session.get("portfolio").updated_at
should_update_portfolio = (
not request.session.get("portfolio") or old_updated_at != request.session.get("portfolio__updated_at")
)
if request.user.is_org_user(request) or should_update_portfolio:
# if multiple portfolios are allowed for this user # if multiple portfolios are allowed for this user
if flag_is_active(request, "multiple_portfolios"): if flag_is_active(request, "multiple_portfolios"):
# NOTE: we will want to change later to have a workflow for selecting # NOTE: we will want to change later to have a workflow for selecting
@ -156,8 +163,8 @@ class CheckPortfolioMiddleware:
else: else:
request.session["portfolio"] = None request.session["portfolio"] = None
if request.session["portfolio"] is not None and current_path == self.home: if request.session.get("portfolio"):
if request.user.is_org_user(request): if current_path == self.home:
if request.user.has_domains_portfolio_permission(request.session["portfolio"]): if request.user.has_domains_portfolio_permission(request.session["portfolio"]):
portfolio_redirect = reverse("domains") portfolio_redirect = reverse("domains")
else: else:

View file

@ -8,13 +8,26 @@
{% block content %} {% block content %}
<main id="main-content" class="grid-container"> <main id="main-content" class="grid-container">
<div class="grid-col desktop:grid-offset-2 desktop:grid-col-8"> <div class="grid-col desktop:grid-offset-2 desktop:grid-col-8">
<a href="{% url 'home' %}" class="breadcrumb__back"> {% comment %}
The back button should redirect to the domain request page if we are in the portfolio view.
Otherwise, lets just redirect back to home.
{% endcomment %}
{% if portfolio %}
{% url 'domain-requests' as url%}
{% else %}
{% url 'home' as url%}
{% endif %}
<a href="{{ url }}" class="breadcrumb__back">
<svg class="usa-icon" aria-hidden="true" focusable="false" role="img"> <svg class="usa-icon" aria-hidden="true" focusable="false" role="img">
<use xlink:href="{% static 'img/sprite.svg' %}#arrow_back"></use> <use xlink:href="{% static 'img/sprite.svg' %}#arrow_back"></use>
</svg> </svg>
<p class="margin-left-05 margin-top-0 margin-bottom-0 line-height-sans-1"> <p class="margin-left-05 margin-top-0 margin-bottom-0 line-height-sans-1">
Back to manage your domains {% if portfolio %}
Back to manage your domains requests
{% else %}
Back to manage your domains
{% endif %}
</p> </p>
</a> </a>
<h1>Domain request for {{ DomainRequest.requested_domain.name }}</h1> <h1>Domain request for {{ DomainRequest.requested_domain.name }}</h1>

View file

@ -152,7 +152,14 @@ class DomainRequestWizard(DomainRequestWizardPermissionView, TemplateView):
except DomainRequest.DoesNotExist: except DomainRequest.DoesNotExist:
logger.debug("DomainRequest id %s did not have a DomainRequest" % id) logger.debug("DomainRequest id %s did not have a DomainRequest" % id)
self._domain_request = DomainRequest.objects.create(creator=self.request.user) # If a user is creating a request, we assume that perms are handled upstream
if self.request.user.is_org_user(self.request):
self._domain_request = DomainRequest.objects.create(
creator=self.request.user,
portfolio=self.request.session.get("portfolio"),
)
else:
self._domain_request = DomainRequest.objects.create(creator=self.request.user)
self.storage["domain_request_id"] = self._domain_request.id self.storage["domain_request_id"] = self._domain_request.id
return self._domain_request return self._domain_request

View file

@ -47,6 +47,8 @@ def get_domain_requests_ids_from_request(request):
""" """
portfolio = request.GET.get("portfolio") portfolio = request.GET.get("portfolio")
if portfolio: if portfolio:
# Question:
# Do we need to exclude started if the creator isn't the current request user
domain_requests = DomainRequest.objects.filter(portfolio=portfolio).exclude( domain_requests = DomainRequest.objects.filter(portfolio=portfolio).exclude(
status=DomainRequest.DomainRequestStatus.APPROVED status=DomainRequest.DomainRequestStatus.APPROVED
) )