adding request to a few flag_is_active instances

This commit is contained in:
David Kennedy 2024-08-21 17:52:02 -04:00
parent fbb4ee927b
commit 833b698bf2
No known key found for this signature in database
GPG key ID: 6528A5386E66B96B
2 changed files with 11 additions and 2 deletions

View file

@ -3,6 +3,7 @@ import logging
from django.contrib.auth.models import AbstractUser
from django.db import models
from django.db.models import Q
from django.http import HttpRequest
from registrar.models import DomainInformation, UserDomainRole
from registrar.models.utility.portfolio_helper import UserPortfolioPermissionChoices, UserPortfolioRoleChoices
@ -358,8 +359,12 @@ class User(AbstractUser):
for invitation in PortfolioInvitation.objects.filter(
email__iexact=self.email, status=PortfolioInvitation.PortfolioInvitationStatus.INVITED
):
# need to create a bogus request and assign user to it, in order to pass request
# to flag_is_active
request = HttpRequest()
request.user = self
only_single_portfolio = (
not flag_is_active(None, "multiple_portfolios") and self.get_first_portfolio() is None
not flag_is_active(request, "multiple_portfolios") and self.get_first_portfolio() is None
)
if only_single_portfolio or flag_is_active(None, "multiple_portfolios"):
try:

View file

@ -1,5 +1,6 @@
from django.db import models
from django.forms import ValidationError
from django.http import HttpRequest
from waffle import flag_is_active
from registrar.models.utility.portfolio_helper import UserPortfolioPermissionChoices, UserPortfolioRoleChoices
from .utility.time_stamped_model import TimeStampedModel
@ -99,7 +100,10 @@ class UserPortfolioPermission(TimeStampedModel):
# Check if a user is set without accessing the related object.
has_user = bool(self.user_id)
if not flag_is_active(None, "multiple_portfolios") and self.pk is None and has_user:
# Have to create a bogus request to set the user and pass to flag_is_active
request = HttpRequest()
request.user = self.user
if not flag_is_active(request, "multiple_portfolios") and self.pk is None and has_user:
existing_permissions = UserPortfolioPermission.objects.filter(user=self.user)
if existing_permissions.exists():
raise ValidationError(