This commit is contained in:
zandercymatics 2024-11-22 15:06:18 -07:00
parent 4976730a3c
commit 275ca470e8
No known key found for this signature in database
GPG key ID: FF4636ABEC9682B7
3 changed files with 9 additions and 8 deletions

View file

@ -5,7 +5,11 @@ from django.db import models
from django_fsm import FSMField, transition
from django.contrib.auth import get_user_model
from registrar.models import DomainInvitation, UserPortfolioPermission
from .utility.portfolio_helper import UserPortfolioPermissionChoices, UserPortfolioRoleChoices, validate_portfolio_invitation # type: ignore
from .utility.portfolio_helper import (
UserPortfolioPermissionChoices,
UserPortfolioRoleChoices,
validate_portfolio_invitation,
) # type: ignore
from .utility.time_stamped_model import TimeStampedModel
from django.contrib.postgres.fields import ArrayField
@ -87,9 +91,9 @@ class PortfolioInvitation(TimeStampedModel):
Raises:
RuntimeError if no matching user can be found.
"""
User = get_user_model()
# get a user with this email address
User = get_user_model()
try:
user = User.objects.get(email=self.email)
except User.DoesNotExist:

View file

@ -1,6 +1,4 @@
from django.db import models
from django.forms import ValidationError
from registrar.utility.waffle import flag_is_active_for_user
from registrar.models import UserDomainRole
from registrar.models.utility.portfolio_helper import (
UserPortfolioPermissionChoices,
@ -125,7 +123,6 @@ class UserPortfolioPermission(TimeStampedModel):
def get_forbidden_permissions(cls, roles, additional_permissions):
"""Some permissions are forbidden for certain roles, like member.
This checks for conflicts between the role and additional_permissions."""
portfolio_permissions = set(cls.get_portfolio_permissions(roles, additional_permissions))
# Get intersection of forbidden permissions across all roles.
# This is because if you have roles ["admin", "member"], then they can have the
@ -137,8 +134,8 @@ class UserPortfolioPermission(TimeStampedModel):
)
# Check if the users current permissions overlap with any forbidden permissions
bad_perms = portfolio_permissions & common_forbidden_perms
return bad_perms
portfolio_permissions = set(cls.get_portfolio_permissions(roles, additional_permissions))
return portfolio_permissions & common_forbidden_perms
def clean(self):
"""Extends clean method to perform additional validation, which can raise errors in django admin."""

View file

@ -483,7 +483,7 @@ class TestPortfolio(WebTest):
"""When multiple_portfolios flag is true and user does not have a portfolio,
the portfolio should be set to None in session."""
self.client.force_login(self.user)
with override_flag(, active=True):
with override_flag("multiple_portfolios", active=True):
response = self.client.get(reverse("home"))
# Ensure that middleware processes the session
session_middleware = SessionMiddleware(lambda request: None)