summaryrefslogtreecommitdiff
path: root/forums/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'forums/forms.py')
-rw-r--r--forums/forms.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/forums/forms.py b/forums/forms.py
index 2e3a6d1..5a93b5f 100644
--- a/forums/forms.py
+++ b/forums/forms.py
@@ -1,6 +1,20 @@
from django import forms
+from django.contrib.auth import login, logout, authenticate
class UserLoginForm(forms.Form):
username = forms.CharField()
password = forms.CharField(widget=forms.PasswordInput())
+ def clean(self):
+ cleaned_data = self.cleaned_data
+ username = cleaned_data.get('username')
+ password = cleaned_data.get('password')
+ if username is None or password is None:
+ raise forms.ValidationError("Invalid username or password")
+ user = authenticate(username=username, password=password)
+ if not user:
+ raise forms.ValidationError("Invalid username or password")
+ if not user.is_active:
+ raise forms.ValidationError("User is blocked")
+ cleaned_data['user'] = user
+ return cleaned_data