implemented login system

This commit is contained in:
okalintu
2016-08-25 20:14:03 +03:00
parent a715d2db95
commit 5c11fdfdbd
4 changed files with 61 additions and 3 deletions
+2
View File
@@ -1,4 +1,5 @@
from django.shortcuts import render, get_object_or_404
from django.contrib.auth.decorators import permission_required
from django.views.decorators.csrf import ensure_csrf_cookie
from django.http import HttpResponse, HttpResponseBadRequest
from django.core.exceptions import ValidationError
@@ -6,6 +7,7 @@ from members.models import Member, MemberRequest
import json
@ensure_csrf_cookie
@permission_required('members.change_member', login_url='/login')
def index(request, *args, **kwargs):
return render(request, 'members_index.html',{})
+11 -1
View File
@@ -16,6 +16,11 @@ Including another URLconf
"""
from django.conf.urls import url
from django.contrib import admin
# main
from webapp.views import main_index
# login
from webapp.views import login_view
from webapp.views import logout_view
# members
from members.views import index as mindex
from members.views import members as mems
@@ -24,12 +29,17 @@ from members.views import handle_mem_request
from members.views import csv_import as mem_csv_import
from members.views import new_member_request
from members.views import member_requests
#infoscreen
from infoscreen.views import index as infoindex
urlpatterns = [
# main
url(r'^$', main_index),
# admin
url(r'^admin/', admin.site.urls),
# login stuff
url(r'^login$', login_view),
url(r'^logout$', logout_view),
# members
url(r'^members/$', mindex),
url(r'^members/api/members$', mems),
+19
View File
@@ -0,0 +1,19 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>SIK - Login</title>
</head>
<body>
<div>{{ error }}</div>
<form method="POST" action="">
<div> Käyttäjätunnus
<input type="text" name="username" placeholder="Keijo Kiltalainen"></input>
</div>
<div> Salasana
<input type="password" name="passwd" placeholder="abc123"></input>
</div>
<input type="submit" value="Kirjaudu">
</form>
</body>
</html>
+29 -2
View File
@@ -1,3 +1,30 @@
from django.shortcuts import render
from django.shortcuts import render, redirect
from django.contrib.auth import login, logout, authenticate
from django.views.decorators.http import require_http_methods
@require_http_methods(["GET"])
def main_index(request, *args, **kwargs):
return redirect("http://sahkoinsinoorikilta.fi/")
@require_http_methods(["GET", "POST"])
def login_view(request, *args, **kwargs):
if request.method == "POST":
uname = request.POST.get("username", None)
pw = request.POST.get("passwd", None)
user = authenticate(username=uname, password=pw)
if user is not None:
login(request, user)
original_site = request.GET.get("next",None) or "/"
return redirect(original_site)
return render(request, "login.html", {"error":"kirjautuminen kosahti. koita uudelleen"})
# user got here by a get request
user = request.user
if user.is_authenticated():
return redirect("/") # user shoud not be here authenticated with get but get rid if is
return render(request, "login.html", {})
@require_http_methods(["POST"])
def logout_view(request, *args, **kwargs):
logout(request)
return redirect("/")
# Create your views here.