From 79e798ab5750a4d4cb21865f740eeebe15ec8fdb Mon Sep 17 00:00:00 2001 From: Jacek Lebioda <jacek.lebioda.001@student.uni.lu> Date: Wed, 11 Jan 2017 13:17:50 +0100 Subject: [PATCH] Logging in and out works --- smash/web/auth.py | 17 +++++++++++++++++ smash/web/templates/login.html | 8 +++++++- smash/web/views.py | 12 +++++++----- 3 files changed, 31 insertions(+), 6 deletions(-) create mode 100644 smash/web/auth.py diff --git a/smash/web/auth.py b/smash/web/auth.py new file mode 100644 index 00000000..f6b1e168 --- /dev/null +++ b/smash/web/auth.py @@ -0,0 +1,17 @@ +from django.contrib.auth import authenticate, login, logout + + +def do_login(request): + user = authenticate(username=request.POST.get('username', 'none'), + password=request.POST.get('password', 'none')) + if user is not None: + login(request, user) + return True, "ok" + return False, "login_failed" + + +def do_logout(request): + if request.user.is_authenticated: + logout(request) + return True, "logout" + return False, "logout_failed" \ No newline at end of file diff --git a/smash/web/templates/login.html b/smash/web/templates/login.html index ae1a57c2..b6f8aa22 100644 --- a/smash/web/templates/login.html +++ b/smash/web/templates/login.html @@ -55,6 +55,12 @@ <p>You have logged out of the Scheduling System</p> </div> + {% elif state == "logout_failed" %} + <div class="callout callout-danger"> + <h4>Error!</h4> + + <p>You cannot log out, if you are not logged in!</p> + </div> {% elif state == "login_failed" %} <div class="callout callout-danger"> <h4>Error!</h4> @@ -71,7 +77,7 @@ {% csrf_token %} <div class="form-group has-feedback"> - <input type="email" name="username" class="form-control" placeholder="E-mail"> + <input type="text" name="username" class="form-control" placeholder="E-mail"> <span class="glyphicon glyphicon-envelope form-control-feedback"></span> </div> <div class="form-group has-feedback"> diff --git a/smash/web/views.py b/smash/web/views.py index b4120c45..2705c072 100644 --- a/smash/web/views.py +++ b/smash/web/views.py @@ -4,9 +4,9 @@ from django.template import loader from django.views import generic from .models import * from .forms import * +from .auth import * # Own wrapper for django logging in/out from django.forms import modelformset_factory from django.shortcuts import render -# import auth # Create your views here. def index(request): @@ -23,8 +23,8 @@ def login(request): context['state'] = request.GET.get('error') if request.method == "POST" and request.POST: - state = auth.do_login(request) - if state == True: + state = do_login(request) + if state[0] == True: return redirect(assignments) else: return redirect('/login?error=' + state[1]) @@ -33,8 +33,10 @@ def login(request): def logout(request): - state = auth.do_logout(request) - return render(request, "login.html", {'state': state}) + state = do_logout(request) + print state + return redirect('/login?error=' + state[1]) + def assignments(request): -- GitLab