Guest User

Untitled

a guest
Jul 23rd, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.96 KB | None | 0 0
  1. import string
  2. from django.http import HttpResponseRedirect
  3. from django.contrib import messages
  4. from django.contrib.auth import REDIRECT_FIELD_NAME
  5. try: from functools import wraps
  6. except ImportError: from django.utils.functional import wraps # Python 2.4 fallback.
  7. from django.utils.decorators import available_attrs
  8.  
  9. def user_in_group(group_name, login_url=None, redirect_field_name=REDIRECT_FIELD_NAME):
  10. def decorator(view_func):
  11. @wraps(view_func, assigned=available_attrs(view_func))
  12. def _wrapped_view(request, *args, **kwargs):
  13. u = request.user
  14. if u.is_staff or (u.is_authenticated() and \
  15. (group_name in [string.lower(g.name) for g in u.groups.all()])):
  16. return view_func(request, *args, **kwargs)
  17. messages.add_message(request, messages.ERROR, "You are not a member of the %s group." % group_name)
  18. return HttpResponseRedirect("/")
  19. return _wrapped_view
  20. return decorator
Add Comment
Please, Sign In to add comment