mirror of
https://github.com/postgres/pgweb.git
synced 2025-08-13 13:12:42 +00:00
Replace login_required decorator with a validating one
This one will validate that the url is under /accounts/, which is the only part we are going to be excluding from caching once we move the website to https-only.
This commit is contained in:
@ -2,7 +2,7 @@ from django.contrib.auth.models import User
|
|||||||
import django.contrib.auth.views as authviews
|
import django.contrib.auth.views as authviews
|
||||||
from django.http import HttpResponseRedirect, Http404, HttpResponse
|
from django.http import HttpResponseRedirect, Http404, HttpResponse
|
||||||
from django.shortcuts import render_to_response, get_object_or_404
|
from django.shortcuts import render_to_response, get_object_or_404
|
||||||
from django.contrib.auth.decorators import login_required
|
from pgweb.util.decorators import login_required
|
||||||
from django.utils.encoding import force_bytes
|
from django.utils.encoding import force_bytes
|
||||||
from django.utils.http import urlsafe_base64_encode
|
from django.utils.http import urlsafe_base64_encode
|
||||||
from django.contrib.auth.tokens import default_token_generator
|
from django.contrib.auth.tokens import default_token_generator
|
||||||
|
@ -2,7 +2,8 @@ from django.shortcuts import render_to_response
|
|||||||
from django.http import HttpResponse, Http404, HttpResponseRedirect
|
from django.http import HttpResponse, Http404, HttpResponseRedirect
|
||||||
from django.http import HttpResponseNotModified
|
from django.http import HttpResponseNotModified
|
||||||
from django.template import TemplateDoesNotExist, loader
|
from django.template import TemplateDoesNotExist, loader
|
||||||
from django.contrib.auth.decorators import login_required, user_passes_test
|
from django.contrib.auth.decorators import user_passes_test
|
||||||
|
from pgweb.util.decorators import login_required
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.views.decorators.csrf import csrf_exempt
|
from django.views.decorators.csrf import csrf_exempt
|
||||||
from django.db.models import Count
|
from django.db.models import Count
|
||||||
|
@ -2,7 +2,7 @@ from django.shortcuts import render_to_response, get_object_or_404
|
|||||||
from django.http import HttpResponseRedirect, HttpResponsePermanentRedirect
|
from django.http import HttpResponseRedirect, HttpResponsePermanentRedirect
|
||||||
from django.http import Http404
|
from django.http import Http404
|
||||||
from django.template.context import RequestContext
|
from django.template.context import RequestContext
|
||||||
from django.contrib.auth.decorators import login_required
|
from pgweb.util.decorators import login_required
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
from django.shortcuts import render_to_response, get_object_or_404
|
from django.shortcuts import render_to_response, get_object_or_404
|
||||||
from django.http import HttpResponse, Http404, HttpResponseRedirect
|
from django.http import HttpResponse, Http404, HttpResponseRedirect
|
||||||
from django.contrib.auth.decorators import login_required
|
from pgweb.util.decorators import login_required
|
||||||
from django.views.decorators.csrf import csrf_exempt
|
from django.views.decorators.csrf import csrf_exempt
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
from django.shortcuts import render_to_response, get_object_or_404
|
from django.shortcuts import render_to_response, get_object_or_404
|
||||||
from django.http import Http404
|
from django.http import Http404
|
||||||
from django.contrib.auth.decorators import login_required
|
from pgweb.util.decorators import login_required
|
||||||
|
|
||||||
from datetime import date
|
from datetime import date
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
from django.shortcuts import render_to_response
|
from django.shortcuts import render_to_response
|
||||||
from django.contrib.auth.decorators import login_required
|
from pgweb.util.decorators import login_required
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
from django.db import connection
|
from django.db import connection
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
from django.shortcuts import render_to_response, get_object_or_404
|
from django.shortcuts import render_to_response, get_object_or_404
|
||||||
from django.http import Http404
|
from django.http import Http404
|
||||||
from django.contrib.auth.decorators import login_required
|
from pgweb.util.decorators import login_required
|
||||||
|
|
||||||
from pgweb.util.contexts import NavContext
|
from pgweb.util.contexts import NavContext
|
||||||
from pgweb.util.helpers import simple_form
|
from pgweb.util.helpers import simple_form
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
from django.shortcuts import render_to_response
|
from django.shortcuts import render_to_response
|
||||||
from django.http import Http404
|
from django.http import Http404
|
||||||
from django.contrib.auth.decorators import login_required
|
from pgweb.util.decorators import login_required
|
||||||
|
|
||||||
from pgweb.util.contexts import NavContext
|
from pgweb.util.contexts import NavContext
|
||||||
from pgweb.util.helpers import simple_form
|
from pgweb.util.helpers import simple_form
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import datetime
|
import datetime
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
from django.contrib.auth.decorators import login_required as django_login_required
|
||||||
|
|
||||||
def nocache(fn):
|
def nocache(fn):
|
||||||
def _nocache(request, *_args, **_kwargs):
|
def _nocache(request, *_args, **_kwargs):
|
||||||
@ -18,3 +19,16 @@ def cache(days=0, hours=0, minutes=0, seconds=0):
|
|||||||
return resp
|
return resp
|
||||||
return __cache
|
return __cache
|
||||||
return _cache
|
return _cache
|
||||||
|
|
||||||
|
from django.utils.decorators import available_attrs
|
||||||
|
|
||||||
|
# A wrapped version of login_required that throws an exception if it's
|
||||||
|
# used on a path that's not under /account/.
|
||||||
|
def login_required(f):
|
||||||
|
@wraps(f)
|
||||||
|
def wrapper(*args, **kwargs):
|
||||||
|
request = args[0]
|
||||||
|
if not request.path.startswith('/account/'):
|
||||||
|
raise Exception("Login required in bad path, aborting with exception.")
|
||||||
|
return django_login_required(f)(*args, **kwargs)
|
||||||
|
return wrapper
|
||||||
|
Reference in New Issue
Block a user