Coverage for website/members/decorators.py: 100.00%
10 statements
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
1from django.core.exceptions import PermissionDenied
4def membership_required(view_function):
5 return ActiveMembershipRequired(view_function)
8class ActiveMembershipRequired:
9 """Decorator that checks if the user has an active membership."""
11 def __init__(self, view_function):
12 self.view_function = view_function
14 def __call__(self, request, *args, **kwargs):
15 if request.member and request.member.has_active_membership():
16 return self.view_function(request, *args, **kwargs)
18 raise PermissionDenied