Improve user views

This commit is contained in:
Skia
2015-11-26 16:32:56 +01:00
parent 385f91a9db
commit 48e3f88b87
10 changed files with 117 additions and 98 deletions

View File

@ -1,6 +1,7 @@
from django.contrib.auth.forms import UserCreationForm, AuthenticationForm, UserChangeForm
from django import forms
from django.contrib.auth import logout, login, authenticate
from django.forms import CheckboxSelectMultiple
import logging
from core.models import User, Page
@ -20,39 +21,15 @@ class RegisteringForm(UserCreationForm):
user.save()
return user
class LoginForm(AuthenticationForm):
def login(self):
u = authenticate(username=self.request.POST['username'],
password=self.request.POST['password'])
if u is not None:
if u.is_active:
login(self.request, u)
logging.debug("Logging in "+str(u))
else:
raise forms.ValidationError(
self.error_messages['invalid_login'],
code='inactive',
params={'username': self.username_field.verbose_name},
)
else:
logging.debug("Login failed")
raise forms.ValidationError(
self.error_messages['invalid_login'],
code='invalid_login',
params={'username': self.username_field.verbose_name},
)
class UserEditForm(UserChangeForm):
class UserGroupsForm(forms.ModelForm):
error_css_class = 'error'
required_css_class = 'required'
class Meta:
model = User
fields = ('first_name', 'last_name', 'nick_name', 'email', 'date_of_birth', 'groups', 'user_permissions',)
def __init__(self, *args, **kwargs):
super(UserEditForm, self).__init__(*args, **kwargs)
def clean_password(self):
"""We never handle password in this form"""
return
fields = ['groups', 'user_permissions',]
widgets = {
'groups': CheckboxSelectMultiple,
'user_permissions': CheckboxSelectMultiple,
}