Skip to content
This repository was archived by the owner on Aug 29, 2023. It is now read-only.

Commit 270a25b

Browse files
committed
fix: set password on save
1 parent 7d415ef commit 270a25b

2 files changed

Lines changed: 14 additions & 5 deletions

File tree

profiles/forms.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,9 @@ def clean(self):
6868
if password != password_confirm:
6969
self.add_error('password', 'Passwords do not match')
7070

71-
return cleaned_data
71+
return cleaned_data
72+
73+
74+
class UserCreateForm(UserForm):
75+
password = forms.CharField(widget=forms.PasswordInput())
76+
password_confirm = forms.CharField(widget=forms.PasswordInput())

profiles/views.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from django.http import HttpResponseRedirect
88
from django.views.generic import CreateView, ListView, UpdateView
99

10-
from profiles.forms import UserForm
10+
from profiles.forms import UserCreateForm, UserForm
1111
from profiles.models import Profile
1212

1313
PROTECTED_VIEW_PERMISSION = 'auth.change_user'
@@ -89,7 +89,7 @@ def get_context_data(self, **kwargs):
8989

9090

9191
class UserCreateView(LoginRequiredMixin, PermissionRequiredMixin, CreateView):
92-
form_class = UserForm
92+
form_class = UserCreateForm
9393
model = User
9494
page_title = 'Create User'
9595
permission_required = PROTECTED_VIEW_PERMISSION
@@ -98,8 +98,9 @@ class UserCreateView(LoginRequiredMixin, PermissionRequiredMixin, CreateView):
9898
def form_valid(self, form):
9999
user = form.save()
100100
cleaned_data = form.cleaned_data
101+
user.set_password(cleaned_data.get('password'))
101102

102-
if user.is_superuser:
103+
if not user.is_superuser:
103104
update_permissions(user, cleaned_data)
104105

105106
return HttpResponseRedirect(reverse('users:users_list'))
@@ -121,7 +122,10 @@ def form_valid(self, form):
121122
user = form.save()
122123
cleaned_data = form.cleaned_data
123124

124-
if user.is_superuser:
125+
if cleaned_data.get('password'):
126+
user.set_password(cleaned_data.get('password'))
127+
128+
if not user.is_superuser:
125129
update_permissions(user, cleaned_data)
126130

127131
return HttpResponseRedirect(reverse('users:users_list'))

0 commit comments

Comments
 (0)