Added the digest_login_required decorator.
This commit is contained in:
parent
68cf985671
commit
405ae2307e
@ -23,6 +23,7 @@ from django.http import HttpResponseRedirect, HttpResponse
|
|||||||
|
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.utils import dateformat, timezone
|
from django.utils import dateformat, timezone
|
||||||
|
from django.utils.decorators import method_decorator
|
||||||
from django.views import generic
|
from django.views import generic
|
||||||
from django.views.decorators.http import require_GET
|
from django.views.decorators.http import require_GET
|
||||||
|
|
||||||
@ -30,10 +31,12 @@ from accounting.models import Record
|
|||||||
from accounting.utils import PeriodParser, Pagination, \
|
from accounting.utils import PeriodParser, Pagination, \
|
||||||
PageNoOutOfRangeError
|
PageNoOutOfRangeError
|
||||||
from mia import settings
|
from mia import settings
|
||||||
|
from mia_core.digest_auth import digest_login_required
|
||||||
from mia_core.utils import UrlBuilder
|
from mia_core.utils import UrlBuilder
|
||||||
|
|
||||||
|
|
||||||
@require_GET
|
@require_GET
|
||||||
|
@digest_login_required
|
||||||
def home(request):
|
def home(request):
|
||||||
"""The accounting home page.
|
"""The accounting home page.
|
||||||
|
|
||||||
@ -45,6 +48,7 @@ def home(request):
|
|||||||
|
|
||||||
|
|
||||||
@require_GET
|
@require_GET
|
||||||
|
@digest_login_required
|
||||||
def cash_home(request):
|
def cash_home(request):
|
||||||
"""The accounting cash report home page.
|
"""The accounting cash report home page.
|
||||||
|
|
||||||
@ -58,6 +62,7 @@ def cash_home(request):
|
|||||||
reverse("accounting:cash", args=(subject_code, period_spec)))
|
reverse("accounting:cash", args=(subject_code, period_spec)))
|
||||||
|
|
||||||
|
|
||||||
|
@method_decorator(digest_login_required, name='dispatch')
|
||||||
class BaseReportView(generic.ListView):
|
class BaseReportView(generic.ListView):
|
||||||
"""A base account report.
|
"""A base account report.
|
||||||
|
|
||||||
@ -115,7 +120,6 @@ class BaseReportView(generic.ListView):
|
|||||||
return r
|
return r
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class CashReportView(BaseReportView):
|
class CashReportView(BaseReportView):
|
||||||
"""The accounting cash report."""
|
"""The accounting cash report."""
|
||||||
http_method_names = ["get"]
|
http_method_names = ["get"]
|
||||||
|
@ -18,6 +18,10 @@
|
|||||||
"""The utilities for the HTTP digest authentication.
|
"""The utilities for the HTTP digest authentication.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
from functools import wraps
|
||||||
|
|
||||||
|
from django.http import HttpResponse
|
||||||
|
|
||||||
from mia_core.models import User
|
from mia_core.models import User
|
||||||
|
|
||||||
|
|
||||||
@ -52,3 +56,19 @@ class AccountBackend:
|
|||||||
print("mia_core.digest_auth.AccountBackend.get_user(): " + str(User.objects.filter(
|
print("mia_core.digest_auth.AccountBackend.get_user(): " + str(User.objects.filter(
|
||||||
login_id=username).first()))
|
login_id=username).first()))
|
||||||
return User.objects.filter(login_id=username).first()
|
return User.objects.filter(login_id=username).first()
|
||||||
|
|
||||||
|
|
||||||
|
def digest_login_required(function=None):
|
||||||
|
"""The decorator to check if the user has logged in, and send
|
||||||
|
HTTP 401 if the user has not logged in.
|
||||||
|
"""
|
||||||
|
def decorator(view_func):
|
||||||
|
@wraps(view_func)
|
||||||
|
def _wrapped_view(request, *args, **kwargs):
|
||||||
|
if request.user.is_anonymous:
|
||||||
|
return HttpResponse(status=401)
|
||||||
|
return view_func(request, *args, **kwargs)
|
||||||
|
return _wrapped_view
|
||||||
|
if function:
|
||||||
|
return decorator(function)
|
||||||
|
return decorator
|
||||||
|
Loading…
Reference in New Issue
Block a user