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.mixins import OrgModelForm
|
||||||
from orgs.utils import current_org
|
from orgs.utils import current_org
|
||||||
from .models import User, UserGroup
|
from .models import User, UserGroup
|
||||||
|
from .utils import check_password_rules
|
||||||
|
|
||||||
|
|
||||||
class UserCheckPasswordForm(forms.Form):
|
class UserCheckPasswordForm(forms.Form):
|
||||||
|
@ -90,6 +91,20 @@ class UserCreateUpdateFormMixin(OrgModelForm):
|
||||||
raise forms.ValidationError(_('Not a valid ssh public key'))
|
raise forms.ValidationError(_('Not a valid ssh public key'))
|
||||||
return 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):
|
def save(self, commit=True):
|
||||||
password = self.cleaned_data.get('password')
|
password = self.cleaned_data.get('password')
|
||||||
otp_level = self.cleaned_data.get('otp_level')
|
otp_level = self.cleaned_data.get('otp_level')
|
||||||
|
|
|
@ -133,19 +133,6 @@ class UserUpdateView(PermissionsMixin, SuccessMessageMixin, UpdateView):
|
||||||
kwargs.update(context)
|
kwargs.update(context)
|
||||||
return super().get_context_data(**kwargs)
|
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):
|
def get_form_kwargs(self):
|
||||||
kwargs = super(UserUpdateView, self).get_form_kwargs()
|
kwargs = super(UserUpdateView, self).get_form_kwargs()
|
||||||
data = {'request': self.request}
|
data = {'request': self.request}
|
||||||
|
|
Loading…
Reference in New Issue