mirror of https://github.com/jumpserver/jumpserver
[Update] 创建/更新用户的role选项;密码强度提示信息中英文; (#1623)
* [Update] 修改 超级管理员/组织管理员 在 创建/更新 用户时role的选项 问题 * [Update] 用户密码强度提示信息支持中英文pull/1644/head
parent
227cc4e965
commit
485a178c0a
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
@ -685,7 +685,7 @@ function popoverPasswordRules(password_check_rules, $el) {
|
|||
}
|
||||
|
||||
// 初始化弹窗popover
|
||||
function initPopover($container, $progress, $idPassword, $el, password_check_rules){
|
||||
function initPopover($container, $progress, $idPassword, $el, password_check_rules, i18n_fallback){
|
||||
options = {};
|
||||
// User Interface
|
||||
options.ui = {
|
||||
|
@ -697,6 +697,14 @@ function initPopover($container, $progress, $idPassword, $el, password_check_rul
|
|||
showProgressbar: true,
|
||||
showVerdictsInsideProgressBar: true
|
||||
};
|
||||
options.i18n = {
|
||||
fallback: i18n_fallback,
|
||||
t: function (key) {
|
||||
var result = '';
|
||||
result = options.i18n.fallback[key];
|
||||
return result === key ? '' : result;
|
||||
}
|
||||
};
|
||||
$idPassword.pwstrength(options);
|
||||
popoverPasswordRules(password_check_rules, $el);
|
||||
}
|
||||
|
|
|
@ -78,6 +78,30 @@ class UserCreateUpdateForm(OrgModelForm):
|
|||
)
|
||||
}
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.request = kwargs.pop("request", None)
|
||||
super(UserCreateUpdateForm, self).__init__(*args, **kwargs)
|
||||
|
||||
roles = []
|
||||
# Super admin user
|
||||
if self.request.user.is_superuser:
|
||||
roles.append((User.ROLE_ADMIN, dict(User.ROLE_CHOICES).get(User.ROLE_ADMIN)))
|
||||
roles.append((User.ROLE_USER, dict(User.ROLE_CHOICES).get(User.ROLE_USER)))
|
||||
|
||||
# Org admin user
|
||||
else:
|
||||
user = kwargs.get('instance')
|
||||
# Update
|
||||
if user:
|
||||
role = kwargs.get('instance').role
|
||||
roles.append((role, dict(User.ROLE_CHOICES).get(role)))
|
||||
# Create
|
||||
else:
|
||||
roles.append((User.ROLE_USER, dict(User.ROLE_CHOICES).get(User.ROLE_USER)))
|
||||
|
||||
field = self.fields['role']
|
||||
field.choices = set(roles)
|
||||
|
||||
def clean_public_key(self):
|
||||
public_key = self.cleaned_data['public_key']
|
||||
if not public_key:
|
||||
|
|
|
@ -100,10 +100,18 @@
|
|||
progress = $('#id_progress'),
|
||||
password_check_rules = {{ password_check_rules|safe }},
|
||||
minLength = {{ min_length }},
|
||||
top = 146, left = 170;
|
||||
top = 146, left = 170,
|
||||
i18n_fallback = {
|
||||
"veryWeak": "{% trans 'Very weak' %}",
|
||||
"weak": "{% trans 'Weak' %}",
|
||||
"normal": "{% trans 'Normal' %}",
|
||||
"medium": "{% trans 'Medium' %}",
|
||||
"strong": "{% trans 'Strong' %}",
|
||||
"veryStrong": "{% trans 'Very strong' %}"
|
||||
};
|
||||
|
||||
// 初始化popover
|
||||
initPopover(container, progress, idPassword, el, password_check_rules);
|
||||
initPopover(container, progress, idPassword, el, password_check_rules, i18n_fallback);
|
||||
|
||||
// 监听事件
|
||||
idPassword.on('focus', function () {
|
||||
|
|
|
@ -93,10 +93,18 @@
|
|||
password_check_rules = {{ password_check_rules|safe }},
|
||||
minLength = {{ min_length }},
|
||||
top = idPassword.offset().top - $('.navbar').outerHeight(true) - $('.page-heading').outerHeight(true) - 10 + 34,
|
||||
left = 377;
|
||||
left = 377,
|
||||
i18n_fallback = {
|
||||
"veryWeak": "{% trans 'Very weak' %}",
|
||||
"weak": "{% trans 'Weak' %}",
|
||||
"normal": "{% trans 'Normal' %}",
|
||||
"medium": "{% trans 'Medium' %}",
|
||||
"strong": "{% trans 'Strong' %}",
|
||||
"veryStrong": "{% trans 'Very strong' %}"
|
||||
};
|
||||
|
||||
// 初始化popover
|
||||
initPopover(container, progress, idPassword, el, password_check_rules);
|
||||
initPopover(container, progress, idPassword, el, password_check_rules, i18n_fallback);
|
||||
|
||||
// 监听事件
|
||||
idPassword.on('focus', function () {
|
||||
|
|
|
@ -29,10 +29,18 @@
|
|||
password_check_rules = {{ password_check_rules|safe }},
|
||||
minLength = {{ min_length }},
|
||||
top = idPassword.offset().top - $('.navbar').outerHeight(true) - $('.page-heading').outerHeight(true) - 10 + 34,
|
||||
left = 377;
|
||||
left = 377,
|
||||
i18n_fallback = {
|
||||
"veryWeak": "{% trans 'Very weak' %}",
|
||||
"weak": "{% trans 'Weak' %}",
|
||||
"normal": "{% trans 'Normal' %}",
|
||||
"medium": "{% trans 'Medium' %}",
|
||||
"strong": "{% trans 'Strong' %}",
|
||||
"veryStrong": "{% trans 'Very strong' %}"
|
||||
};
|
||||
|
||||
// 初始化popover
|
||||
initPopover(container, progress, idPassword, el, password_check_rules);
|
||||
initPopover(container, progress, idPassword, el, password_check_rules, i18n_fallback);
|
||||
|
||||
// 监听事件
|
||||
idPassword.on('focus', function () {
|
||||
|
|
|
@ -90,6 +90,12 @@ class UserCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateView):
|
|||
post_user_create.send(self.__class__, user=user)
|
||||
return super().form_valid(form)
|
||||
|
||||
def get_form_kwargs(self):
|
||||
kwargs = super(UserCreateView, self).get_form_kwargs()
|
||||
data = {'request': self.request}
|
||||
kwargs.update(data)
|
||||
return kwargs
|
||||
|
||||
|
||||
class UserUpdateView(AdminUserRequiredMixin, SuccessMessageMixin, UpdateView):
|
||||
model = User
|
||||
|
@ -123,6 +129,12 @@ class UserUpdateView(AdminUserRequiredMixin, SuccessMessageMixin, UpdateView):
|
|||
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}
|
||||
kwargs.update(data)
|
||||
return kwargs
|
||||
|
||||
|
||||
class UserBulkUpdateView(AdminUserRequiredMixin, TemplateView):
|
||||
model = User
|
||||
|
|
Loading…
Reference in New Issue