Fix merge conflict (pt 1)

This commit is contained in:
zandercymatics 2024-08-21 15:03:28 -06:00
parent bbcf406df6
commit 4dadb715e8
No known key found for this signature in database
GPG key ID: FF4636ABEC9682B7
2 changed files with 23 additions and 22 deletions

View file

@ -12,7 +12,7 @@ from registrar.models import (
)
from registrar.models.user_portfolio_permission import UserPortfolioPermission
from registrar.models.utility.portfolio_helper import UserPortfolioPermissionChoices, UserPortfolioRoleChoices
from .common import create_test_user
from .common import create_test_user, get_wsgi_request_object
from waffle.testutils import override_flag
from django.contrib.sessions.middleware import SessionMiddleware
@ -502,14 +502,12 @@ class TestPortfolio(WebTest):
# A default organization member should not be able to see any domains
self.app.set_user(self.user.username)
self.user.portfolio = self.portfolio
self.user.portfolio_roles = [UserPortfolioRoleChoices.ORGANIZATION_MEMBER]
self.user.save()
self.user.refresh_from_db()
self.assertFalse(self.user.has_domains_portfolio_permission())
permission, _ = UserPortfolioPermission.objects.get_or_create(
user=self.user, portfolio=self.portfolio, roles=[UserPortfolioRoleChoices.ORGANIZATION_MEMBER]
)
response = self.app.get(reverse("no-portfolio-domains"))
self.assertFalse(self.user.has_domains_portfolio_permission(response.request.get("portfolio")))
self.assertEqual(response.status_code, 200)
self.assertContains(response, "You arent managing any domains.")
@ -518,25 +516,24 @@ class TestPortfolio(WebTest):
self.assertEqual(response.status_code, 403)
# Ensure that this user can see domains with the right permissions
self.user.portfolio_additional_permissions = [UserPortfolioPermissionChoices.VIEW_ALL_DOMAINS]
self.user.save()
self.user.refresh_from_db()
self.assertTrue(self.user.has_domains_portfolio_permission())
permission.additional_permissions = [UserPortfolioPermissionChoices.VIEW_ALL_DOMAINS]
permission.save()
permission.refresh_from_db()
# Test the domains page - this user should have access
response = self.app.get(reverse("domains"))
self.assertTrue(self.user.has_domains_portfolio_permission(response.request.get("portfolio")))
self.assertEqual(response.status_code, 200)
self.assertContains(response, "Domain name")
# Test the managed domains permission
self.user.portfolio_additional_permissions = [UserPortfolioPermissionChoices.VIEW_MANAGED_DOMAINS]
self.user.save()
self.user.refresh_from_db()
self.assertTrue(self.user.has_domains_portfolio_permission())
permission.portfolio_additional_permissions = [UserPortfolioPermissionChoices.VIEW_MANAGED_DOMAINS]
permission.save()
permission.refresh_from_db()
# Test the domains page - this user should have access
response = self.app.get(reverse("domains"))
self.assertTrue(self.user.has_domains_portfolio_permission(response.request.get("portfolio")))
self.assertEqual(response.status_code, 200)
self.assertContains(response, "Domain name")
permission.delete()

View file

@ -5,6 +5,7 @@ from django.urls import reverse
from django.contrib import messages
from registrar.forms.portfolio import PortfolioOrgAddressForm, PortfolioSeniorOfficialForm
from registrar.models import Portfolio, User
from registrar.models.user_portfolio_permission import UserPortfolioPermission
from registrar.models.utility.portfolio_helper import UserPortfolioRoleChoices
from registrar.views.utility.permission_views import (
PortfolioDomainRequestsPermissionView,
@ -55,14 +56,17 @@ class PortfolioNoDomainsView(NoPortfolioDomainsPermissionView, View):
"""Add additional context data to the template."""
# We can override the base class. This view only needs this item.
context = {}
portfolio = self.request.user.portfolio if self.request and self.request.user else None
portfolio = self.request.session.get("portfolio")
if portfolio:
context["portfolio_administrators"] = User.objects.filter(
admin_ids = UserPortfolioPermission.objects.filter(
portfolio=portfolio,
portfolio_roles__overlap=[
roles__overlap=[
UserPortfolioRoleChoices.ORGANIZATION_ADMIN,
],
)
]
).values_list("user__id", flat=True)
admin_users = User.objects.filter(id__in=admin_ids)
context["portfolio_administrators"] = admin_users
return context