cleaning up domainpermission

This commit is contained in:
David Kennedy 2025-02-11 12:22:40 -05:00
parent 3f2ceb81e8
commit bd071a0fb3
No known key found for this signature in database
GPG key ID: 6528A5386E66B96B
2 changed files with 4 additions and 24 deletions

View file

@ -70,6 +70,10 @@ def _user_has_permission(user, request, rules, **kwargs):
# Ensure user is authenticated
if not user.is_authenticated:
return False
# Ensure user is not restricted
if user.is_restricted():
return False
conditions_met = []

View file

@ -205,39 +205,15 @@ class DomainPermission(PermissionsLoginMixin):
The user is in self.request.user and the domain needs to be looked
up from the domain's primary key in self.kwargs["domain_pk"]
"""
if not self.request.user.is_authenticated:
return False
if self.request.user.is_restricted():
return False
pk = self.kwargs["domain_pk"]
# If pk is none then something went very wrong...
if pk is None:
raise ValueError("Primary key is None")
# test if domain in editable state
if not self.in_editable_state(pk):
return False
if self.can_access_other_user_domains(pk):
return True
# user needs to have a role on the domain
if not UserDomainRole.objects.filter(user=self.request.user, domain__id=pk).exists():
return self.can_access_domain_via_portfolio(pk)
# if we need to check more about the nature of role, do it here.
return True
def can_access_domain_via_portfolio(self, pk):
"""Most views should not allow permission to portfolio users.
If particular views allow access to the domain pages, they will need to override
this function.
"""
return False
def in_editable_state(self, pk):
"""Is the domain in an editable state"""