PCv5/account/views.py

66 lines
2.2 KiB
Python
Raw Normal View History

2016-10-02 17:07:47 +02:00
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate
2017-04-01 20:20:01 +02:00
from django.contrib.auth.models import User
2016-10-02 17:07:47 +02:00
from django.contrib.auth import login as a_login, logout as a_logout
2017-04-01 20:20:01 +02:00
from account.forms import *
2016-10-02 17:07:47 +02:00
from django.core.urlresolvers import reverse
2017-04-01 20:20:01 +02:00
from django.core.validators import validate_email
from django.conf import settings as s
2016-10-02 17:07:47 +02:00
from home.views import homepage
2017-04-01 20:20:01 +02:00
2016-10-02 17:07:47 +02:00
def login(request):
error = False
2017-04-01 20:20:01 +02:00
form = LoginForm()
2016-10-02 17:07:47 +02:00
if request.method == "POST":
if form.is_valid():
username = form.cleaned_data["username"]
password = form.cleaned_data["password"]
user = authenticate(username=username, password=password)
if user:
a_login(request, user)
return redirect(reverse(homepage))
else:
error = True
2017-04-01 20:20:01 +02:00
return render(request, 'login.html', locals())
2016-10-02 17:07:47 +02:00
def logout(request):
2017-04-01 20:20:01 +02:00
a_logout(request)
2016-10-02 17:07:47 +02:00
return redirect(reverse(homepage))
2017-04-01 20:20:01 +02:00
def signup(request):
error = False
form = InscriptionForm()
if request.method == "POST":
if form.is_valid():
password1 = form.cleaned_data["password1"]
password2 = form.cleaned_data["password2"]
username = form.cleaned_data["username"]
email = form.cleaned_data["email"]
cgu = form.cleaned_data["cgu"]
if(
username.length < s.USERNAME_MIN_LENGTH or username.length > s.USERNAME_MAX_LENGTH or
password.length < s.PASSWORD_MIN_LENGTH or password.length > s.PASSWORD_MAX_LENGTH or
password1 != password2 or cgu==False
):
error = True
return render(request, 'signup.html', locals())
try:
validate_email(email)
except forms.ValidationError:
error = True
return render(request, 'signup.html', locals())
create_user(username, email, password1)
authenticate(username, password1)
return render(request, 'home.html', locals())
return render(request, 'signupt.html', locals())
2016-10-02 17:07:47 +02:00
def account(request):
2017-04-01 20:20:01 +02:00
return render(request, 'account.html')