from django.contrib.auth.mixins import UserPassesTestMixin
from django.core.exceptions import PermissionDenied

class AccessLevelRequiredMixin(UserPassesTestMixin):
    allowed_access_levels = []

    def test_func(self):
        return self.request.user.access_level in self.allowed_access_levels

    def handle_no_permission(self):
        raise PermissionDenied