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