From ec3f79c1012c642458af8f903e523f569bc5794e Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Mon, 13 Mar 2017 18:01:08 +0100 Subject: [PATCH] after login redirection is handled properly --- smash/web/templates/login.html | 3 +++ smash/web/views.py | 12 ++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/smash/web/templates/login.html b/smash/web/templates/login.html index 1cdc90f5..86b7238f 100644 --- a/smash/web/templates/login.html +++ b/smash/web/templates/login.html @@ -75,6 +75,9 @@ <form action="{% url 'web.views.login' %}" method="post"> {% csrf_token %} + {% if next %} + <input type="hidden" name="next" value="{{ next }}" /> + {% endif %} <div class="form-group has-feedback"> <input type="text" name="username" class="form-control" placeholder="Login"> diff --git a/smash/web/views.py b/smash/web/views.py index 61708d97..b27071d9 100644 --- a/smash/web/views.py +++ b/smash/web/views.py @@ -54,13 +54,18 @@ def login(request): if request.GET and request.GET.get('error'): context['state'] = request.GET.get('error') + if request.method == "GET" and request.GET: + context['next'] = request.GET.get('next') + if request.method == "POST" and request.POST: state, message = do_login(request) if state == True: - return redirect(appointments) + if request.POST.get('next'): + return redirect(request.POST.get('next')) + else: + return redirect(appointments) else: return redirect('/login?error=' + message) - return render(request, "login.html", context) class NotificationCount(object): @@ -84,6 +89,9 @@ def get_filter_locations(user): worker = workers[0] elif isinstance(user, Worker): worker = user + elif isinstance(user, AnonymousUser): + # anonymous user shouldn't see anything + return Location.objects.filter(id=-1) elif user!=None: raise TypeError("Unknown class type: "+user.__class__.__name__) -- GitLab