from django.utils.decorators import method_decorator from django.contrib.auth import decorators def permission_required(permission): """ Returns a decorator that wraps a CBV with a permissions check . """ return method_decorator(decorators.permission_required(permission), name="dispatch") @permisson_required('some_permission') class MyCBView(django.views.generic.TemplateView): pass # dispatch method for this view is now wrapped by auth.decorators.permission_required