Source code for members.decorators
"""Decorators provided by the members package"""
from django.core.exceptions import PermissionDenied
[docs]def membership_required(view_function):
return ActiveMembershipRequired(view_function)
[docs]class ActiveMembershipRequired:
"""
Decorator that checks if the user has an active membership
"""
def __init__(self, view_function):
self.view_function = view_function
def __call__(self, request, *args, **kwargs):
if request.member and request.member.has_active_membership():
return self.view_function(request, *args, **kwargs)
raise PermissionDenied