22 lines
577 B
Python
22 lines
577 B
Python
from functools import wraps
|
|
|
|
from django.http import HttpResponseForbidden
|
|
|
|
from license_info.tools import check_features
|
|
|
|
|
|
def license_feature_required(features):
|
|
"""Check that license has list of required features
|
|
@param features: List of strings with features names"""
|
|
|
|
def actual_decorator(view):
|
|
@wraps(view)
|
|
def wrapper(request, *args, **kwargs):
|
|
if not check_features(features):
|
|
return HttpResponseForbidden()
|
|
|
|
return view(request, *args, **kwargs)
|
|
|
|
return wrapper
|
|
|
|
return actual_decorator
|