mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-06-29 15:53:31 +02:00
added portfolio(s) to the middleware
This commit is contained in:
parent
5448118bea
commit
f2c3c320e9
3 changed files with 15 additions and 9 deletions
|
@ -60,7 +60,7 @@ for step, view in [
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path("", views.index, name="home"),
|
path("", views.index, name="home"),
|
||||||
path(
|
path(
|
||||||
"organization",
|
"organization/<int:portfolio_id>/",
|
||||||
index_organizations,
|
index_organizations,
|
||||||
name="home-organization",
|
name="home-organization",
|
||||||
),
|
),
|
||||||
|
|
|
@ -6,6 +6,7 @@ import logging
|
||||||
from urllib.parse import parse_qs
|
from urllib.parse import parse_qs
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.http import HttpResponseRedirect
|
from django.http import HttpResponseRedirect
|
||||||
|
from registrar.models.portfolio import Portfolio
|
||||||
from registrar.models.user import User
|
from registrar.models.user import User
|
||||||
from waffle.decorators import flag_is_active
|
from waffle.decorators import flag_is_active
|
||||||
|
|
||||||
|
@ -128,7 +129,6 @@ class CheckOrganizationMiddleware:
|
||||||
|
|
||||||
def __init__(self, get_response):
|
def __init__(self, get_response):
|
||||||
self.get_response = get_response
|
self.get_response = get_response
|
||||||
self.home_organization = reverse("home-organization")
|
|
||||||
self.home = reverse("home")
|
self.home = reverse("home")
|
||||||
self.json1 = reverse("get_domains_json")
|
self.json1 = reverse("get_domains_json")
|
||||||
self.json2 = reverse("get_domain_requests_json")
|
self.json2 = reverse("get_domain_requests_json")
|
||||||
|
@ -141,16 +141,22 @@ class CheckOrganizationMiddleware:
|
||||||
current_path = request.path
|
current_path = request.path
|
||||||
logger.debug(f"Current path: {current_path}")
|
logger.debug(f"Current path: {current_path}")
|
||||||
|
|
||||||
# Avoid infinite loop by skipping the redirect check on the home-organization URL
|
# Avoid infinite loop by skipping the redirect check on the home-organization URL and other JSON URLs
|
||||||
if current_path == self.home_organization or current_path == self.json1 or current_path == self.json2:
|
if current_path in [self.json1, self.json2] or current_path.startswith('/admin'):
|
||||||
logger.debug("Skipping middleware check for home-organization URL")
|
logger.debug("Skipping middleware check for home-organization and JSON URLs")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
has_organization_feature_flag = flag_is_active(request, "organization_feature")
|
has_organization_feature_flag = flag_is_active(request, "organization_feature")
|
||||||
logger.debug(f"Flag is active: {has_organization_feature_flag}")
|
logger.debug(f"Flag is active: {has_organization_feature_flag}")
|
||||||
|
|
||||||
if has_organization_feature_flag:
|
if has_organization_feature_flag:
|
||||||
logger.debug(f"Redirecting to {self.home_organization}")
|
if request.user.is_authenticated:
|
||||||
return HttpResponseRedirect(self.home_organization)
|
user_portfolios = Portfolio.objects.filter(creator=request.user)
|
||||||
|
if user_portfolios.exists():
|
||||||
|
first_portfolio = user_portfolios.first()
|
||||||
|
home_organization_with_portfolio = reverse("home-organization", kwargs={'portfolio_id': first_portfolio.id})
|
||||||
|
|
||||||
|
if current_path != home_organization_with_portfolio:
|
||||||
|
logger.debug(f"User has portfolios, redirecting to {home_organization_with_portfolio}")
|
||||||
|
return HttpResponseRedirect(home_organization_with_portfolio)
|
||||||
return None
|
return None
|
||||||
|
|
|
@ -2,7 +2,7 @@ from django.shortcuts import render
|
||||||
from waffle.decorators import flag_is_active
|
from waffle.decorators import flag_is_active
|
||||||
|
|
||||||
|
|
||||||
def index_organizations(request):
|
def index_organizations(request, portfolio_id):
|
||||||
"""This page is available to anyone without logging in."""
|
"""This page is available to anyone without logging in."""
|
||||||
context = {}
|
context = {}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue