21 lines
542 B
Python
21 lines
542 B
Python
from .models import PremiumEntitlement
|
|
|
|
|
|
def has_lifetime_premium(user):
|
|
"""Return whether a user may access Lifetime Premium content."""
|
|
if not getattr(user, "is_authenticated", False):
|
|
return False
|
|
if user.is_staff or user.is_superuser:
|
|
return True
|
|
return PremiumEntitlement.objects.filter(
|
|
user=user,
|
|
revoked_at__isnull=True,
|
|
).exists()
|
|
|
|
|
|
def can_access_exam(user, exam_set):
|
|
return (
|
|
exam_set.access_level == exam_set.ACCESS_FREE
|
|
or has_lifetime_premium(user)
|
|
)
|