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