diff --git a/smash/web/auth.py b/smash/web/auth.py new file mode 100644 index 0000000000000000000000000000000000000000..f6b1e168fefd2f78eb76d7f67b403f2d58963e1a --- /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 ae1a57c271808be800a2cf7612e52d6ba0d4dbcc..b6f8aa220bc29639c585fe91fd23ffbba950c781 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 b4120c453d480ba96f540f01b25f6145edce7f52..2705c07290495cc6fb46c0eff0bcab6e17a667f8 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):