inscription
This commit is contained in:
parent
3a807c91d6
commit
49ac12a621
|
@ -4,5 +4,15 @@ from django.conf import settings
|
|||
from django import forms
|
||||
|
||||
class LoginForm(forms.Form):
|
||||
username = forms.CharField(label="Nom d'utilisateur", max_length=settings.USERNAME_LENGTH)
|
||||
password = forms.CharField(label="Mot de passe", widget=forms.PasswordInput)
|
||||
# no need for max_length, let's not make heavyer things that can be lighter
|
||||
username = forms.CharField(label="Nom d'utilisateur")
|
||||
password = forms.CharField(label="Mot de passe", widget=forms.PasswordInput)
|
||||
|
||||
class InscriptionForm(forms.Form):
|
||||
username = forms.CharField(label="Nom d'utilisateur", min_length=settings.USERNAME_MIN_LENGTH, max_length=settings.USERNAME_MAX_LENGTH)
|
||||
email = forms.EmailField(label="E-mail")
|
||||
# Should we silently truncate password or fix maximum length ? Here is a good answer :
|
||||
# https://security.stackexchange.com/questions/152430/what-maximum-password-length-to-choose-when-using-bcrypt
|
||||
password1 = forms.CharField(label="Mot de passe", min_length=settings.PASSWORD_MIN_LENGTH, max_length=settings.PASSWORD_MAX_LENGTH, widget=forms.PasswordInput)
|
||||
password2 = forms.CharField(label="Confirmer mot de passe", min_length=settings.PASSWORD_MIN_LENGTH, max_length=settings.PASSWORD_MAX_LENGTH, widget=forms.PasswordInput)
|
||||
cgu = forms.BooleanField(label="J'ai lu et j'accepte les conditions générales d'utilisations", initial=False)
|
|
@ -3,7 +3,5 @@ from django.conf.urls import url
|
|||
import account.views as v
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', v.account), # Index
|
||||
url(r'^login/$', v.login),
|
||||
url(r'^logout/$', v.logout),
|
||||
|
||||
]
|
||||
|
|
|
@ -1,16 +1,19 @@
|
|||
from django.shortcuts import render, redirect
|
||||
from django.contrib.auth import authenticate
|
||||
from django.contrib.auth.models import User
|
||||
from django.contrib.auth import login as a_login, logout as a_logout
|
||||
from account.forms import LoginForm
|
||||
from account.forms import *
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.core.validators import validate_email
|
||||
from django.conf import settings as s
|
||||
|
||||
from home.views import homepage
|
||||
|
||||
|
||||
def login(request):
|
||||
error = False
|
||||
|
||||
form = LoginForm()
|
||||
if request.method == "POST":
|
||||
form = LoginForm(request.POST)
|
||||
if form.is_valid():
|
||||
username = form.cleaned_data["username"]
|
||||
password = form.cleaned_data["password"]
|
||||
|
@ -20,14 +23,44 @@ def login(request):
|
|||
return redirect(reverse(homepage))
|
||||
else:
|
||||
error = True
|
||||
else:
|
||||
form = LoginForm()
|
||||
|
||||
return render(request, 'account/login.html',locals())
|
||||
return render(request, 'login.html', locals())
|
||||
|
||||
|
||||
def logout(request):
|
||||
a_logout(request)
|
||||
a_logout(request)
|
||||
return redirect(reverse(homepage))
|
||||
|
||||
|
||||
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())
|
||||
|
||||
def account(request):
|
||||
pass
|
||||
return render(request, 'account.html')
|
|
@ -145,4 +145,7 @@ STATICFILES_DIRS = (
|
|||
"/home/web/planete_casio/sfiles/",
|
||||
)
|
||||
|
||||
USERNAME_LENGTH = 30
|
||||
USERNAME_MIN_LENGTH = 3
|
||||
USERNAME_MAX_LENGTH = 30
|
||||
PASSWORD_MIN_LENGTH = 8
|
||||
PASSWORD_MAX_LENGTH = 72 # maximum number of characters for bcrypt
|
|
@ -16,10 +16,14 @@ Including another URLconf
|
|||
from django.conf import settings
|
||||
from django.conf.urls import url, include
|
||||
from django.contrib import admin
|
||||
import account.views as v
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^admin/', admin.site.urls),
|
||||
url(r'^', include('home.urls')),
|
||||
url(r'^forum/', include('forum.urls')),
|
||||
url(r'^account/', include('account.urls')),
|
||||
url(r'^login', v.login),
|
||||
url(r'^logout', v.logout),
|
||||
url(r'^signup', v.signup)
|
||||
]
|
||||
|
|
Loading…
Reference in New Issue