mirror of https://github.com/jumpserver/jumpserver
[Bugfix] 修复创建用户的View,使用密码创建用户时没有校验密码规则 (#2877)
* [Bugfix] 修复创建用户的View,使用密码创建用户时没有校验密码规则 * [Bugfix]修复小问题 * [Update] 优化创建用户和更新用户密码的校验 * [Update] 优化用户表单校验password逻辑 * [Update] 小问题pull/2882/head
parent
17e1fe2acb
commit
3598bc79c3
|
@ -7,6 +7,7 @@ from common.utils import validate_ssh_public_key
|
|||
from orgs.mixins import OrgModelForm
|
||||
from orgs.utils import current_org
|
||||
from .models import User, UserGroup
|
||||
from .utils import check_password_rules
|
||||
|
||||
|
||||
class UserCheckPasswordForm(forms.Form):
|
||||
|
@ -90,6 +91,20 @@ class UserCreateUpdateFormMixin(OrgModelForm):
|
|||
raise forms.ValidationError(_('Not a valid ssh public key'))
|
||||
return public_key
|
||||
|
||||
def clean_password(self):
|
||||
password_strategy = self.data.get('password_strategy')
|
||||
# 创建-不设置密码
|
||||
if password_strategy == '0':
|
||||
return
|
||||
password = self.data.get('password')
|
||||
# 更新-密码为空
|
||||
if password_strategy is None and not password:
|
||||
return
|
||||
if not check_password_rules(password):
|
||||
msg = _('* Your password does not meet the requirements')
|
||||
raise forms.ValidationError(msg)
|
||||
return password
|
||||
|
||||
def save(self, commit=True):
|
||||
password = self.cleaned_data.get('password')
|
||||
otp_level = self.cleaned_data.get('otp_level')
|
||||
|
|
|
@ -133,19 +133,6 @@ class UserUpdateView(PermissionsMixin, SuccessMessageMixin, UpdateView):
|
|||
kwargs.update(context)
|
||||
return super().get_context_data(**kwargs)
|
||||
|
||||
def form_valid(self, form):
|
||||
password = form.cleaned_data.get('password')
|
||||
if not password:
|
||||
return super().form_valid(form)
|
||||
|
||||
is_ok = check_password_rules(password)
|
||||
if not is_ok:
|
||||
form.add_error(
|
||||
"password", _("* Your password does not meet the requirements")
|
||||
)
|
||||
return self.form_invalid(form)
|
||||
return super().form_valid(form)
|
||||
|
||||
def get_form_kwargs(self):
|
||||
kwargs = super(UserUpdateView, self).get_form_kwargs()
|
||||
data = {'request': self.request}
|
||||
|
|
Loading…
Reference in New Issue