diff --git a/src/registrar/context_processors.py b/src/registrar/context_processors.py index 861a4e701..99b0aceaf 100644 --- a/src/registrar/context_processors.py +++ b/src/registrar/context_processors.py @@ -39,17 +39,6 @@ def is_production(request): return {"IS_PRODUCTION": settings.IS_PRODUCTION} -def org_user_status(request): - if request.user.is_authenticated: - is_org_user = request.user.is_org_user(request) - else: - is_org_user = False - - return { - "is_org_user": is_org_user, - } - - def add_path_to_context(request): return {"path": getattr(request, "path", None)} @@ -68,13 +57,14 @@ def portfolio_permissions(request): "has_domain_requests_portfolio_permission": False, "portfolio": None, "has_organization_feature_flag": False, + "is_org_user": False, } return { "has_base_portfolio_permission": request.user.has_base_portfolio_permission(), "has_domains_portfolio_permission": request.user.has_domains_portfolio_permission(), "has_domain_requests_portfolio_permission": request.user.has_domain_requests_portfolio_permission(), - "portfolio": request.user.portfolio, "has_organization_feature_flag": flag_is_active(request, "organization_feature"), + "is_org_user": request.user.is_org_user(request) } except AttributeError: # Handles cases where request.user might not exist diff --git a/src/registrar/models/user.py b/src/registrar/models/user.py index 2e36f4f57..169e15430 100644 --- a/src/registrar/models/user.py +++ b/src/registrar/models/user.py @@ -413,9 +413,9 @@ class User(AbstractUser): has_organization_feature_flag = flag_is_active(request, "organization_feature") return has_organization_feature_flag and self.has_base_portfolio_permission() - def get_user_domain_ids(self): + def get_user_domain_ids(self, request): """Returns either the domains ids associated with this user on UserDomainRole or Portfolio""" - if self.has_base_portfolio_permission() and self.has_view_all_domains_permission(): + if self.is_org_user(request) and self.has_view_all_domains_permission(): return DomainInformation.objects.filter(portfolio=self.portfolio).values_list("domain_id", flat=True) else: return UserDomainRole.objects.filter(user=self).values_list("domain_id", flat=True) diff --git a/src/registrar/templates/includes/domains_table.html b/src/registrar/templates/includes/domains_table.html index bce89fd12..1098e1659 100644 --- a/src/registrar/templates/includes/domains_table.html +++ b/src/registrar/templates/includes/domains_table.html @@ -2,7 +2,7 @@
- {% if portfolio is None %} + {% if not portfolio %}

Domains

{% else %} diff --git a/src/registrar/utility/csv_export.py b/src/registrar/utility/csv_export.py index 0cc112557..db961a36d 100644 --- a/src/registrar/utility/csv_export.py +++ b/src/registrar/utility/csv_export.py @@ -580,7 +580,7 @@ class DomainDataTypeUser(DomainDataType): return Q(id__in=[]) else: # Get all domains the user is associated with - return Q(domain__id__in=request.user.get_user_domain_ids()) + return Q(domain__id__in=request.user.get_user_domain_ids(request)) class DomainDataFull(DomainExport): diff --git a/src/registrar/views/domains_json.py b/src/registrar/views/domains_json.py index 1387b4ecb..6f16b74bd 100644 --- a/src/registrar/views/domains_json.py +++ b/src/registrar/views/domains_json.py @@ -1,20 +1,18 @@ import logging from django.http import JsonResponse from django.core.paginator import Paginator -from registrar.models import Domain +from registrar.models import UserDomainRole, Domain, DomainInformation from django.contrib.auth.decorators import login_required from django.urls import reverse from django.db.models import Q -from registrar.models import DomainInformation, UserDomainRole - logger = logging.getLogger(__name__) @login_required def get_domains_json(request): """Given the current request, - get all domains that are associated with the User object""" + get all domains that are associated with the UserDomainRole object""" domain_ids = get_domain_ids_from_request(request) @@ -51,7 +49,7 @@ def get_domain_ids_from_request(request): Otherwise, return domain ids associated with request.user. """ portfolio = request.GET.get("portfolio") - if portfolio: + if portfolio and request.user.is_org_user(request): domain_infos = DomainInformation.objects.filter(portfolio=portfolio) return domain_infos.values_list("domain_id", flat=True) else: diff --git a/src/registrar/views/index.py b/src/registrar/views/index.py index 0d74a81cc..53900a4a7 100644 --- a/src/registrar/views/index.py +++ b/src/registrar/views/index.py @@ -5,9 +5,9 @@ def index(request): """This page is available to anyone without logging in.""" context = {} - if request.user.is_authenticated: + if request and request.user and request.user.is_authenticated: # This controls the creation of a new domain request in the wizard request.session["new_request"] = True - context["user_domain_count"] = request.user.get_user_domain_ids().count() + context["user_domain_count"] = request.user.get_user_domain_ids(request).count() return render(request, "home.html", context) diff --git a/src/registrar/views/portfolios.py b/src/registrar/views/portfolios.py index bcf8e95c1..7a1dc4c8f 100644 --- a/src/registrar/views/portfolios.py +++ b/src/registrar/views/portfolios.py @@ -23,8 +23,8 @@ class PortfolioDomainsView(PortfolioDomainsPermissionView, View): def get(self, request): context = {} - if self.request.user.is_authenticated: - context["user_domain_count"] = self.request.user.get_user_domain_ids().count() + if self.request and self.request.user and self.request.user.is_authenticated: + context["user_domain_count"] = self.request.user.get_user_domain_ids(request).count() return render(request, "portfolio_domains.html", context)