X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/f17e66aa4210a226669dd96e26295d6f58b94703..43116c58e5c56f94ef358a5a17fb13a252e02531:/apps/django_cas/decorators.py?ds=inline diff --git a/apps/django_cas/decorators.py b/apps/django_cas/decorators.py deleted file mode 100644 index 0bf989b9..00000000 --- a/apps/django_cas/decorators.py +++ /dev/null @@ -1,46 +0,0 @@ -"""Replacement authentication decorators that work around redirection loops""" - -try: - from functools import wraps -except ImportError: - from django.utils.functional import wraps - -from django.contrib.auth import REDIRECT_FIELD_NAME -from django.contrib.auth.decorators import login_required -from django.http import HttpResponseForbidden, HttpResponseRedirect -from django.utils.http import urlquote - -__all__ = ['login_required', 'permission_required', 'user_passes_test'] - - -def user_passes_test(test_func, login_url=None, - redirect_field_name=REDIRECT_FIELD_NAME): - """Replacement for django.contrib.auth.decorators.user_passes_test that - returns 403 Forbidden if the user is already logged in. - """ - - if not login_url: - from django.conf import settings - login_url = settings.LOGIN_URL - - def decorator(view_func): - @wraps(view_func) - def wrapper(request, *args, **kwargs): - if test_func(request.user): - return view_func(request, *args, **kwargs) - elif request.user.is_authenticated(): - return HttpResponseForbidden('

Permission denied

') - else: - path = '%s?%s=%s' % (login_url, redirect_field_name, - urlquote(request.get_full_path())) - return HttpResponseRedirect(path) - return wrapper - return decorator - - -def permission_required(perm, login_url=None): - """Replacement for django.contrib.auth.decorators.permission_required that - returns 403 Forbidden if the user is already logged in. - """ - - return user_passes_test(lambda u: u.has_perm(perm), login_url=login_url)