Fix edge cases

This commit is contained in:
zandercymatics 2024-08-20 14:17:14 -06:00
parent 3c89557976
commit 5f6f39048f
No known key found for this signature in database
GPG key ID: FF4636ABEC9682B7
4 changed files with 11 additions and 10 deletions

View file

@ -61,14 +61,15 @@ def add_has_profile_feature_flag_to_context(request):
def portfolio_permissions(request): def portfolio_permissions(request):
"""Make portfolio permissions for the request user available in global context""" """Make portfolio permissions for the request user available in global context"""
try: try:
if request.session["portfolio"] is not None: portfolio = request.session["portfolio"] if "portfolio" in request.session else None
if portfolio:
return { return {
"has_base_portfolio_permission": request.user.has_base_portfolio_permission(request.session["portfolio"]), "has_base_portfolio_permission": request.user.has_base_portfolio_permission(portfolio),
"has_domains_portfolio_permission": request.user.has_domains_portfolio_permission(request.session["portfolio"]), "has_domains_portfolio_permission": request.user.has_domains_portfolio_permission(portfolio),
"has_domain_requests_portfolio_permission": request.user.has_domain_requests_portfolio_permission(request.session["portfolio"]), "has_domain_requests_portfolio_permission": request.user.has_domain_requests_portfolio_permission(portfolio),
"has_view_suborganization": request.user.has_view_suborganization(request.session["portfolio"]), "has_view_suborganization": request.user.has_view_suborganization(portfolio),
"has_edit_suborganization": request.user.has_edit_suborganization(request.session["portfolio"]), "has_edit_suborganization": request.user.has_edit_suborganization(portfolio),
"portfolio": request.session["portfolio"], "portfolio": portfolio,
"has_organization_feature_flag": True, "has_organization_feature_flag": True,
} }
return { return {

View file

@ -74,7 +74,7 @@
{% if portfolio and has_domains_portfolio_permission and has_view_suborganization %} {% if portfolio and has_domains_portfolio_permission and has_view_suborganization %}
{% url 'domain-suborganization' pk=domain.id as url %} {% url 'domain-suborganization' pk=domain.id as url %}
{% include "includes/summary_item.html" with title='Suborganization' value=domain.domain_info.sub_organization edit_link=url editable=is_editable|and:request.user.has_edit_suborganization %} {% include "includes/summary_item.html" with title='Suborganization' value=domain.domain_info.sub_organization edit_link=url editable=is_editable|and:has_edit_suborganization %}
{% else %} {% else %}
{% url 'domain-org-name-address' pk=domain.id as url %} {% url 'domain-org-name-address' pk=domain.id as url %}
{% include "includes/summary_item.html" with title='Organization name and mailing address' value=domain.domain_info address='true' edit_link=url editable=is_editable %} {% include "includes/summary_item.html" with title='Organization name and mailing address' value=domain.domain_info address='true' edit_link=url editable=is_editable %}

View file

@ -15,7 +15,7 @@
If you believe there is an error please contact <a href="mailto:help@get.gov" class="usa-link">help@get.gov</a>. If you believe there is an error please contact <a href="mailto:help@get.gov" class="usa-link">help@get.gov</a>.
</p> </p>
{% if has_domains_portfolio_permission and request.user.has_edit_suborganization %} {% if has_domains_portfolio_permission and has_edit_suborganization %}
<form class="usa-form usa-form--large" method="post" novalidate id="form-container"> <form class="usa-form usa-form--large" method="post" novalidate id="form-container">
{% csrf_token %} {% csrf_token %}
{% input_with_errors form.sub_organization %} {% input_with_errors form.sub_organization %}

View file

@ -174,7 +174,7 @@ class DomainView(DomainBaseView):
"""Most views should not allow permission to portfolio users. """Most views should not allow permission to portfolio users.
If particular views allow permissions, they will need to override If particular views allow permissions, they will need to override
this function.""" this function."""
if self.request.user.has_domains_portfolio_permission(): if self.request.user.has_domains_portfolio_permission(self.request.session["portfolio"]):
if Domain.objects.filter(id=pk).exists(): if Domain.objects.filter(id=pk).exists():
domain = Domain.objects.get(id=pk) domain = Domain.objects.get(id=pk)
if domain.domain_info.portfolio == self.request.session["portfolio"]: if domain.domain_info.portfolio == self.request.session["portfolio"]: