From 059a8de44a0a692eaec372ad4a70814a7258505a Mon Sep 17 00:00:00 2001 From: BaiJiangJie <32935519+BaiJiangJie@users.noreply.github.com> Date: Tue, 28 May 2019 12:11:55 +0800 Subject: [PATCH] =?UTF-8?q?[Bufix]=20=E4=BF=AE=E5=A4=8D=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=97=B6password=5Fstrategy=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E4=B8=8D=E8=83=BD=E4=B8=BA=E7=A9=BA=E7=9A=84bug=20(#2?= =?UTF-8?q?741)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/users/forms.py | 31 +++++++++++++++++++------------ apps/users/views/user.py | 4 ++-- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/apps/users/forms.py b/apps/users/forms.py index cbca9c4fd..43ef0b594 100644 --- a/apps/users/forms.py +++ b/apps/users/forms.py @@ -21,13 +21,7 @@ class UserCheckOtpCodeForm(forms.Form): otp_code = forms.CharField(label=_('MFA code'), max_length=6) -class UserCreateUpdateForm(OrgModelForm): - EMAIL_SET_PASSWORD = _('Reset link will be generated and sent to the user') - CUSTOM_PASSWORD = _('Set password') - PASSWORD_STRATEGY_CHOICES = ( - (0, EMAIL_SET_PASSWORD), - (1, CUSTOM_PASSWORD) - ) +class UserCreateUpdateFormMixin(OrgModelForm): role_choices = ((i, n) for i, n in User.ROLE_CHOICES if i != User.ROLE_APP) password = forms.CharField( label=_('Password'), widget=forms.PasswordInput, @@ -42,10 +36,6 @@ class UserCreateUpdateForm(OrgModelForm): widget=forms.Textarea(attrs={'placeholder': _('ssh-rsa AAAA...')}), help_text=_('Paste user id_rsa.pub here.') ) - password_strategy = forms.ChoiceField( - choices=PASSWORD_STRATEGY_CHOICES, required=True, initial=0, - widget=forms.RadioSelect(), label=_('Password strategy') - ) class Meta: model = User @@ -65,7 +55,7 @@ class UserCreateUpdateForm(OrgModelForm): def __init__(self, *args, **kwargs): self.request = kwargs.pop("request", None) - super(UserCreateUpdateForm, self).__init__(*args, **kwargs) + super(UserCreateUpdateFormMixin, self).__init__(*args, **kwargs) roles = [] # Super admin user @@ -115,6 +105,23 @@ class UserCreateUpdateForm(OrgModelForm): return user +class UserCreateForm(UserCreateUpdateFormMixin): + EMAIL_SET_PASSWORD = _('Reset link will be generated and sent to the user') + CUSTOM_PASSWORD = _('Set password') + PASSWORD_STRATEGY_CHOICES = ( + (0, EMAIL_SET_PASSWORD), + (1, CUSTOM_PASSWORD) + ) + password_strategy = forms.ChoiceField( + choices=PASSWORD_STRATEGY_CHOICES, required=True, initial=0, + widget=forms.RadioSelect(), label=_('Password strategy') + ) + + +class UserUpdateForm(UserCreateUpdateFormMixin): + pass + + class UserProfileForm(forms.ModelForm): username = forms.CharField(disabled=True) name = forms.CharField(disabled=True) diff --git a/apps/users/views/user.py b/apps/users/views/user.py index 69ed441ba..963be613f 100644 --- a/apps/users/views/user.py +++ b/apps/users/views/user.py @@ -75,7 +75,7 @@ class UserListView(AdminUserRequiredMixin, TemplateView): class UserCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateView): model = User - form_class = forms.UserCreateUpdateForm + form_class = forms.UserCreateForm template_name = 'users/user_create.html' success_url = reverse_lazy('users:user-list') success_message = create_success_msg @@ -108,7 +108,7 @@ class UserCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateView): class UserUpdateView(AdminUserRequiredMixin, SuccessMessageMixin, UpdateView): model = User - form_class = forms.UserCreateUpdateForm + form_class = forms.UserUpdateForm template_name = 'users/user_update.html' context_object_name = 'user_object' success_url = reverse_lazy('users:user-list')