mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-07-24 03:30:50 +02:00
Rebase logic
This commit is contained in:
parent
a0bfdbf2b1
commit
117c7e0c42
4 changed files with 12 additions and 18 deletions
|
@ -4,6 +4,7 @@ from django.contrib.auth.models import AbstractUser
|
|||
from django.db import models
|
||||
from django.db.models import Q
|
||||
|
||||
from registrar.models.domain_information import DomainInformation
|
||||
from registrar.models.user_domain_role import UserDomainRole
|
||||
|
||||
from .domain_invitation import DomainInvitation
|
||||
|
@ -428,8 +429,10 @@ class User(AbstractUser):
|
|||
def is_org_user(self, request):
|
||||
has_organization_feature_flag = flag_is_active(request, "organization_feature")
|
||||
return has_organization_feature_flag and self.has_base_portfolio_permission()
|
||||
|
||||
def user_domain_count(self):
|
||||
"""Returns the number of domains associated with this user through UserDomainRole"""
|
||||
available_domains = UserDomainRole.objects.filter(user=self, domain__isnull=False)
|
||||
return available_domains.count()
|
||||
|
||||
def get_user_domain_ids(self):
|
||||
"""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():
|
||||
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)
|
||||
|
|
|
@ -577,18 +577,9 @@ class DomainDataTypeUser(DomainDataType):
|
|||
if request is None or not hasattr(request, "user") or not request.user:
|
||||
# Return nothing
|
||||
return Q(id__in=[])
|
||||
|
||||
if (
|
||||
request.user.has_base_portfolio_permission() and
|
||||
request.user.has_view_all_domains_permission()
|
||||
):
|
||||
# Question: should we also include all domains in UserDomainRole as well?
|
||||
models = DomainInformation.objects.filter(portfolio=request.user.portfolio)
|
||||
else:
|
||||
models = UserDomainRole.objects.filter(user=request.user)
|
||||
|
||||
domain_ids = models.values_list("domain_id", flat=True)
|
||||
return Q(domain__id__in=domain_ids)
|
||||
# Get all domains the user is associated with
|
||||
return Q(domain__id__in=request.user.get_user_domain_ids())
|
||||
|
||||
|
||||
class DomainDataFull(DomainExport):
|
||||
|
|
|
@ -8,6 +8,6 @@ def index(request):
|
|||
if 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.user_domain_count()
|
||||
context["user_domain_count"] = request.user.get_user_domain_ids().count()
|
||||
|
||||
return render(request, "home.html", context)
|
||||
|
|
|
@ -29,7 +29,7 @@ class PortfolioDomainsView(PortfolioDomainsPermissionView, View):
|
|||
context["has_organization_feature_flag"] = flag_is_active(request, "organization_feature")
|
||||
portfolio = get_object_or_404(Portfolio, id=portfolio_id)
|
||||
context["portfolio"] = portfolio
|
||||
context["user_domain_count"] = self.request.user.user_domain_count()
|
||||
context["user_domain_count"] = self.request.user.get_user_domain_ids().count()
|
||||
|
||||
return render(request, "portfolio_domains.html", context)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue