From 39c75180265ee2727aa459dc3dc8dccbf9d4ccf4 Mon Sep 17 00:00:00 2001 From: Zambom Date: Wed, 5 Oct 2016 22:05:55 -0300 Subject: [PATCH] Resolving password bug in user creation through admin app (again) --- users/admin.py | 4 ++-- users/forms.py | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/users/admin.py b/users/admin.py index 65300fd..ef1173f 100644 --- a/users/admin.py +++ b/users/admin.py @@ -1,10 +1,10 @@ from django.contrib import admin from .models import User -from .forms import UserForm +from .forms import AdminUserForm class UserAdmin(admin.ModelAdmin): list_display = ['username', 'name', 'email', 'is_staff', 'is_active'] search_fields = ['username', 'name', 'email'] - # form = UserForm + form = AdminUserForm admin.site.register(User, UserAdmin) \ No newline at end of file diff --git a/users/forms.py b/users/forms.py index 797c55d..d6f6ceb 100644 --- a/users/forms.py +++ b/users/forms.py @@ -26,6 +26,31 @@ class ProfileForm(forms.ModelForm): 'password':forms.PasswordInput } +class AdminUserForm(forms.ModelForm): + def save(self, commit=True): + super(AdminUserForm, self).save(commit=False) + + self.instance.set_password(self.cleaned_data['password']) + self.instance.save() + + if self.instance.is_staff: + assign_role(self.instance, 'system_admin') + elif self.instance.type_profile == 2: + assign_role(self.instance, 'student') + elif self.instance.type_profile == 1: + assign_role(self.instance, 'professor') + + self.instance.save() + + return self.instance + + class Meta: + model = User + fields = ['username', 'name', 'email', 'password', 'birth_date', 'city', 'state', 'gender', 'type_profile', 'cpf', 'phone', 'image', 'is_staff', 'is_active'] + widgets = { + 'password':forms.PasswordInput + } + class UserForm(RegisterUserForm): class Meta: -- libgit2 0.21.2