Use flag for user

This commit is contained in:
zandercymatics 2024-06-24 13:56:11 -06:00
parent 8659ad7f75
commit d018a5b9d9
No known key found for this signature in database
GPG key ID: FF4636ABEC9682B7
2 changed files with 12 additions and 3 deletions

View file

@ -10,7 +10,7 @@ from django.utils import timezone
from waffle import flag_is_active from waffle import flag_is_active
from registrar.models.domain import Domain from registrar.models.domain import Domain
from registrar.models.federal_agency import FederalAgency from registrar.models.federal_agency import FederalAgency
from registrar.models.utility.generic_helper import CreateOrUpdateOrganizationTypeHelper from registrar.models.utility.generic_helper import CreateOrUpdateOrganizationTypeHelper, flag_is_active_for_user
from registrar.utility.errors import FSMDomainRequestError, FSMErrorCodes from registrar.utility.errors import FSMDomainRequestError, FSMErrorCodes
from registrar.utility.constants import BranchChoices from registrar.utility.constants import BranchChoices
@ -681,8 +681,9 @@ class DomainRequest(TimeStampedModel):
wrap_email: bool -> Wraps emails using `wrap_text_and_preserve_paragraphs` if any given wrap_email: bool -> Wraps emails using `wrap_text_and_preserve_paragraphs` if any given
paragraph exceeds our desired max length (for prettier display). paragraph exceeds our desired max length (for prettier display).
""" """
# This is a chicken or egg kind of problem. We don't have the request -- how do we know
recipient = self.creator if flag_is_active(None, "profile_feature") else self.submitter # to use either the creator or the submitter in this scenario?
recipient = self.creator if flag_is_active_for_user(self.creator, "profile_feature") else self.submitter
if recipient is None or recipient.email is None: if recipient is None or recipient.email is None:
logger.warning(f"Cannot send {new_status} email, no creator email address.") logger.warning(f"Cannot send {new_status} email, no creator email address.")
return None return None

View file

@ -3,6 +3,8 @@
import time import time
import logging import logging
from urllib.parse import urlparse, urlunparse, urlencode from urllib.parse import urlparse, urlunparse, urlencode
from registrar.models import User
from waffle import get_waffle_flag_model
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -321,3 +323,9 @@ def convert_queryset_to_dict(queryset, is_model=True, key="id"):
request_dict = {value[key]: value for value in queryset} request_dict = {value[key]: value for value in queryset}
return request_dict return request_dict
def flag_is_active_for_user(user: User, flag_name: str) -> bool | None:
"""Given a user, returns if said user has the given flag permission or not"""
flag = get_waffle_flag_model().get(flag_name)
return flag.is_active_for_user(user)