from django.http import HttpResponseRedirect
from functools import wraps
def permission(permission_tester):
@wraps(permission_tester)
def view_decorator(view_function):
@wraps(view_decorator)
def decorated_view(request, *args, **kwargs):
if permission_tester(request, *args, **kwargs):
view_result = view_function(request, *args, **kwargs)
else:
try:
request.user.message_set.create(message="Sorry, you don't have the necessary permissions to view that page.")
except: pass
view_result = HttpResponseRedirect("/")
return view_result
return decorated_view
return view_decorator
Comments
Cool snippet. Thanks!
#