mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-07-07 03:49:00 +00:00
perf: 优化用户创建邮件 (#7072)
* perf: 优化通知中的连接点击 * perf: 优化用户创建邮件 * perf: 优化时间日期 Co-authored-by: ibuler <ibuler@qq.com>
This commit is contained in:
parent
7c149fe91b
commit
f88e5de3c1
@ -25,7 +25,7 @@ def utc_now():
|
|||||||
|
|
||||||
|
|
||||||
def local_now():
|
def local_now():
|
||||||
return as_current_tz(utc_now())
|
return dj_timezone.localtime(dj_timezone.now())
|
||||||
|
|
||||||
|
|
||||||
def local_now_display(fmt='%Y-%m-%d %H:%M:%S'):
|
def local_now_display(fmt='%Y-%m-%d %H:%M:%S'):
|
||||||
|
@ -18,6 +18,7 @@ import copy
|
|||||||
from importlib import import_module
|
from importlib import import_module
|
||||||
from django.urls import reverse_lazy
|
from django.urls import reverse_lazy
|
||||||
from urllib.parse import urljoin, urlparse
|
from urllib.parse import urljoin, urlparse
|
||||||
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||||
PROJECT_DIR = os.path.dirname(BASE_DIR)
|
PROJECT_DIR = os.path.dirname(BASE_DIR)
|
||||||
@ -263,6 +264,11 @@ class Config(dict):
|
|||||||
'TENCENT_VERIFY_SIGN_NAME': '',
|
'TENCENT_VERIFY_SIGN_NAME': '',
|
||||||
'TENCENT_VERIFY_TEMPLATE_CODE': '',
|
'TENCENT_VERIFY_TEMPLATE_CODE': '',
|
||||||
|
|
||||||
|
# Email
|
||||||
|
'EMAIL_CUSTOM_USER_CREATED_SUBJECT': _('Create account successfully'),
|
||||||
|
'EMAIL_CUSTOM_USER_CREATED_HONORIFIC': _('Hello'),
|
||||||
|
'EMAIL_CUSTOM_USER_CREATED_BODY': _('Your account has been created successfully'),
|
||||||
|
|
||||||
'OTP_VALID_WINDOW': 2,
|
'OTP_VALID_WINDOW': 2,
|
||||||
'OTP_ISSUER_NAME': 'JumpServer',
|
'OTP_ISSUER_NAME': 'JumpServer',
|
||||||
'EMAIL_SUFFIX': 'example.com',
|
'EMAIL_SUFFIX': 'example.com',
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:55a2062981ea7eef4ca28142f325f52e15cb7679ad0a2600234a5bdb6d005c87
|
oid sha256:cc8a022ddc7438e50aa0cdb4ce24eec327638143731dbe0ed0ad783df06ecbaf
|
||||||
size 89996
|
size 89882
|
||||||
|
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: JumpServer 0.3.3\n"
|
"Project-Id-Version: JumpServer 0.3.3\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-10-25 14:56+0800\n"
|
"POT-Creation-Date: 2021-10-25 16:48+0800\n"
|
||||||
"PO-Revision-Date: 2021-05-20 10:54+0800\n"
|
"PO-Revision-Date: 2021-05-20 10:54+0800\n"
|
||||||
"Last-Translator: ibuler <ibuler@qq.com>\n"
|
"Last-Translator: ibuler <ibuler@qq.com>\n"
|
||||||
"Language-Team: JumpServer team<ibuler@qq.com>\n"
|
"Language-Team: JumpServer team<ibuler@qq.com>\n"
|
||||||
@ -123,7 +123,7 @@ msgstr "系统用户"
|
|||||||
#: acls/models/login_asset_acl.py:22
|
#: acls/models/login_asset_acl.py:22
|
||||||
#: applications/serializers/attrs/application_category/remote_app.py:37
|
#: applications/serializers/attrs/application_category/remote_app.py:37
|
||||||
#: assets/models/asset.py:357 assets/models/authbook.py:18
|
#: assets/models/asset.py:357 assets/models/authbook.py:18
|
||||||
#: assets/models/gathered_user.py:14 assets/serializers/system_user.py:231
|
#: assets/models/gathered_user.py:14 assets/serializers/system_user.py:230
|
||||||
#: audits/models.py:38 perms/models/asset_permission.py:99
|
#: audits/models.py:38 perms/models/asset_permission.py:99
|
||||||
#: templates/index.html:82 terminal/backends/command/models.py:19
|
#: templates/index.html:82 terminal/backends/command/models.py:19
|
||||||
#: terminal/backends/command/serializers.py:13 terminal/models/session.py:40
|
#: terminal/backends/command/serializers.py:13 terminal/models/session.py:40
|
||||||
@ -747,7 +747,7 @@ msgstr "全称"
|
|||||||
msgid "Parent key"
|
msgid "Parent key"
|
||||||
msgstr "ssh私钥"
|
msgstr "ssh私钥"
|
||||||
|
|
||||||
#: assets/models/node.py:559 assets/serializers/system_user.py:230
|
#: assets/models/node.py:559 assets/serializers/system_user.py:229
|
||||||
#: users/templates/users/user_asset_permission.html:41
|
#: users/templates/users/user_asset_permission.html:41
|
||||||
#: users/templates/users/user_asset_permission.html:73
|
#: users/templates/users/user_asset_permission.html:73
|
||||||
#: users/templates/users/user_asset_permission.html:158
|
#: users/templates/users/user_asset_permission.html:158
|
||||||
@ -848,7 +848,7 @@ msgstr "节点名称"
|
|||||||
msgid "Hardware info"
|
msgid "Hardware info"
|
||||||
msgstr "硬件信息"
|
msgstr "硬件信息"
|
||||||
|
|
||||||
#: assets/serializers/asset.py:104 assets/serializers/system_user.py:249
|
#: assets/serializers/asset.py:104 assets/serializers/system_user.py:248
|
||||||
#: orgs/mixins/serializers.py:26
|
#: orgs/mixins/serializers.py:26
|
||||||
msgid "Org name"
|
msgid "Org name"
|
||||||
msgstr "组织名称"
|
msgstr "组织名称"
|
||||||
@ -862,7 +862,7 @@ msgid "private key invalid"
|
|||||||
msgstr "密钥不合法"
|
msgstr "密钥不合法"
|
||||||
|
|
||||||
#: assets/serializers/domain.py:13 assets/serializers/label.py:12
|
#: assets/serializers/domain.py:13 assets/serializers/label.py:12
|
||||||
#: assets/serializers/system_user.py:54
|
#: assets/serializers/system_user.py:53
|
||||||
#: perms/serializers/asset/permission.py:72
|
#: perms/serializers/asset/permission.py:72
|
||||||
msgid "Assets amount"
|
msgid "Assets amount"
|
||||||
msgstr "资产数量"
|
msgstr "资产数量"
|
||||||
@ -892,52 +892,48 @@ msgstr "同级别节点名字不能重复"
|
|||||||
msgid "SSH key fingerprint"
|
msgid "SSH key fingerprint"
|
||||||
msgstr "密钥指纹"
|
msgstr "密钥指纹"
|
||||||
|
|
||||||
#: assets/serializers/system_user.py:29
|
#: assets/serializers/system_user.py:52
|
||||||
msgid "Apps amount"
|
|
||||||
msgstr "应用数量"
|
|
||||||
|
|
||||||
#: assets/serializers/system_user.py:53
|
|
||||||
#: perms/serializers/asset/permission.py:73
|
#: perms/serializers/asset/permission.py:73
|
||||||
msgid "Nodes amount"
|
msgid "Nodes amount"
|
||||||
msgstr "节点数量"
|
msgstr "节点数量"
|
||||||
|
|
||||||
#: assets/serializers/system_user.py:55 assets/serializers/system_user.py:232
|
#: assets/serializers/system_user.py:54 assets/serializers/system_user.py:231
|
||||||
msgid "Login mode display"
|
msgid "Login mode display"
|
||||||
msgstr "认证方式名称"
|
msgstr "认证方式名称"
|
||||||
|
|
||||||
#: assets/serializers/system_user.py:57
|
#: assets/serializers/system_user.py:56
|
||||||
msgid "Ad domain"
|
msgid "Ad domain"
|
||||||
msgstr "Ad 网域"
|
msgstr "Ad 网域"
|
||||||
|
|
||||||
#: assets/serializers/system_user.py:58
|
#: assets/serializers/system_user.py:57
|
||||||
msgid "Is asset protocol"
|
msgid "Is asset protocol"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: assets/serializers/system_user.py:98
|
#: assets/serializers/system_user.py:97
|
||||||
msgid "Username same with user with protocol {} only allow 1"
|
msgid "Username same with user with protocol {} only allow 1"
|
||||||
msgstr "用户名和用户相同的一种协议只允许存在一个"
|
msgstr "用户名和用户相同的一种协议只允许存在一个"
|
||||||
|
|
||||||
#: assets/serializers/system_user.py:108 common/validators.py:14
|
#: assets/serializers/system_user.py:107 common/validators.py:14
|
||||||
msgid "Special char not allowed"
|
msgid "Special char not allowed"
|
||||||
msgstr "不能包含特殊字符"
|
msgstr "不能包含特殊字符"
|
||||||
|
|
||||||
#: assets/serializers/system_user.py:117
|
#: assets/serializers/system_user.py:116
|
||||||
msgid "* Automatic login mode must fill in the username."
|
msgid "* Automatic login mode must fill in the username."
|
||||||
msgstr "自动登录模式,必须填写用户名"
|
msgstr "自动登录模式,必须填写用户名"
|
||||||
|
|
||||||
#: assets/serializers/system_user.py:132
|
#: assets/serializers/system_user.py:131
|
||||||
msgid "Path should starts with /"
|
msgid "Path should starts with /"
|
||||||
msgstr "路径应该以 / 开头"
|
msgstr "路径应该以 / 开头"
|
||||||
|
|
||||||
#: assets/serializers/system_user.py:144
|
#: assets/serializers/system_user.py:143
|
||||||
msgid "Password or private key required"
|
msgid "Password or private key required"
|
||||||
msgstr "密码或密钥密码需要一个"
|
msgstr "密码或密钥密码需要一个"
|
||||||
|
|
||||||
#: assets/serializers/system_user.py:248
|
#: assets/serializers/system_user.py:247
|
||||||
msgid "System user name"
|
msgid "System user name"
|
||||||
msgstr "系统用户名称"
|
msgstr "系统用户名称"
|
||||||
|
|
||||||
#: assets/serializers/system_user.py:258
|
#: assets/serializers/system_user.py:257
|
||||||
msgid "Asset hostname"
|
msgid "Asset hostname"
|
||||||
msgstr "资产主机名"
|
msgstr "资产主机名"
|
||||||
|
|
||||||
@ -1629,35 +1625,35 @@ msgstr "等待登录复核处理"
|
|||||||
msgid "Login confirm ticket was {}"
|
msgid "Login confirm ticket was {}"
|
||||||
msgstr "登录复核 {}"
|
msgstr "登录复核 {}"
|
||||||
|
|
||||||
#: authentication/errors.py:265
|
#: authentication/errors.py:261
|
||||||
msgid "IP is not allowed"
|
msgid "IP is not allowed"
|
||||||
msgstr "来源 IP 不被允许登录"
|
msgstr "来源 IP 不被允许登录"
|
||||||
|
|
||||||
#: authentication/errors.py:272
|
#: authentication/errors.py:268
|
||||||
msgid "Time Period is not allowed"
|
msgid "Time Period is not allowed"
|
||||||
msgstr "该 时间段 不被允许登录"
|
msgstr "该 时间段 不被允许登录"
|
||||||
|
|
||||||
#: authentication/errors.py:305
|
#: authentication/errors.py:301
|
||||||
msgid "SSO auth closed"
|
msgid "SSO auth closed"
|
||||||
msgstr "SSO 认证关闭了"
|
msgstr "SSO 认证关闭了"
|
||||||
|
|
||||||
#: authentication/errors.py:310 authentication/mixins.py:340
|
#: authentication/errors.py:306 authentication/mixins.py:340
|
||||||
msgid "Your password is too simple, please change it for security"
|
msgid "Your password is too simple, please change it for security"
|
||||||
msgstr "你的密码过于简单,为了安全,请修改"
|
msgstr "你的密码过于简单,为了安全,请修改"
|
||||||
|
|
||||||
#: authentication/errors.py:319 authentication/mixins.py:347
|
#: authentication/errors.py:315 authentication/mixins.py:347
|
||||||
msgid "You should to change your password before login"
|
msgid "You should to change your password before login"
|
||||||
msgstr "登录完成前,请先修改密码"
|
msgstr "登录完成前,请先修改密码"
|
||||||
|
|
||||||
#: authentication/errors.py:328 authentication/mixins.py:354
|
#: authentication/errors.py:324 authentication/mixins.py:354
|
||||||
msgid "Your password has expired, please reset before logging in"
|
msgid "Your password has expired, please reset before logging in"
|
||||||
msgstr "您的密码已过期,先修改再登录"
|
msgstr "您的密码已过期,先修改再登录"
|
||||||
|
|
||||||
#: authentication/errors.py:362
|
#: authentication/errors.py:358
|
||||||
msgid "Your password is invalid"
|
msgid "Your password is invalid"
|
||||||
msgstr "您的密码无效"
|
msgstr "您的密码无效"
|
||||||
|
|
||||||
#: authentication/errors.py:368
|
#: authentication/errors.py:364
|
||||||
msgid "No upload or download permission"
|
msgid "No upload or download permission"
|
||||||
msgstr "没有上传下载权限"
|
msgstr "没有上传下载权限"
|
||||||
|
|
||||||
@ -1796,6 +1792,7 @@ msgstr "代码错误"
|
|||||||
#: authentication/templates/authentication/_msg_different_city.html:3
|
#: authentication/templates/authentication/_msg_different_city.html:3
|
||||||
#: authentication/templates/authentication/_msg_reset_password.html:3
|
#: authentication/templates/authentication/_msg_reset_password.html:3
|
||||||
#: authentication/templates/authentication/_msg_rest_password_success.html:2
|
#: authentication/templates/authentication/_msg_rest_password_success.html:2
|
||||||
|
#: jumpserver/conf.py:269
|
||||||
#: perms/templates/perms/_msg_item_permissions_expire.html:3
|
#: perms/templates/perms/_msg_item_permissions_expire.html:3
|
||||||
#: perms/templates/perms/_msg_permed_items_expire.html:3
|
#: perms/templates/perms/_msg_permed_items_expire.html:3
|
||||||
#: users/templates/users/_msg_account_expire_reminder.html:4
|
#: users/templates/users/_msg_account_expire_reminder.html:4
|
||||||
@ -2207,6 +2204,15 @@ msgstr "不能包含特殊字符"
|
|||||||
msgid "The mobile phone number format is incorrect"
|
msgid "The mobile phone number format is incorrect"
|
||||||
msgstr "手机号格式不正确"
|
msgstr "手机号格式不正确"
|
||||||
|
|
||||||
|
#: jumpserver/conf.py:268 settings/serializers/email.py:51
|
||||||
|
msgid "Create account successfully"
|
||||||
|
msgstr "创建账户成功"
|
||||||
|
|
||||||
|
#: jumpserver/conf.py:270 settings/serializers/email.py:63
|
||||||
|
#: users/templates/users/_msg_user_created.html:8
|
||||||
|
msgid "Your account has been created successfully"
|
||||||
|
msgstr "你的账户已创建成功"
|
||||||
|
|
||||||
#: jumpserver/context_processor.py:17
|
#: jumpserver/context_processor.py:17
|
||||||
msgid "JumpServer Open Source Bastion Host"
|
msgid "JumpServer Open Source Bastion Host"
|
||||||
msgstr "JumpServer 开源堡垒机"
|
msgstr "JumpServer 开源堡垒机"
|
||||||
@ -2247,7 +2253,7 @@ msgstr "邮件"
|
|||||||
msgid "Site message"
|
msgid "Site message"
|
||||||
msgstr "站内信"
|
msgstr "站内信"
|
||||||
|
|
||||||
#: notifications/notifications.py:172 ops/models/adhoc.py:246
|
#: notifications/notifications.py:170 ops/models/adhoc.py:246
|
||||||
#: xpack/plugins/change_auth_plan/models/base.py:108
|
#: xpack/plugins/change_auth_plan/models/base.py:108
|
||||||
#: xpack/plugins/change_auth_plan/models/base.py:190
|
#: xpack/plugins/change_auth_plan/models/base.py:190
|
||||||
#: xpack/plugins/gathered_user/models.py:79
|
#: xpack/plugins/gathered_user/models.py:79
|
||||||
@ -2921,7 +2927,7 @@ msgid "SMS provider"
|
|||||||
msgstr "短信服务商"
|
msgstr "短信服务商"
|
||||||
|
|
||||||
#: settings/serializers/auth/sms.py:17 settings/serializers/auth/sms.py:35
|
#: settings/serializers/auth/sms.py:17 settings/serializers/auth/sms.py:35
|
||||||
#: settings/serializers/auth/sms.py:43 settings/serializers/email.py:63
|
#: settings/serializers/auth/sms.py:43
|
||||||
msgid "Signature"
|
msgid "Signature"
|
||||||
msgstr "签名"
|
msgstr "签名"
|
||||||
|
|
||||||
@ -3098,26 +3104,27 @@ msgid ""
|
|||||||
"successfully)"
|
"successfully)"
|
||||||
msgstr "提示: 创建用户时,发送设置密码邮件的主题 (例如: 创建用户成功)"
|
msgstr "提示: 创建用户时,发送设置密码邮件的主题 (例如: 创建用户成功)"
|
||||||
|
|
||||||
#: settings/serializers/email.py:54
|
|
||||||
msgid "Create user honorific"
|
|
||||||
msgstr "邮件的敬语"
|
|
||||||
|
|
||||||
#: settings/serializers/email.py:55
|
#: settings/serializers/email.py:55
|
||||||
|
msgid "Create user honorific"
|
||||||
|
msgstr "邮件问候语"
|
||||||
|
|
||||||
|
#: settings/serializers/email.py:56
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Hello {name}"
|
||||||
|
msgstr "你好 {name}"
|
||||||
|
|
||||||
|
#: settings/serializers/email.py:57
|
||||||
msgid "Tips: When creating a user, send the honorific of the email (eg:Hello)"
|
msgid "Tips: When creating a user, send the honorific of the email (eg:Hello)"
|
||||||
msgstr "提示: 创建用户时,发送设置密码邮件的敬语 (例如: 你好)"
|
msgstr "提示: 创建用户时,发送设置密码邮件的敬语 (例如: 你好)"
|
||||||
|
|
||||||
#: settings/serializers/email.py:59
|
#: settings/serializers/email.py:61
|
||||||
msgid "Create user email content"
|
msgid "Create user email content"
|
||||||
msgstr "邮件的内容"
|
msgstr "邮件的内容"
|
||||||
|
|
||||||
#: settings/serializers/email.py:60
|
#: settings/serializers/email.py:62
|
||||||
msgid "Tips:When creating a user, send the content of the email"
|
msgid "Tips:When creating a user, send the content of the email"
|
||||||
msgstr "提示: 创建用户时,发送设置密码邮件的内容"
|
msgstr "提示: 创建用户时,发送设置密码邮件的内容"
|
||||||
|
|
||||||
#: settings/serializers/email.py:64
|
|
||||||
msgid "Tips: Email signature (eg:jumpserver)"
|
|
||||||
msgstr "邮件署名 (如:jumpserver)"
|
|
||||||
|
|
||||||
#: settings/serializers/other.py:7
|
#: settings/serializers/other.py:7
|
||||||
msgid "Email suffix"
|
msgid "Email suffix"
|
||||||
msgstr "邮件后缀"
|
msgstr "邮件后缀"
|
||||||
@ -4466,35 +4473,35 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"通过工单创建, 工单标题: {}, 工单申请人: {}, 工单处理人: {}, 工单 ID: {}"
|
"通过工单创建, 工单标题: {}, 工单申请人: {}, 工单处理人: {}, 工单 ID: {}"
|
||||||
|
|
||||||
#: tickets/handler/base.py:88
|
#: tickets/handler/base.py:86
|
||||||
msgid "{} {} the ticket"
|
msgid "{} {} the ticket"
|
||||||
msgstr "{} {} 工单"
|
msgstr "{} {} 工单"
|
||||||
|
|
||||||
#: tickets/handler/base.py:116
|
#: tickets/handler/base.py:114
|
||||||
msgid "Ticket title"
|
msgid "Ticket title"
|
||||||
msgstr "工单标题"
|
msgstr "工单标题"
|
||||||
|
|
||||||
#: tickets/handler/base.py:117
|
#: tickets/handler/base.py:115
|
||||||
msgid "Ticket type"
|
msgid "Ticket type"
|
||||||
msgstr "工单类型"
|
msgstr "工单类型"
|
||||||
|
|
||||||
#: tickets/handler/base.py:118
|
#: tickets/handler/base.py:116
|
||||||
msgid "Ticket status"
|
msgid "Ticket status"
|
||||||
msgstr "工单状态"
|
msgstr "工单状态"
|
||||||
|
|
||||||
#: tickets/handler/base.py:119
|
#: tickets/handler/base.py:117
|
||||||
msgid "Ticket applicant"
|
msgid "Ticket applicant"
|
||||||
msgstr "工单申请人"
|
msgstr "工单申请人"
|
||||||
|
|
||||||
#: tickets/handler/base.py:121
|
#: tickets/handler/base.py:119
|
||||||
msgid "Ticket basic info"
|
msgid "Ticket basic info"
|
||||||
msgstr "工单基本信息"
|
msgstr "工单基本信息"
|
||||||
|
|
||||||
#: tickets/handler/base.py:132
|
#: tickets/handler/base.py:130
|
||||||
msgid "No content"
|
msgid "No content"
|
||||||
msgstr "无内容"
|
msgstr "无内容"
|
||||||
|
|
||||||
#: tickets/handler/base.py:134
|
#: tickets/handler/base.py:132
|
||||||
msgid "Ticket applied info"
|
msgid "Ticket applied info"
|
||||||
msgstr "工单申请信息"
|
msgstr "工单申请信息"
|
||||||
|
|
||||||
@ -4908,38 +4915,30 @@ msgstr "管理员"
|
|||||||
msgid "Administrator is the super user of system"
|
msgid "Administrator is the super user of system"
|
||||||
msgstr "Administrator是初始的超级管理员"
|
msgstr "Administrator是初始的超级管理员"
|
||||||
|
|
||||||
#: users/notifications.py:15
|
#: users/notifications.py:56
|
||||||
msgid "Create account successfully"
|
|
||||||
msgstr "创建账户成功"
|
|
||||||
|
|
||||||
#: users/notifications.py:19
|
|
||||||
msgid "Hello {}"
|
|
||||||
msgstr "你好"
|
|
||||||
|
|
||||||
#: users/notifications.py:51
|
|
||||||
#: users/templates/users/_msg_password_expire_reminder.html:17
|
#: users/templates/users/_msg_password_expire_reminder.html:17
|
||||||
#: users/templates/users/reset_password.html:5
|
#: users/templates/users/reset_password.html:5
|
||||||
#: users/templates/users/reset_password.html:6
|
#: users/templates/users/reset_password.html:6
|
||||||
msgid "Reset password"
|
msgid "Reset password"
|
||||||
msgstr "重置密码"
|
msgstr "重置密码"
|
||||||
|
|
||||||
#: users/notifications.py:81 users/views/profile/reset.py:127
|
#: users/notifications.py:86 users/views/profile/reset.py:127
|
||||||
msgid "Reset password success"
|
msgid "Reset password success"
|
||||||
msgstr "重置密码成功"
|
msgstr "重置密码成功"
|
||||||
|
|
||||||
#: users/notifications.py:107
|
#: users/notifications.py:112
|
||||||
msgid "Password is about expire"
|
msgid "Password is about expire"
|
||||||
msgstr "密码即将过期"
|
msgstr "密码即将过期"
|
||||||
|
|
||||||
#: users/notifications.py:135
|
#: users/notifications.py:140
|
||||||
msgid "Account is about expire"
|
msgid "Account is about expire"
|
||||||
msgstr "账号即将过期"
|
msgstr "账号即将过期"
|
||||||
|
|
||||||
#: users/notifications.py:157
|
#: users/notifications.py:162
|
||||||
msgid "Reset SSH Key"
|
msgid "Reset SSH Key"
|
||||||
msgstr "重置 SSH 密钥"
|
msgstr "重置 SSH 密钥"
|
||||||
|
|
||||||
#: users/notifications.py:178
|
#: users/notifications.py:183
|
||||||
msgid "Reset MFA"
|
msgid "Reset MFA"
|
||||||
msgstr "重置 MFA"
|
msgstr "重置 MFA"
|
||||||
|
|
||||||
@ -5109,10 +5108,6 @@ msgstr "点击这里设置"
|
|||||||
msgid "Your ssh public key has been reset by site administrator"
|
msgid "Your ssh public key has been reset by site administrator"
|
||||||
msgstr "你的 SSH 密钥已经被管理员重置"
|
msgstr "你的 SSH 密钥已经被管理员重置"
|
||||||
|
|
||||||
#: users/templates/users/_msg_user_created.html:8
|
|
||||||
msgid "Your account has been created successfully"
|
|
||||||
msgstr "您的账户已创建成功"
|
|
||||||
|
|
||||||
#: users/templates/users/_msg_user_created.html:13
|
#: users/templates/users/_msg_user_created.html:13
|
||||||
msgid "click here to set your password"
|
msgid "click here to set your password"
|
||||||
msgstr "点击这里设置密码"
|
msgstr "点击这里设置密码"
|
||||||
@ -5368,8 +5363,8 @@ msgstr "* 新密码不能是最近 {} 次的密码"
|
|||||||
msgid "Reset password success, return to login page"
|
msgid "Reset password success, return to login page"
|
||||||
msgstr "重置密码成功,返回到登录页面"
|
msgstr "重置密码成功,返回到登录页面"
|
||||||
|
|
||||||
#: xpack/plugins/change_auth_plan/api/app.py:114
|
#: xpack/plugins/change_auth_plan/api/app.py:113
|
||||||
#: xpack/plugins/change_auth_plan/api/asset.py:101
|
#: xpack/plugins/change_auth_plan/api/asset.py:100
|
||||||
msgid "The parameter 'action' must be [{}]"
|
msgid "The parameter 'action' must be [{}]"
|
||||||
msgstr "参数 'action' 必须是 [{}]"
|
msgstr "参数 'action' 必须是 [{}]"
|
||||||
|
|
||||||
@ -5954,6 +5949,9 @@ msgstr "旗舰版"
|
|||||||
msgid "Community edition"
|
msgid "Community edition"
|
||||||
msgstr "社区版"
|
msgstr "社区版"
|
||||||
|
|
||||||
|
#~ msgid "Tips: Email signature (eg:jumpserver)"
|
||||||
|
#~ msgstr "邮件署名 (如:jumpserver)"
|
||||||
|
|
||||||
#~ msgid "Login direct"
|
#~ msgid "Login direct"
|
||||||
#~ msgstr "直接登录"
|
#~ msgstr "直接登录"
|
||||||
|
|
||||||
|
@ -12,21 +12,18 @@ from notifications.notifications import UserMessage
|
|||||||
class UserCreatedMsg(UserMessage):
|
class UserCreatedMsg(UserMessage):
|
||||||
def get_html_msg(self) -> dict:
|
def get_html_msg(self) -> dict:
|
||||||
user = self.user
|
user = self.user
|
||||||
subject = _('Create account successfully')
|
|
||||||
if settings.EMAIL_CUSTOM_USER_CREATED_SUBJECT:
|
|
||||||
subject = settings.EMAIL_CUSTOM_USER_CREATED_SUBJECT
|
|
||||||
|
|
||||||
honorific = settings.EMAIL_CUSTOM_USER_CREATED_HONORIFIC or _('Hello {}').format(user.name)
|
subject = str(settings.EMAIL_CUSTOM_USER_CREATED_SUBJECT)
|
||||||
signature = settings.EMAIL_CUSTOM_USER_CREATED_SIGNATURE or 'JumpServer'
|
honorific = str(settings.EMAIL_CUSTOM_USER_CREATED_HONORIFIC)
|
||||||
|
content = str(settings.EMAIL_CUSTOM_USER_CREATED_BODY)
|
||||||
|
|
||||||
context = {
|
context = {
|
||||||
'honorific': honorific,
|
'honorific': honorific,
|
||||||
'signature': signature,
|
'content': content,
|
||||||
'username': user.username,
|
'user': user,
|
||||||
'rest_password_url': reverse('authentication:reset-password', external=True),
|
'rest_password_url': reverse('authentication:reset-password', external=True),
|
||||||
'rest_password_token': user.generate_reset_token(),
|
'rest_password_token': user.generate_reset_token(),
|
||||||
'forget_password_url': reverse('authentication:forgot-password', external=True),
|
'forget_password_url': reverse('authentication:forgot-password', external=True),
|
||||||
'email': user.email,
|
|
||||||
'login_url': reverse('authentication:login', external=True),
|
'login_url': reverse('authentication:login', external=True),
|
||||||
}
|
}
|
||||||
message = render_to_string('users/_msg_user_created.html', context)
|
message = render_to_string('users/_msg_user_created.html', context)
|
||||||
|
@ -1,13 +1,15 @@
|
|||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
{{ honorific }}:
|
{{ honorific }} {{ user }},
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<p>{% trans 'Your account has been created successfully' %}</p>
|
|
||||||
<p>
|
<p>
|
||||||
{% trans 'Username' %}: {{ username }} <br />
|
{{ content }}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
{% trans 'Username' %}: {{ user.username }} <br />
|
||||||
{% trans 'Password' %}:
|
{% trans 'Password' %}:
|
||||||
<a href="{{ rest_password_url}}?token={{ rest_password_token }}">
|
<a href="{{ rest_password_url}}?token={{ rest_password_token }}">
|
||||||
{% trans 'click here to set your password' %}
|
{% trans 'click here to set your password' %}
|
||||||
@ -15,6 +17,6 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
{% trans 'This link is valid for 1 hour. After it expires' %}
|
{% trans 'This link is valid for 1 hour. After it expires' %}
|
||||||
<a href="{{ forget_password_url }}?email={{ email }}">{% trans 'request new one' %}</a>
|
<a href="{{ forget_password_url }}?email={{ user.email }}">{% trans 'request new one' %}</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
@ -22,7 +22,7 @@ def send_user_created_mail(user):
|
|||||||
from .notifications import UserCreatedMsg
|
from .notifications import UserCreatedMsg
|
||||||
|
|
||||||
recipient_list = [user.email]
|
recipient_list = [user.email]
|
||||||
msg = UserCreatedMsg.html_msg
|
msg = UserCreatedMsg(user).html_msg
|
||||||
subject = msg['subject']
|
subject = msg['subject']
|
||||||
message = msg['message']
|
message = msg['message']
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user