Add LoginForm

This commit is contained in:
PCoder 2019-02-19 23:16:05 +01:00
parent b60ffe6b58
commit a6a6f8213b
2 changed files with 45 additions and 16 deletions

40
dal/forms.py Normal file
View 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()})

View file

@ -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):