diff --git a/apps/assets/views/asset.py b/apps/assets/views/asset.py index ceb8c1404..572772dc5 100644 --- a/apps/assets/views/asset.py +++ b/apps/assets/views/asset.py @@ -277,7 +277,8 @@ class BulkImportAssetView(AdminUserRequiredMixin, JSONResponseMixin, FormView): v = '' elif k == 'domain': v = get_object_or_none(Domain, name=v) - + elif k == 'platform': + v = v.lower().capitalize() if v != '': asset_dict[k] = v diff --git a/apps/common/forms.py b/apps/common/forms.py index d843eec0b..3e5ffb232 100644 --- a/apps/common/forms.py +++ b/apps/common/forms.py @@ -69,6 +69,7 @@ class BasicSettingForm(BaseForm): ) EMAIL_SUBJECT_PREFIX = forms.CharField( max_length=1024, label=_("Email Subject Prefix"), + help_text=_("Tips: Some word will be intercept by mail provider") ) diff --git a/apps/jumpserver/settings.py b/apps/jumpserver/settings.py index fff5b64db..f23051de7 100644 --- a/apps/jumpserver/settings.py +++ b/apps/jumpserver/settings.py @@ -314,7 +314,7 @@ EMAIL_HOST_USER = 'noreply@jumpserver.org' EMAIL_HOST_PASSWORD = '' EMAIL_USE_SSL = False EMAIL_USE_TLS = False -EMAIL_SUBJECT_PREFIX = '[Jumpserver] ' +EMAIL_SUBJECT_PREFIX = '[JMS] ' REST_FRAMEWORK = { # Use Django's standard `django.contrib.auth` permissions, diff --git a/apps/locale/zh/LC_MESSAGES/django.po b/apps/locale/zh/LC_MESSAGES/django.po index 6d0c8aa58..8f60e2a42 100644 --- a/apps/locale/zh/LC_MESSAGES/django.po +++ b/apps/locale/zh/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Jumpserver 0.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-11-22 15:16+0800\n" +"POT-Creation-Date: 2018-11-23 16:19+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: ibuler \n" "Language-Team: Jumpserver team\n" @@ -126,7 +126,7 @@ msgstr "端口" #: perms/templates/perms/asset_permission_create_update.html:40 #: perms/templates/perms/asset_permission_list.html:56 #: perms/templates/perms/asset_permission_list.html:148 -#: terminal/backends/command/models.py:13 terminal/models.py:134 +#: terminal/backends/command/models.py:13 terminal/models.py:138 #: terminal/templates/terminal/command_list.html:40 #: terminal/templates/terminal/command_list.html:73 #: terminal/templates/terminal/session_list.html:41 @@ -154,7 +154,7 @@ msgstr "不能包含特殊字符" #: assets/templates/assets/domain_list.html:25 #: assets/templates/assets/label_list.html:14 #: assets/templates/assets/system_user_detail.html:58 -#: assets/templates/assets/system_user_list.html:29 common/models.py:31 +#: assets/templates/assets/system_user_list.html:29 common/models.py:29 #: common/templates/common/command_storage_create.html:41 #: common/templates/common/replay_storage_create.html:44 #: common/templates/common/terminal_setting.html:80 @@ -164,9 +164,9 @@ msgstr "不能包含特殊字符" #: perms/templates/perms/asset_permission_detail.html:62 #: perms/templates/perms/asset_permission_list.html:53 #: perms/templates/perms/asset_permission_user.html:54 terminal/models.py:18 -#: terminal/models.py:161 terminal/templates/terminal/terminal_detail.html:43 +#: terminal/models.py:165 terminal/templates/terminal/terminal_detail.html:43 #: terminal/templates/terminal/terminal_list.html:29 users/models/group.py:14 -#: users/models/user.py:52 users/templates/users/_select_user_modal.html:13 +#: users/models/user.py:53 users/templates/users/_select_user_modal.html:13 #: users/templates/users/user_detail.html:63 #: users/templates/users/user_group_detail.html:55 #: users/templates/users/user_group_list.html:12 @@ -191,7 +191,7 @@ msgstr "名称" #: assets/templates/assets/system_user_list.html:30 #: audits/templates/audits/login_log_list.html:49 #: perms/templates/perms/asset_permission_user.html:55 users/forms.py:15 -#: users/forms.py:33 users/models/authentication.py:74 users/models/user.py:50 +#: users/forms.py:33 users/models/authentication.py:77 users/models/user.py:51 #: users/templates/users/_select_user_modal.html:14 #: users/templates/users/login.html:64 #: users/templates/users/user_detail.html:67 @@ -204,7 +204,7 @@ msgstr "用户名" msgid "Password or private key passphrase" msgstr "密码或密钥密码" -#: assets/forms/user.py:26 assets/models/base.py:24 common/forms.py:105 +#: assets/forms/user.py:26 assets/models/base.py:24 common/forms.py:106 #: users/forms.py:17 users/forms.py:35 users/forms.py:47 #: users/templates/users/login.html:67 #: users/templates/users/reset_password.html:53 @@ -216,7 +216,7 @@ msgstr "密码或密钥密码" msgid "Password" msgstr "密码" -#: assets/forms/user.py:29 users/models/user.py:79 +#: assets/forms/user.py:29 users/models/user.py:80 msgid "Private key" msgstr "ssh私钥" @@ -265,7 +265,7 @@ msgstr "如果选择手动登录模式,用户名和密码可以不填写" #: assets/templates/assets/system_user_asset.html:51 #: assets/templates/assets/user_asset_list.html:46 #: assets/templates/assets/user_asset_list.html:162 -#: audits/templates/audits/login_log_list.html:52 common/forms.py:134 +#: audits/templates/audits/login_log_list.html:52 common/forms.py:135 #: perms/templates/perms/asset_permission_asset.html:55 #: users/templates/users/user_granted_asset.html:45 #: users/templates/users/user_group_granted_asset.html:45 @@ -278,7 +278,7 @@ msgstr "IP" #: assets/templates/assets/asset_list.html:92 #: assets/templates/assets/system_user_asset.html:50 #: assets/templates/assets/user_asset_list.html:45 -#: assets/templates/assets/user_asset_list.html:161 common/forms.py:133 +#: assets/templates/assets/user_asset_list.html:161 common/forms.py:134 #: perms/templates/perms/asset_permission_asset.html:54 #: users/templates/users/user_granted_asset.html:44 #: users/templates/users/user_group_granted_asset.html:44 @@ -388,7 +388,7 @@ msgstr "标签管理" #: assets/templates/assets/system_user_detail.html:100 #: ops/templates/ops/adhoc_detail.html:86 orgs/models.py:15 perms/models.py:37 #: perms/models.py:84 perms/templates/perms/asset_permission_detail.html:98 -#: users/models/user.py:93 users/templates/users/user_detail.html:111 +#: users/models/user.py:94 users/templates/users/user_detail.html:111 #: xpack/plugins/cloud/models.py:46 xpack/plugins/cloud/models.py:140 msgid "Created by" msgstr "创建者" @@ -426,11 +426,11 @@ msgstr "创建日期" #: assets/templates/assets/domain_list.html:28 #: assets/templates/assets/system_user_detail.html:104 #: assets/templates/assets/system_user_list.html:37 -#: assets/templates/assets/user_asset_list.html:170 common/models.py:36 +#: assets/templates/assets/user_asset_list.html:170 common/models.py:34 #: ops/models/adhoc.py:43 orgs/models.py:17 perms/models.py:39 #: perms/models.py:86 perms/templates/perms/asset_permission_detail.html:102 #: terminal/models.py:28 terminal/templates/terminal/terminal_detail.html:63 -#: users/models/group.py:15 users/models/user.py:85 +#: users/models/group.py:15 users/models/user.py:86 #: users/templates/users/user_detail.html:127 #: users/templates/users/user_group_detail.html:67 #: users/templates/users/user_group_list.html:14 @@ -461,7 +461,7 @@ msgstr "带宽" msgid "Contact" msgstr "联系人" -#: assets/models/cluster.py:22 users/models/user.py:71 +#: assets/models/cluster.py:22 users/models/user.py:72 #: users/templates/users/user_detail.html:76 msgid "Phone" msgstr "手机" @@ -487,7 +487,7 @@ msgid "Default" msgstr "默认" #: assets/models/cluster.py:36 assets/models/label.py:14 -#: users/models/user.py:397 +#: users/models/user.py:422 msgid "System" msgstr "系统" @@ -515,7 +515,7 @@ msgstr "BGP全网通" msgid "Regex" msgstr "正则表达式" -#: assets/models/cmd_filter.py:35 terminal/models.py:140 +#: assets/models/cmd_filter.py:35 terminal/models.py:144 #: terminal/templates/terminal/command_list.html:55 #: terminal/templates/terminal/command_list.html:71 #: terminal/templates/terminal/session_detail.html:48 @@ -616,12 +616,12 @@ msgstr "默认资产组" #: perms/templates/perms/asset_permission_create_update.html:36 #: perms/templates/perms/asset_permission_list.html:54 #: perms/templates/perms/asset_permission_list.html:142 templates/index.html:87 -#: terminal/backends/command/models.py:12 terminal/models.py:133 +#: terminal/backends/command/models.py:12 terminal/models.py:137 #: terminal/templates/terminal/command_list.html:32 #: terminal/templates/terminal/command_list.html:72 #: terminal/templates/terminal/session_list.html:33 #: terminal/templates/terminal/session_list.html:71 users/forms.py:310 -#: users/models/user.py:32 users/models/user.py:385 +#: users/models/user.py:33 users/models/user.py:410 #: users/templates/users/user_group_detail.html:78 #: users/templates/users/user_group_list.html:13 users/views/user.py:384 #: xpack/plugins/orgs/forms.py:26 @@ -631,7 +631,7 @@ msgid "User" msgstr "用户" #: assets/models/label.py:19 assets/models/node.py:20 -#: assets/templates/assets/label_list.html:15 common/models.py:32 +#: assets/templates/assets/label_list.html:15 common/models.py:30 msgid "Value" msgstr "值" @@ -699,7 +699,7 @@ msgstr "登录模式" #: perms/templates/perms/asset_permission_detail.html:140 #: perms/templates/perms/asset_permission_list.html:58 #: perms/templates/perms/asset_permission_list.html:154 templates/_nav.html:25 -#: terminal/backends/command/models.py:14 terminal/models.py:135 +#: terminal/backends/command/models.py:14 terminal/models.py:139 #: terminal/templates/terminal/command_list.html:48 #: terminal/templates/terminal/command_list.html:74 #: terminal/templates/terminal/session_list.html:49 @@ -1544,7 +1544,7 @@ msgstr "批量更新资产" msgid "Update asset" msgstr "更新资产" -#: assets/views/asset.py:291 +#: assets/views/asset.py:292 msgid "already exists" msgstr "已经存在" @@ -1624,7 +1624,7 @@ msgstr "系统用户集群资产" #: audits/templates/audits/ftp_log_list.html:73 #: audits/templates/audits/operate_log_list.html:70 #: audits/templates/audits/password_change_log_list.html:52 -#: terminal/models.py:137 terminal/templates/terminal/session_list.html:74 +#: terminal/models.py:141 terminal/templates/terminal/session_list.html:74 #: terminal/templates/terminal/terminal_detail.html:47 msgid "Remote addr" msgstr "远端地址" @@ -1639,7 +1639,7 @@ msgid "Filename" msgstr "文件名" #: audits/models.py:22 audits/templates/audits/ftp_log_list.html:76 -#: ops/templates/ops/task_list.html:39 users/models/authentication.py:70 +#: ops/templates/ops/task_list.html:39 users/models/authentication.py:73 #: users/templates/users/user_detail.html:456 xpack/plugins/cloud/api.py:61 msgid "Success" msgstr "成功" @@ -1665,7 +1665,7 @@ msgstr "修改者" #: ops/templates/ops/adhoc_history.html:52 #: ops/templates/ops/adhoc_history_detail.html:61 #: ops/templates/ops/task_history.html:58 perms/models.py:35 -#: perms/templates/perms/asset_permission_detail.html:86 terminal/models.py:144 +#: perms/templates/perms/asset_permission_detail.html:86 terminal/models.py:148 #: terminal/templates/terminal/session_list.html:78 msgid "Date start" msgstr "开始日期" @@ -1707,19 +1707,19 @@ msgid "City" msgstr "城市" #: audits/templates/audits/login_log_list.html:54 users/forms.py:168 -#: users/models/authentication.py:79 users/models/user.py:74 +#: users/models/authentication.py:82 users/models/user.py:75 #: users/templates/users/first_login.html:45 msgid "MFA" msgstr "MFA" #: audits/templates/audits/login_log_list.html:55 -#: users/models/authentication.py:80 xpack/plugins/cloud/models.py:192 +#: users/models/authentication.py:83 xpack/plugins/cloud/models.py:192 #: xpack/plugins/cloud/templates/cloud/sync_instance_task_history.html:69 msgid "Reason" msgstr "原因" #: audits/templates/audits/login_log_list.html:56 -#: users/models/authentication.py:81 xpack/plugins/cloud/models.py:191 +#: users/models/authentication.py:84 xpack/plugins/cloud/models.py:191 #: xpack/plugins/cloud/models.py:208 #: xpack/plugins/cloud/templates/cloud/sync_instance_task_history.html:70 #: xpack/plugins/cloud/templates/cloud/sync_instance_task_instance.html:67 @@ -1758,7 +1758,7 @@ msgstr "改密日志" #: audits/views.py:187 templates/_nav.html:10 users/views/group.py:28 #: users/views/group.py:44 users/views/group.py:60 users/views/group.py:76 -#: users/views/group.py:92 users/views/login.py:344 users/views/user.py:68 +#: users/views/group.py:92 users/views/login.py:346 users/views/user.py:68 #: users/views/user.py:83 users/views/user.py:111 users/views/user.py:192 #: users/views/user.py:353 users/views/user.py:403 users/views/user.py:437 msgid "Users" @@ -1835,72 +1835,76 @@ msgstr "用户第一次登录,修改profile后重定向到地址" msgid "Email Subject Prefix" msgstr "Email主题前缀" -#: common/forms.py:77 +#: common/forms.py:72 +msgid "Tips: Some word will be intercept by mail provider" +msgstr "提示: 一些关键字可能会被邮件提供商拦截,如 跳板机、Jumpserver" + +#: common/forms.py:78 msgid "SMTP host" msgstr "SMTP主机" -#: common/forms.py:79 +#: common/forms.py:80 msgid "SMTP port" msgstr "SMTP端口" -#: common/forms.py:81 +#: common/forms.py:82 msgid "SMTP user" msgstr "SMTP账号" -#: common/forms.py:84 +#: common/forms.py:85 msgid "SMTP password" msgstr "SMTP密码" -#: common/forms.py:85 +#: common/forms.py:86 msgid "Some provider use token except password" msgstr "一些邮件提供商需要输入的是Token" -#: common/forms.py:88 common/forms.py:126 +#: common/forms.py:89 common/forms.py:127 msgid "Use SSL" msgstr "使用SSL" -#: common/forms.py:89 +#: common/forms.py:90 msgid "If SMTP port is 465, may be select" msgstr "如果SMTP端口是465,通常需要启用SSL" -#: common/forms.py:92 +#: common/forms.py:93 msgid "Use TLS" msgstr "使用TLS" -#: common/forms.py:93 +#: common/forms.py:94 msgid "If SMTP port is 587, may be select" msgstr "如果SMTP端口是587,通常需要启用TLS" -#: common/forms.py:99 +#: common/forms.py:100 msgid "LDAP server" msgstr "LDAP地址" -#: common/forms.py:102 +#: common/forms.py:103 msgid "Bind DN" msgstr "绑定DN" -#: common/forms.py:109 +#: common/forms.py:110 msgid "User OU" msgstr "用户OU" -#: common/forms.py:110 +#: common/forms.py:111 msgid "Use | split User OUs" msgstr "使用|分隔各OU" -#: common/forms.py:113 +#: common/forms.py:114 msgid "User search filter" msgstr "用户过滤器" -#: common/forms.py:114 +#: common/forms.py:115 #, python-format msgid "Choice may be (cn|uid|sAMAccountName)=%(user)s)" msgstr "可能的选项是(cn或uid或sAMAccountName=%(user)s)" -#: common/forms.py:117 +#: common/forms.py:118 msgid "User attr map" msgstr "LDAP属性映射" -#: common/forms.py:119 +#: common/forms.py:120 msgid "" "User attr map present how to map LDAP user attr to jumpserver, username,name," "email is jumpserver attr" @@ -1908,69 +1912,69 @@ msgstr "" "用户属性映射代表怎样将LDAP中用户属性映射到jumpserver用户上,username, name," "email 是jumpserver的属性" -#: common/forms.py:128 +#: common/forms.py:129 msgid "Enable LDAP auth" msgstr "启用LDAP认证" -#: common/forms.py:137 +#: common/forms.py:138 msgid "Password auth" msgstr "密码认证" -#: common/forms.py:140 +#: common/forms.py:141 msgid "Public key auth" msgstr "密钥认证" -#: common/forms.py:143 +#: common/forms.py:144 msgid "Heartbeat interval" msgstr "心跳间隔" -#: common/forms.py:143 ops/models/adhoc.py:38 +#: common/forms.py:144 ops/models/adhoc.py:38 msgid "Units: seconds" msgstr "单位: 秒" -#: common/forms.py:146 +#: common/forms.py:147 msgid "List sort by" msgstr "资产列表排序" -#: common/forms.py:158 +#: common/forms.py:159 msgid "MFA Secondary certification" msgstr "MFA 二次认证" -#: common/forms.py:160 +#: common/forms.py:161 msgid "" "After opening, the user login must use MFA secondary authentication (valid " "for all users, including administrators)" msgstr "开启后,用户登录必须使用MFA二次认证(对所有用户有效,包括管理员)" -#: common/forms.py:167 +#: common/forms.py:168 msgid "Limit the number of login failures" msgstr "限制登录失败次数" -#: common/forms.py:172 +#: common/forms.py:173 msgid "No logon interval" msgstr "禁止登录时间间隔" -#: common/forms.py:174 +#: common/forms.py:175 msgid "" "Tip: (unit/minute) if the user has failed to log in for a limited number of " "times, no login is allowed during this time interval." msgstr "" "提示: (单位: 分钟) 当用户登录失败次数达到限制后,那么在此时间间隔内禁止登录." -#: common/forms.py:181 +#: common/forms.py:182 msgid "Connection max idle time" msgstr "SSH最大空闲时间" -#: common/forms.py:183 +#: common/forms.py:184 msgid "" "If idle time more than it, disconnect connection(only ssh now) Unit: minute" msgstr "提示: (单位: 分钟) 如果超过该配置没有操作,连接会被断开(仅ssh) " -#: common/forms.py:189 +#: common/forms.py:190 msgid "Password expiration time" msgstr "密码过期时间" -#: common/forms.py:192 +#: common/forms.py:193 msgid "" "Tip: (unit/day) If the user does not update the password during the time, " "the user password will expire failure;The password expiration reminder mail " @@ -1978,45 +1982,45 @@ msgid "" "the password expires" msgstr "" -#: common/forms.py:201 +#: common/forms.py:202 msgid "Password minimum length" msgstr "密码最小长度 " -#: common/forms.py:207 +#: common/forms.py:208 msgid "Must contain capital letters" msgstr "必须包含大写字母" -#: common/forms.py:209 +#: common/forms.py:210 msgid "" "After opening, the user password changes and resets must contain uppercase " "letters" msgstr "开启后,用户密码修改、重置必须包含大写字母" -#: common/forms.py:215 +#: common/forms.py:216 msgid "Must contain lowercase letters" msgstr "必须包含小写字母" -#: common/forms.py:216 +#: common/forms.py:217 msgid "" "After opening, the user password changes and resets must contain lowercase " "letters" msgstr "开启后,用户密码修改、重置必须包含小写字母" -#: common/forms.py:222 +#: common/forms.py:223 msgid "Must contain numeric characters" msgstr "必须包含数字字符" -#: common/forms.py:223 +#: common/forms.py:224 msgid "" "After opening, the user password changes and resets must contain numeric " "characters" msgstr "开启后,用户密码修改、重置必须包含数字字符" -#: common/forms.py:229 +#: common/forms.py:230 msgid "Must contain special characters" msgstr "必须包含特殊字符" -#: common/forms.py:230 +#: common/forms.py:231 msgid "" "After opening, the user password changes and resets must contain special " "characters" @@ -2030,7 +2034,7 @@ msgstr "" msgid "discard time" msgstr "" -#: common/models.py:35 users/models/authentication.py:51 +#: common/models.py:33 users/models/authentication.py:54 #: users/templates/users/user_detail.html:96 msgid "Enabled" msgstr "启用" @@ -2186,11 +2190,17 @@ msgstr "不能包含特殊字符" msgid "Settings" msgstr "系统设置" -#: common/views.py:29 common/views.py:55 common/views.py:81 common/views.py:112 +#: common/views.py:29 common/views.py:81 common/views.py:112 #: common/views.py:162 msgid "Update setting successfully" msgstr "更新设置成功" +#: common/views.py:55 +#, fuzzy +#| msgid "Update setting successfully" +msgid "Update setting successfully, please restart program" +msgstr "更新设置成功" + #: common/views.py:127 msgid "Create replay storage" msgstr "创建录像存储" @@ -2199,7 +2209,7 @@ msgstr "创建录像存储" msgid "Create command storage" msgstr "创建命令存储" -#: jumpserver/views.py:180 +#: jumpserver/views.py:185 msgid "" "
Luna is a separately deployed program, you need to deploy Luna, coco, " "configure nginx for url distribution,
If you see this page, " @@ -2457,7 +2467,7 @@ msgstr "组织管理" #: perms/forms.py:31 perms/models.py:30 perms/models.py:80 #: perms/templates/perms/asset_permission_list.html:55 #: perms/templates/perms/asset_permission_list.html:145 templates/_nav.html:14 -#: users/forms.py:280 users/models/group.py:26 users/models/user.py:58 +#: users/forms.py:280 users/models/group.py:26 users/models/user.py:59 #: users/templates/users/_select_user_modal.html:16 #: users/templates/users/user_detail.html:211 #: users/templates/users/user_list.html:26 @@ -2475,7 +2485,7 @@ msgstr "资产和节点至少选一个" #: perms/models.py:36 perms/models.py:83 #: perms/templates/perms/asset_permission_detail.html:90 -#: users/models/user.py:90 users/templates/users/user_detail.html:107 +#: users/models/user.py:91 users/templates/users/user_detail.html:107 #: users/templates/users/user_profile.html:116 msgid "Date expired" msgstr "失效日期" @@ -2952,43 +2962,43 @@ msgstr "SSH端口" msgid "HTTP Port" msgstr "HTTP端口" -#: terminal/models.py:105 +#: terminal/models.py:109 msgid "Session Online" msgstr "在线会话" -#: terminal/models.py:106 +#: terminal/models.py:110 msgid "CPU Usage" msgstr "CPU使用" -#: terminal/models.py:107 +#: terminal/models.py:111 msgid "Memory Used" msgstr "内存使用" -#: terminal/models.py:108 +#: terminal/models.py:112 msgid "Connections" msgstr "连接数" -#: terminal/models.py:109 +#: terminal/models.py:113 msgid "Threads" msgstr "线程数" -#: terminal/models.py:110 +#: terminal/models.py:114 msgid "Boot Time" msgstr "运行时间" -#: terminal/models.py:139 terminal/templates/terminal/session_list.html:104 +#: terminal/models.py:143 terminal/templates/terminal/session_list.html:104 msgid "Replay" msgstr "回放" -#: terminal/models.py:143 +#: terminal/models.py:147 msgid "Date last active" msgstr "最后活跃日期" -#: terminal/models.py:145 +#: terminal/models.py:149 msgid "Date end" msgstr "结束日期" -#: terminal/models.py:162 +#: terminal/models.py:166 msgid "Args" msgstr "参数" @@ -3142,66 +3152,66 @@ msgstr "用户 {} 密码已经过期,请更新。" msgid "Please carry seed value and conduct MFA secondary certification" msgstr "请携带seed值, 进行MFA二次认证" -#: users/api/auth.py:205 +#: users/api/auth.py:204 msgid "Please verify the user name and password first" msgstr "请先进行用户名和密码验证" -#: users/api/auth.py:217 +#: users/api/auth.py:216 msgid "MFA certification failed" msgstr "MFA认证失败" -#: users/api/user.py:138 +#: users/api/user.py:140 msgid "Could not reset self otp, use profile reset instead" msgstr "不能再该页面重置MFA, 请去个人信息页面重置" -#: users/authentication.py:56 +#: users/authentication.py:53 msgid "Invalid signature header. No credentials provided." msgstr "" -#: users/authentication.py:59 +#: users/authentication.py:56 msgid "Invalid signature header. Signature string should not contain spaces." msgstr "" -#: users/authentication.py:66 +#: users/authentication.py:63 msgid "Invalid signature header. Format like AccessKeyId:Signature" msgstr "" -#: users/authentication.py:70 +#: users/authentication.py:67 msgid "" "Invalid signature header. Signature string should not contain invalid " "characters." msgstr "" -#: users/authentication.py:90 users/authentication.py:106 +#: users/authentication.py:87 users/authentication.py:103 msgid "Invalid signature." msgstr "" -#: users/authentication.py:97 +#: users/authentication.py:94 msgid "HTTP header: Date not provide or not %a, %d %b %Y %H:%M:%S GMT" msgstr "" -#: users/authentication.py:102 +#: users/authentication.py:99 msgid "Expired, more than 15 minutes" msgstr "" -#: users/authentication.py:109 +#: users/authentication.py:106 msgid "User disabled." msgstr "用户已禁用" -#: users/authentication.py:124 +#: users/authentication.py:121 msgid "Invalid token header. No credentials provided." msgstr "" -#: users/authentication.py:127 +#: users/authentication.py:124 msgid "Invalid token header. Sign string should not contain spaces." msgstr "" -#: users/authentication.py:134 +#: users/authentication.py:131 msgid "" "Invalid token header. Sign string should not contain invalid characters." msgstr "" -#: users/authentication.py:145 +#: users/authentication.py:142 msgid "Invalid token or cache refreshed." msgstr "" @@ -3209,7 +3219,7 @@ msgstr "" msgid "MFA code" msgstr "MFA 验证码" -#: users/forms.py:52 users/models/user.py:62 +#: users/forms.py:52 users/models/user.py:63 #: users/templates/users/_select_user_modal.html:15 #: users/templates/users/user_detail.html:87 #: users/templates/users/user_list.html:25 @@ -3237,7 +3247,7 @@ msgstr "添加到用户组" msgid "Public key should not be the same as your old one." msgstr "不能和原来的密钥相同" -#: users/forms.py:114 users/forms.py:245 users/serializers.py:49 +#: users/forms.py:114 users/forms.py:245 users/serializers/v1.py:51 msgid "Not a valid ssh public key" msgstr "ssh密钥不合法" @@ -3297,7 +3307,7 @@ msgstr "自动配置并下载SSH密钥" msgid "Paste your id_rsa.pub here." msgstr "复制你的公钥到这里" -#: users/forms.py:256 users/models/user.py:82 +#: users/forms.py:256 users/models/user.py:83 #: users/templates/users/first_login.html:42 #: users/templates/users/user_password_update.html:46 #: users/templates/users/user_profile.html:68 @@ -3311,106 +3321,106 @@ msgstr "ssh公钥" msgid "Select users" msgstr "选择用户" -#: users/models/authentication.py:36 +#: users/models/authentication.py:39 msgid "Private Token" msgstr "ssh密钥" -#: users/models/authentication.py:50 users/templates/users/user_detail.html:98 +#: users/models/authentication.py:53 users/templates/users/user_detail.html:98 msgid "Disabled" msgstr "禁用" -#: users/models/authentication.py:52 users/models/authentication.py:62 +#: users/models/authentication.py:55 users/models/authentication.py:65 msgid "-" msgstr "" -#: users/models/authentication.py:63 +#: users/models/authentication.py:66 msgid "Username/password check failed" msgstr "用户名/密码 校验失败" -#: users/models/authentication.py:64 +#: users/models/authentication.py:67 msgid "MFA authentication failed" msgstr "MFA 认证失败" -#: users/models/authentication.py:65 +#: users/models/authentication.py:68 msgid "Username does not exist" msgstr "用户名不存在" -#: users/models/authentication.py:66 +#: users/models/authentication.py:69 msgid "Password expired" msgstr "密码过期" -#: users/models/authentication.py:71 xpack/plugins/cloud/models.py:184 +#: users/models/authentication.py:74 xpack/plugins/cloud/models.py:184 #: xpack/plugins/cloud/models.py:198 msgid "Failed" msgstr "失败" -#: users/models/authentication.py:75 +#: users/models/authentication.py:78 msgid "Login type" msgstr "登录方式" -#: users/models/authentication.py:76 +#: users/models/authentication.py:79 msgid "Login ip" msgstr "登录IP" -#: users/models/authentication.py:77 +#: users/models/authentication.py:80 msgid "Login city" msgstr "登录城市" -#: users/models/authentication.py:78 +#: users/models/authentication.py:81 msgid "User agent" msgstr "Agent" -#: users/models/authentication.py:82 +#: users/models/authentication.py:85 msgid "Date login" msgstr "登录日期" -#: users/models/user.py:31 users/models/user.py:393 +#: users/models/user.py:32 users/models/user.py:418 msgid "Administrator" msgstr "管理员" -#: users/models/user.py:33 +#: users/models/user.py:34 msgid "Application" msgstr "应用程序" -#: users/models/user.py:36 users/templates/users/user_profile.html:92 +#: users/models/user.py:37 users/templates/users/user_profile.html:92 #: users/templates/users/user_profile.html:167 #: users/templates/users/user_profile.html:170 msgid "Disable" msgstr "禁用" -#: users/models/user.py:37 users/templates/users/user_profile.html:90 +#: users/models/user.py:38 users/templates/users/user_profile.html:90 #: users/templates/users/user_profile.html:174 msgid "Enable" msgstr "启用" -#: users/models/user.py:38 users/templates/users/user_profile.html:88 +#: users/models/user.py:39 users/templates/users/user_profile.html:88 msgid "Force enable" msgstr "强制启用" -#: users/models/user.py:54 users/templates/users/user_detail.html:71 +#: users/models/user.py:55 users/templates/users/user_detail.html:71 #: users/templates/users/user_profile.html:59 msgid "Email" msgstr "邮件" -#: users/models/user.py:65 +#: users/models/user.py:66 msgid "Avatar" msgstr "头像" -#: users/models/user.py:68 users/templates/users/user_detail.html:82 +#: users/models/user.py:69 users/templates/users/user_detail.html:82 msgid "Wechat" msgstr "微信" -#: users/models/user.py:97 users/templates/users/user_detail.html:103 +#: users/models/user.py:98 users/templates/users/user_detail.html:103 #: users/templates/users/user_list.html:27 #: users/templates/users/user_profile.html:100 msgid "Source" msgstr "用户来源" -#: users/models/user.py:101 +#: users/models/user.py:102 msgid "Date password last updated" msgstr "最后更新密码日期" -#: users/models/user.py:396 +#: users/models/user.py:421 msgid "Administrator is the super user of system" msgstr "Administrator是初始的超级管理员" @@ -4167,36 +4177,40 @@ msgstr "退出登录成功,返回到登录页面" msgid "Email address invalid, please input again" msgstr "邮箱地址错误,重新输入" -#: users/views/login.py:253 +#: users/views/login.py:243 +msgid "User auth from {}, go there change password" +msgstr "用户认证源来自 {}, 请去相应系统修改密码" + +#: users/views/login.py:256 msgid "Send reset password message" msgstr "发送重置密码邮件" -#: users/views/login.py:254 +#: users/views/login.py:257 msgid "Send reset password mail success, login your mail box and follow it " msgstr "" "发送重置邮件成功, 请登录邮箱查看, 按照提示操作 (如果没收到,请等待3-5分钟)" -#: users/views/login.py:267 +#: users/views/login.py:270 msgid "Reset password success" msgstr "重置密码成功" -#: users/views/login.py:268 +#: users/views/login.py:271 msgid "Reset password success, return to login page" msgstr "重置密码成功,返回到登录页面" -#: users/views/login.py:284 users/views/login.py:300 +#: users/views/login.py:286 users/views/login.py:302 msgid "Token invalid or expired" msgstr "Token错误或失效" -#: users/views/login.py:296 +#: users/views/login.py:298 msgid "Password not same" msgstr "密码不一致" -#: users/views/login.py:306 users/views/user.py:126 users/views/user.py:420 +#: users/views/login.py:308 users/views/user.py:126 users/views/user.py:420 msgid "* Your password does not meet the requirements" msgstr "* 您的密码不符合要求" -#: users/views/login.py:344 +#: users/views/login.py:346 msgid "First login" msgstr "首次登陆" diff --git a/apps/users/api/user.py b/apps/users/api/user.py index ca0e5a837..b343dca78 100644 --- a/apps/users/api/user.py +++ b/apps/users/api/user.py @@ -32,7 +32,7 @@ __all__ = [ class UserViewSet(IDInFilterMixin, BulkModelViewSet): filter_fields = ('username', 'email', 'name', 'id') search_fields = filter_fields - queryset = User.objects.all() + queryset = User.objects.exclude(role=User.ROLE_APP) serializer_class = UserSerializer permission_classes = (IsOrgAdmin,) pagination_class = LimitOffsetPagination diff --git a/apps/users/views/login.py b/apps/users/views/login.py index 6bac250e0..519445895 100644 --- a/apps/users/views/login.py +++ b/apps/users/views/login.py @@ -237,8 +237,11 @@ class UserForgotPasswordView(TemplateView): email = request.POST.get('email') user = get_object_or_none(User, email=email) if not user: - return self.get(request, errors=_('Email address invalid, ' - 'please input again')) + error = _('Email address invalid, please input again') + return self.get(request, errors=error) + elif not user.is_local: + error = _('User auth from {}, go there change password'.format(user.source)) + return self.get(request, errors=error) else: send_reset_password_mail(user) return HttpResponseRedirect( @@ -270,8 +273,7 @@ class UserResetPasswordSuccessView(TemplateView): 'auto_redirect': True, } kwargs.update(context) - return super()\ - .get_context_data(**kwargs) + return super().get_context_data(**kwargs) class UserResetPasswordView(TemplateView):