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')