mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-07-25 12:08:40 +02:00
Refactor fields using portfolio
This commit is contained in:
parent
e03e6f7d35
commit
1090d75f75
6 changed files with 16 additions and 15 deletions
|
@ -73,7 +73,7 @@ def portfolio_permissions(request):
|
||||||
"has_base_portfolio_permission": request.user.has_base_portfolio_permission(),
|
"has_base_portfolio_permission": request.user.has_base_portfolio_permission(),
|
||||||
"has_domains_portfolio_permission": request.user.has_domains_portfolio_permission(),
|
"has_domains_portfolio_permission": request.user.has_domains_portfolio_permission(),
|
||||||
"has_domain_requests_portfolio_permission": request.user.has_domain_requests_portfolio_permission(),
|
"has_domain_requests_portfolio_permission": request.user.has_domain_requests_portfolio_permission(),
|
||||||
"portfolio": request.user.portfolio,
|
"portfolio": request.user.last_selected_portfolio,
|
||||||
"has_organization_feature_flag": True,
|
"has_organization_feature_flag": True,
|
||||||
}
|
}
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
|
|
|
@ -87,9 +87,10 @@ class PortfolioInvitation(TimeStampedModel):
|
||||||
raise RuntimeError("Cannot find the user to retrieve this portfolio invitation.")
|
raise RuntimeError("Cannot find the user to retrieve this portfolio invitation.")
|
||||||
|
|
||||||
# and create a role for that user on this portfolio
|
# and create a role for that user on this portfolio
|
||||||
user.portfolio = self.portfolio
|
user_portfolio = user.last_selected_portfolio
|
||||||
|
user_portfolio = self.portfolio
|
||||||
if self.portfolio_roles and len(self.portfolio_roles) > 0:
|
if self.portfolio_roles and len(self.portfolio_roles) > 0:
|
||||||
user.portfolio_roles = self.portfolio_roles
|
user_portfolio.portfolio_roles = self.portfolio_roles
|
||||||
if self.portfolio_additional_permissions and len(self.portfolio_additional_permissions) > 0:
|
if self.portfolio_additional_permissions and len(self.portfolio_additional_permissions) > 0:
|
||||||
user.portfolio_additional_permissions = self.portfolio_additional_permissions
|
user_portfolio.portfolio_additional_permissions = self.portfolio_additional_permissions
|
||||||
user.save()
|
user_portfolio.save()
|
||||||
|
|
|
@ -338,7 +338,7 @@ class User(AbstractUser):
|
||||||
for invitation in PortfolioInvitation.objects.filter(
|
for invitation in PortfolioInvitation.objects.filter(
|
||||||
email__iexact=self.email, status=PortfolioInvitation.PortfolioInvitationStatus.INVITED
|
email__iexact=self.email, status=PortfolioInvitation.PortfolioInvitationStatus.INVITED
|
||||||
):
|
):
|
||||||
if self.portfolio is None:
|
if self.last_selected_portfolio is None:
|
||||||
try:
|
try:
|
||||||
invitation.retrieve()
|
invitation.retrieve()
|
||||||
invitation.save()
|
invitation.save()
|
||||||
|
@ -410,6 +410,6 @@ class User(AbstractUser):
|
||||||
def get_user_domain_ids(self, request):
|
def get_user_domain_ids(self, request):
|
||||||
"""Returns either the domains ids associated with this user on UserDomainRole or Portfolio"""
|
"""Returns either the domains ids associated with this user on UserDomainRole or Portfolio"""
|
||||||
if self.is_org_user(request) 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)
|
return DomainInformation.objects.filter(portfolio=self.last_selected_portfolio).values_list("domain_id", flat=True)
|
||||||
else:
|
else:
|
||||||
return UserDomainRole.objects.filter(user=self).values_list("domain_id", flat=True)
|
return UserDomainRole.objects.filter(user=self).values_list("domain_id", flat=True)
|
||||||
|
|
|
@ -143,10 +143,10 @@ class CheckPortfolioMiddleware:
|
||||||
if current_path == self.home and request.user.is_authenticated and request.user.is_org_user(request):
|
if current_path == self.home and request.user.is_authenticated and request.user.is_org_user(request):
|
||||||
|
|
||||||
if request.user.has_base_portfolio_permission():
|
if request.user.has_base_portfolio_permission():
|
||||||
portfolio = request.user.portfolio
|
portfolio = request.user.last_selected_portfolio
|
||||||
|
|
||||||
# Add the portfolio to the request object
|
# Add the portfolio to the request object
|
||||||
request.portfolio = portfolio
|
request.last_selected_portfolio = portfolio
|
||||||
|
|
||||||
if request.user.has_domains_portfolio_permission():
|
if request.user.has_domains_portfolio_permission():
|
||||||
portfolio_redirect = reverse("domains")
|
portfolio_redirect = reverse("domains")
|
||||||
|
|
|
@ -177,7 +177,7 @@ class DomainView(DomainBaseView):
|
||||||
if self.request.user.has_domains_portfolio_permission():
|
if self.request.user.has_domains_portfolio_permission():
|
||||||
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.user.portfolio:
|
if domain.domain_info.portfolio == self.request.user.last_selected_portfolio:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
@ -236,7 +236,7 @@ class DomainOrgNameAddressView(DomainFormBaseView):
|
||||||
|
|
||||||
# Org users shouldn't have access to this page
|
# Org users shouldn't have access to this page
|
||||||
is_org_user = self.request.user.is_org_user(self.request)
|
is_org_user = self.request.user.is_org_user(self.request)
|
||||||
if self.request.user.portfolio and is_org_user:
|
if self.request.user.last_selected_portfolio and is_org_user:
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
return super().has_permission()
|
return super().has_permission()
|
||||||
|
@ -255,7 +255,7 @@ class DomainSubOrganizationView(DomainFormBaseView):
|
||||||
|
|
||||||
# non-org users shouldn't have access to this page
|
# non-org users shouldn't have access to this page
|
||||||
is_org_user = self.request.user.is_org_user(self.request)
|
is_org_user = self.request.user.is_org_user(self.request)
|
||||||
if self.request.user.portfolio and is_org_user:
|
if self.request.user.last_selected_portfolio and is_org_user:
|
||||||
return super().has_permission()
|
return super().has_permission()
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
|
@ -335,7 +335,7 @@ class DomainSeniorOfficialView(DomainFormBaseView):
|
||||||
|
|
||||||
# Org users shouldn't have access to this page
|
# Org users shouldn't have access to this page
|
||||||
is_org_user = self.request.user.is_org_user(self.request)
|
is_org_user = self.request.user.is_org_user(self.request)
|
||||||
if self.request.user.portfolio and is_org_user:
|
if self.request.user.last_selected_portfolio and is_org_user:
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
return super().has_permission()
|
return super().has_permission()
|
||||||
|
|
|
@ -56,7 +56,7 @@ class PortfolioOrganizationView(PortfolioBasePermissionView, FormMixin):
|
||||||
|
|
||||||
def get_object(self, queryset=None):
|
def get_object(self, queryset=None):
|
||||||
"""Get the portfolio object based on the request user."""
|
"""Get the portfolio object based on the request user."""
|
||||||
portfolio = self.request.user.portfolio
|
portfolio = self.request.user.last_selected_portfolio
|
||||||
if portfolio is None:
|
if portfolio is None:
|
||||||
raise Http404("No organization found for this user")
|
raise Http404("No organization found for this user")
|
||||||
return portfolio
|
return portfolio
|
||||||
|
@ -112,7 +112,7 @@ class PortfolioSeniorOfficialView(PortfolioBasePermissionView, FormMixin):
|
||||||
|
|
||||||
def get_object(self, queryset=None):
|
def get_object(self, queryset=None):
|
||||||
"""Get the portfolio object based on the request user."""
|
"""Get the portfolio object based on the request user."""
|
||||||
portfolio = self.request.user.portfolio
|
portfolio = self.request.user.last_selected_portfolio
|
||||||
if portfolio is None:
|
if portfolio is None:
|
||||||
raise Http404("No organization found for this user")
|
raise Http404("No organization found for this user")
|
||||||
return portfolio
|
return portfolio
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue