Add LoginForm
This commit is contained in:
parent
b60ffe6b58
commit
a6a6f8213b
2 changed files with 45 additions and 16 deletions
40
dal/forms.py
Normal file
40
dal/forms.py
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
from django import forms
|
||||||
|
from django.contrib.auth import authenticate
|
||||||
|
from django.shortcuts import render
|
||||||
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
|
class LoginForm(forms.Form):
|
||||||
|
email = forms.CharField(widget=forms.TextInput())
|
||||||
|
password = forms.CharField(widget=forms.PasswordInput())
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
fields = ['email', 'password']
|
||||||
|
|
||||||
|
def clean(self):
|
||||||
|
email = self.cleaned_data.get('email')
|
||||||
|
password = self.cleaned_data.get('password')
|
||||||
|
if self.errors:
|
||||||
|
return self.cleaned_data
|
||||||
|
is_auth = authenticate(username=email, password=password)
|
||||||
|
if not is_auth:
|
||||||
|
raise forms.ValidationError(
|
||||||
|
_("Your username and/or password were incorrect."))
|
||||||
|
elif is_auth.validated == 0:
|
||||||
|
raise forms.ValidationError(
|
||||||
|
_("Your account is not activated yet."))
|
||||||
|
return self.cleaned_data
|
||||||
|
|
||||||
|
def clean_email(self):
|
||||||
|
email = self.cleaned_data.get('email')
|
||||||
|
return email
|
||||||
|
# try:
|
||||||
|
# CustomUser.objects.get(email=email)
|
||||||
|
# return email
|
||||||
|
# except CustomUser.DoesNotExist:
|
||||||
|
# raise forms.ValidationError(_("User does not exist"))
|
||||||
|
|
||||||
|
def form_valid(self, form):
|
||||||
|
form.save()
|
||||||
|
return render(self.request, 'useroptions.html', {'user': self.get_context_data()})
|
||||||
|
|
21
dal/views.py
21
dal/views.py
|
@ -1,6 +1,6 @@
|
||||||
# Imports from django
|
# Imports from django
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from django.views.generic import View
|
from django.views.generic import View, FormView
|
||||||
from django.contrib.auth import authenticate, login, logout
|
from django.contrib.auth import authenticate, login, logout
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.http import HttpResponse, HttpResponseRedirect
|
from django.http import HttpResponse, HttpResponseRedirect
|
||||||
|
@ -9,6 +9,7 @@ from django.urls import reverse_lazy
|
||||||
from django.contrib.auth.tokens import PasswordResetTokenGenerator
|
from django.contrib.auth.tokens import PasswordResetTokenGenerator
|
||||||
from django.core.mail import EmailMessage
|
from django.core.mail import EmailMessage
|
||||||
from .models import ResetToken
|
from .models import ResetToken
|
||||||
|
from .forms import LoginForm
|
||||||
|
|
||||||
# Imports for the extra stuff not in django
|
# Imports for the extra stuff not in django
|
||||||
|
|
||||||
|
@ -96,21 +97,9 @@ class LDAP(object):
|
||||||
|
|
||||||
return sorted(uidlist)[-1] + 1
|
return sorted(uidlist)[-1] + 1
|
||||||
|
|
||||||
class Index(View):
|
class Index(FormView):
|
||||||
def get(self, request):
|
template_name = "landing.html"
|
||||||
if request.user.is_authenticated:
|
form_class = LoginForm
|
||||||
return render(request, 'useroptions.html', { 'user': request.user } )
|
|
||||||
return render(request, 'landing.html')
|
|
||||||
|
|
||||||
def post(self, request):
|
|
||||||
username = request.POST.get('username')
|
|
||||||
password = request.POST.get('password')
|
|
||||||
pwd = r'%s' % password
|
|
||||||
user = authenticate(request, username=username, password=pwd)
|
|
||||||
if user is not None:
|
|
||||||
login(request, user)
|
|
||||||
return render(request, 'useroptions.html', { 'user': user } )
|
|
||||||
return render(request, 'loginfailed.html')
|
|
||||||
|
|
||||||
class Register(View):
|
class Register(View):
|
||||||
def get(self, request):
|
def get(self, request):
|
||||||
|
|
Loading…
Reference in a new issue