diff --git a/src/registrar/context_processors.py b/src/registrar/context_processors.py index 92a89ca02..ea04dca80 100644 --- a/src/registrar/context_processors.py +++ b/src/registrar/context_processors.py @@ -61,7 +61,7 @@ def add_has_profile_feature_flag_to_context(request): def portfolio_permissions(request): """Make portfolio permissions for the request user available in global context""" try: - portfolio = request.session["portfolio"] if "portfolio" in request.session else None + portfolio = request.session.get("portfolio") if portfolio: return { "has_base_portfolio_permission": request.user.has_base_portfolio_permission(portfolio), diff --git a/src/registrar/models/user.py b/src/registrar/models/user.py index 8789a628b..c19778827 100644 --- a/src/registrar/models/user.py +++ b/src/registrar/models/user.py @@ -385,12 +385,12 @@ class User(AbstractUser): def is_org_user(self, request): has_organization_feature_flag = flag_is_active(request, "organization_feature") - portfolio = request.session["portfolio"] if "portfolio" in request.session else None + portfolio = request.session.get("portfolio") return has_organization_feature_flag and self.has_base_portfolio_permission(portfolio) def get_user_domain_ids(self, request): """Returns either the domains ids associated with this user on UserDomainRole or Portfolio""" - portfolio = request.session["portfolio"] if "portfolio" in request.session else None + portfolio = request.session.get("portfolio") if self.is_org_user(request) and self.has_view_all_domains_permission(portfolio): return DomainInformation.objects.filter(portfolio=portfolio).values_list( "domain_id", flat=True diff --git a/src/registrar/views/domain.py b/src/registrar/views/domain.py index 7f31945f6..003f8dd0d 100644 --- a/src/registrar/views/domain.py +++ b/src/registrar/views/domain.py @@ -174,7 +174,7 @@ class DomainView(DomainBaseView): """Most views should not allow permission to portfolio users. If particular views allow permissions, they will need to override this function.""" - portfolio = self.request.session["portfolio"] if "portfolio" in self.request.session else None + portfolio = self.request.session.get("portfolio") if self.request.user.has_domains_portfolio_permission(portfolio): if Domain.objects.filter(id=pk).exists(): domain = Domain.objects.get(id=pk) @@ -237,7 +237,7 @@ class DomainOrgNameAddressView(DomainFormBaseView): # Org users shouldn't have access to this page is_org_user = self.request.user.is_org_user(self.request) - portfolio = self.request.session["portfolio"] if "portfolio" in self.request.session else None + portfolio = self.request.session.get("portfolio") if portfolio and is_org_user: return False else: @@ -257,7 +257,7 @@ class DomainSubOrganizationView(DomainFormBaseView): # non-org users shouldn't have access to this page is_org_user = self.request.user.is_org_user(self.request) - portfolio = self.request.session["portfolio"] if "portfolio" in self.request.session else None + portfolio = self.request.session.get("portfolio") if portfolio and is_org_user: return super().has_permission() else: @@ -338,7 +338,7 @@ class DomainSeniorOfficialView(DomainFormBaseView): # Org users shouldn't have access to this page is_org_user = self.request.user.is_org_user(self.request) - portfolio = self.request.session["portfolio"] if "portfolio" in self.request.session else None + portfolio = self.request.session.get("portfolio") if portfolio and is_org_user: return False else: diff --git a/src/registrar/views/portfolios.py b/src/registrar/views/portfolios.py index d3a6d6055..18285774b 100644 --- a/src/registrar/views/portfolios.py +++ b/src/registrar/views/portfolios.py @@ -51,7 +51,7 @@ class PortfolioOrganizationView(PortfolioBasePermissionView, FormMixin): def get_context_data(self, **kwargs): """Add additional context data to the template.""" context = super().get_context_data(**kwargs) - portfolio = self.request.session["portfolio"] if "portfolio" in self.request.session else None + portfolio = self.request.session.get("portfolio") context["has_edit_org_portfolio_permission"] = self.request.user.has_edit_org_portfolio_permission( portfolio ) @@ -59,7 +59,7 @@ class PortfolioOrganizationView(PortfolioBasePermissionView, FormMixin): def get_object(self, queryset=None): """Get the portfolio object based on the session.""" - portfolio = self.request.session["portfolio"] if "portfolio" in self.request.session else None + portfolio = self.request.session.get("portfolio") if portfolio is None: raise Http404("No organization found for this user") return portfolio @@ -115,7 +115,7 @@ class PortfolioSeniorOfficialView(PortfolioBasePermissionView, FormMixin): def get_object(self, queryset=None): """Get the portfolio object based on the session.""" - portfolio = self.request.session["portfolio"] if "portfolio" in self.request.session else None + portfolio = self.request.session.get("portfolio") if portfolio is None: raise Http404("No organization found for this user") return portfolio diff --git a/src/registrar/views/utility/mixins.py b/src/registrar/views/utility/mixins.py index 1f255f414..376912634 100644 --- a/src/registrar/views/utility/mixins.py +++ b/src/registrar/views/utility/mixins.py @@ -419,7 +419,7 @@ class PortfolioBasePermission(PermissionsLoginMixin): if not self.request.user.is_authenticated: return False - portfolio = self.request.session["portfolio"] if "portfolio" in self.request.session else None + portfolio = self.request.session.get("portfolio") return self.request.user.has_base_portfolio_permission(portfolio) @@ -436,7 +436,7 @@ class PortfolioDomainsPermission(PortfolioBasePermission): if not self.request.user.is_authenticated: return False - portfolio = self.request.session["portfolio"] if "portfolio" in self.request.session else None + portfolio = self.request.session.get("portfolio") return self.request.user.has_domains_portfolio_permission(portfolio) @@ -453,5 +453,5 @@ class PortfolioDomainRequestsPermission(PortfolioBasePermission): if not self.request.user.is_authenticated: return False - portfolio = self.request.session["portfolio"] if "portfolio" in self.request.session else None + portfolio = self.request.session.get("portfolio") return self.request.user.has_domain_requests_portfolio_permission(portfolio)