decorators.py 987 B

123456789101112131415161718192021222324252627282930313233
  1. from django.core.exceptions import PermissionDenied
  2. from django.utils.translation import gettext_lazy as _
  3. def deny_authenticated(f):
  4. def decorator(request, *args, **kwargs):
  5. if request.user.is_authenticated():
  6. raise PermissionDenied(
  7. _("This page is not available to signed in users."))
  8. else:
  9. return f(request, *args, **kwargs)
  10. return decorator
  11. def deny_guests(f):
  12. def decorator(request, *args, **kwargs):
  13. if request.user.is_anonymous():
  14. raise PermissionDenied(
  15. _("This page is not available to guests."))
  16. else:
  17. return f(request, *args, **kwargs)
  18. return decorator
  19. def deny_banned_ips(f):
  20. def decorator(request, *args, **kwargs):
  21. if request.user.is_anonymous():
  22. raise PermissionDenied(
  23. _("This page is not available to guests."))
  24. else:
  25. return f(request, *args, **kwargs)
  26. return decorator