From 16864ca34e0290e6502e0cabeda3aa37939887a4 Mon Sep 17 00:00:00 2001 From: BaiJiangJie <32935519+BaiJiangJie@users.noreply.github.com> Date: Mon, 9 Dec 2019 11:50:52 +0800 Subject: [PATCH] =?UTF-8?q?[Update]=20=E7=94=A8=E6=88=B7=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=A7=BB=E9=99=A4=E6=93=8D=E4=BD=9C=EF=BC=88?= =?UTF-8?q?=E5=9C=A8=E5=85=B6=E4=BB=96=E7=BB=84=E7=BB=87=E4=B8=AD=EF=BC=89?= =?UTF-8?q?=20(#3513)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [Update] 用户列表添加移除操作(在其他组织中) * [Update] 用户列表添加移除操作(在其他组织中)2 --- apps/common/permissions.py | 12 +- apps/locale/zh/LC_MESSAGES/django.mo | Bin 83900 -> 84224 bytes apps/locale/zh/LC_MESSAGES/django.po | 135 +++++++++++++--------- apps/static/js/jumpserver.js | 6 +- apps/templates/_foot_js.html | 2 +- apps/users/api/user.py | 6 + apps/users/models/user.py | 10 ++ apps/users/templates/users/user_list.html | 64 +++++++--- 8 files changed, 149 insertions(+), 86 deletions(-) diff --git a/apps/common/permissions.py b/apps/common/permissions.py index 12bc5c6d4..43aa3fe3f 100644 --- a/apps/common/permissions.py +++ b/apps/common/permissions.py @@ -149,11 +149,7 @@ class CanUpdateDeleteUser(permissions.BasePermission): return False if obj.is_super_auditor: return False - if obj.is_org_admin: - return False - if len(obj.audit_orgs) > 1: - return False - if len(obj.user_orgs) > 1: + if obj.can_admin_current_org: return False return True @@ -174,12 +170,6 @@ class CanUpdateDeleteUser(permissions.BasePermission): return False if obj.is_super_auditor: return False - if obj.is_org_admin: - return False - if len(obj.audit_orgs) > 1: - return False - if len(obj.user_orgs) > 1: - return False return True def has_object_permission(self, request, view, obj): diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index 9be636b53bcc4287f7b1e8bc83b476d49b0a999d..1c25bc1068a001db43941804e5b2f6919312ce85 100644 GIT binary patch delta 24700 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 Q*52E&aC7rw0nLN{2QcW==Kufz delta 24440 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\n" "Language-Team: Jumpserver team\n" @@ -146,7 +146,7 @@ msgstr "资产" #: terminal/models.py:350 terminal/templates/terminal/base_storage_list.html:32 #: terminal/templates/terminal/terminal_detail.html:43 #: terminal/templates/terminal/terminal_list.html:30 users/forms.py:162 -#: users/models/group.py:14 users/models/user.py:433 +#: users/models/group.py:14 users/models/user.py:443 #: users/templates/users/_select_user_modal.html:13 #: users/templates/users/user_asset_permission.html:54 #: users/templates/users/user_asset_permission.html:174 @@ -202,7 +202,7 @@ msgstr "参数" #: orgs/models.py:16 perms/models/base.py:54 #: perms/templates/perms/asset_permission_detail.html:93 #: perms/templates/perms/remote_app_permission_detail.html:85 -#: users/models/user.py:474 users/serializers/group.py:32 +#: users/models/user.py:484 users/serializers/group.py:32 #: users/templates/users/user_detail.html:112 #: xpack/plugins/change_auth_plan/models.py:109 #: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_detail.html:113 @@ -266,7 +266,7 @@ msgstr "创建日期" #: terminal/models.py:357 terminal/templates/terminal/base_storage_list.html:34 #: terminal/templates/terminal/terminal_detail.html:63 #: tickets/templates/tickets/ticket_detail.html:104 users/models/group.py:15 -#: users/models/user.py:466 users/templates/users/user_detail.html:130 +#: users/models/user.py:476 users/templates/users/user_detail.html:130 #: users/templates/users/user_group_detail.html:62 #: users/templates/users/user_group_list.html:37 #: users/templates/users/user_profile.html:138 @@ -361,7 +361,7 @@ msgstr "重置" #: users/templates/users/_user.html:52 #: users/templates/users/forgot_password.html:42 #: users/templates/users/user_bulk_update.html:24 -#: users/templates/users/user_list.html:57 +#: users/templates/users/user_list.html:61 #: users/templates/users/user_password_update.html:76 #: users/templates/users/user_profile_update.html:68 #: users/templates/users/user_pubkey_update.html:81 @@ -431,8 +431,8 @@ msgstr "详情" #: users/templates/users/user_group_list.html:20 #: users/templates/users/user_group_list.html:71 #: users/templates/users/user_list.html:20 -#: users/templates/users/user_list.html:103 -#: users/templates/users/user_list.html:106 +#: users/templates/users/user_list.html:107 +#: users/templates/users/user_list.html:110 #: users/templates/users/user_profile.html:181 #: users/templates/users/user_profile.html:191 #: users/templates/users/user_profile.html:201 @@ -477,8 +477,8 @@ msgstr "更新" #: users/templates/users/user_detail.html:31 #: users/templates/users/user_group_detail.html:27 #: users/templates/users/user_group_list.html:73 -#: users/templates/users/user_list.html:111 -#: users/templates/users/user_list.html:115 +#: users/templates/users/user_list.html:117 +#: users/templates/users/user_list.html:121 #: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_detail.html:33 #: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_list.html:58 #: xpack/plugins/cloud/templates/cloud/account_detail.html:27 @@ -719,7 +719,7 @@ msgstr "SSH网关,支持代理SSH,RDP和VNC" #: ops/models/adhoc.py:189 perms/templates/perms/asset_permission_list.html:205 #: perms/templates/perms/remote_app_permission_user.html:50 #: settings/templates/settings/_ldap_list_users_modal.html:31 users/forms.py:14 -#: users/forms.py:161 users/models/user.py:431 +#: users/forms.py:161 users/models/user.py:441 #: users/templates/users/_select_user_modal.html:14 #: users/templates/users/user_detail.html:68 #: users/templates/users/user_list.html:36 @@ -760,7 +760,7 @@ msgstr "密码" #: assets/forms/user.py:30 assets/serializers/asset_user.py:71 #: assets/templates/assets/_asset_user_auth_update_modal.html:27 -#: users/models/user.py:460 +#: users/models/user.py:470 msgid "Private key" msgstr "ssh私钥" @@ -975,7 +975,7 @@ msgstr "带宽" msgid "Contact" msgstr "联系人" -#: assets/models/cluster.py:22 users/models/user.py:452 +#: assets/models/cluster.py:22 users/models/user.py:462 #: users/templates/users/user_detail.html:77 msgid "Phone" msgstr "手机" @@ -1001,7 +1001,7 @@ msgid "Default" msgstr "默认" #: assets/models/cluster.py:36 assets/models/label.py:14 -#: users/models/user.py:575 +#: users/models/user.py:585 msgid "System" msgstr "系统" @@ -1142,7 +1142,7 @@ msgstr "默认资产组" #: tickets/models/ticket.py:128 tickets/templates/tickets/ticket_detail.html:32 #: tickets/templates/tickets/ticket_list.html:34 #: tickets/templates/tickets/ticket_list.html:103 users/forms.py:339 -#: users/models/user.py:148 users/models/user.py:164 users/models/user.py:563 +#: users/models/user.py:148 users/models/user.py:164 users/models/user.py:573 #: users/serializers/group.py:21 #: users/templates/users/user_asset_permission.html:55 #: users/templates/users/user_asset_permission.html:84 @@ -1303,7 +1303,7 @@ msgid "Backend" msgstr "后端" #: assets/serializers/asset_user.py:67 users/forms.py:282 -#: users/models/user.py:463 users/templates/users/first_login.html:42 +#: users/models/user.py:473 users/templates/users/first_login.html:42 #: users/templates/users/user_password_update.html:49 #: users/templates/users/user_profile.html:69 #: users/templates/users/user_profile_update.html:46 @@ -1727,7 +1727,7 @@ msgstr "选择节点" #: users/templates/users/user_detail.html:548 #: users/templates/users/user_group_create_update.html:28 #: users/templates/users/user_group_list.html:120 -#: users/templates/users/user_list.html:256 +#: users/templates/users/user_list.html:276 #: xpack/plugins/cloud/templates/cloud/account_create_update.html:34 #: xpack/plugins/cloud/templates/cloud/sync_instance_task_create_update.html:54 #: xpack/plugins/gathered_user/templates/gathered_user/task_create_update.html:45 @@ -1784,8 +1784,8 @@ msgstr "创建管理用户" #: assets/templates/assets/system_user_list.html:217 #: users/templates/users/user_group_list.html:164 #: users/templates/users/user_group_list.html:195 -#: users/templates/users/user_list.html:165 -#: users/templates/users/user_list.html:197 +#: users/templates/users/user_list.html:184 +#: users/templates/users/user_list.html:216 #: xpack/plugins/vault/templates/vault/vault.html:200 msgid "Please select file" msgstr "选择文件" @@ -1875,12 +1875,12 @@ msgid "Hardware" msgstr "硬件" #: assets/templates/assets/asset_list.html:109 -#: users/templates/users/user_list.html:50 +#: users/templates/users/user_list.html:51 msgid "Delete selected" msgstr "批量删除" #: assets/templates/assets/asset_list.html:110 -#: users/templates/users/user_list.html:51 +#: users/templates/users/user_list.html:55 msgid "Update selected" msgstr "批量更新" @@ -1889,12 +1889,12 @@ msgid "Remove from this node" msgstr "从节点移除" #: assets/templates/assets/asset_list.html:112 -#: users/templates/users/user_list.html:52 +#: users/templates/users/user_list.html:56 msgid "Deactive selected" msgstr "禁用所选" #: assets/templates/assets/asset_list.html:113 -#: users/templates/users/user_list.html:53 +#: users/templates/users/user_list.html:57 msgid "Active selected" msgstr "激活所选" @@ -1928,7 +1928,7 @@ msgstr "显示所有子节点资产" #: users/templates/users/user_detail.html:474 #: users/templates/users/user_detail.html:542 #: users/templates/users/user_group_list.html:114 -#: users/templates/users/user_list.html:250 +#: users/templates/users/user_list.html:270 #: xpack/plugins/interface/templates/interface/interface.html:97 msgid "Are you sure?" msgstr "你确认吗?" @@ -1943,7 +1943,7 @@ msgstr "删除选择资产" #: users/templates/users/user_detail.html:478 #: users/templates/users/user_detail.html:546 #: users/templates/users/user_group_list.html:118 -#: users/templates/users/user_list.html:254 +#: users/templates/users/user_list.html:274 #: xpack/plugins/interface/templates/interface/interface.html:101 msgid "Cancel" msgstr "取消" @@ -2326,7 +2326,7 @@ msgstr "Agent" #: audits/models.py:86 audits/templates/audits/login_log_list.html:62 #: authentication/templates/authentication/_mfa_confirm_modal.html:14 -#: users/forms.py:194 users/models/user.py:455 +#: users/forms.py:194 users/models/user.py:465 #: users/templates/users/first_login.html:45 msgid "MFA" msgstr "MFA" @@ -2581,14 +2581,14 @@ msgid "Show" msgstr "显示" #: authentication/templates/authentication/_access_key_modal.html:66 -#: users/models/user.py:355 users/templates/users/user_profile.html:94 +#: users/models/user.py:365 users/templates/users/user_profile.html:94 #: users/templates/users/user_profile.html:163 #: users/templates/users/user_profile.html:166 msgid "Disable" msgstr "禁用" #: authentication/templates/authentication/_access_key_modal.html:67 -#: users/models/user.py:356 users/templates/users/user_profile.html:92 +#: users/models/user.py:366 users/templates/users/user_profile.html:92 #: users/templates/users/user_profile.html:170 msgid "Enable" msgstr "启用" @@ -3235,7 +3235,7 @@ msgstr "提示:RDP 协议不支持单独控制上传或下载文件" #: perms/templates/perms/asset_permission_list.html:206 #: perms/templates/perms/remote_app_permission_list.html:16 #: templates/_nav.html:21 users/forms.py:313 users/models/group.py:26 -#: users/models/user.py:439 users/templates/users/_select_user_modal.html:16 +#: users/models/user.py:449 users/templates/users/_select_user_modal.html:16 #: users/templates/users/user_asset_permission.html:56 #: users/templates/users/user_asset_permission.html:87 #: users/templates/users/user_detail.html:222 @@ -3283,7 +3283,7 @@ msgstr "资产授权" #: perms/models/base.py:53 #: perms/templates/perms/asset_permission_detail.html:85 #: perms/templates/perms/remote_app_permission_detail.html:77 -#: users/models/user.py:471 users/templates/users/user_detail.html:108 +#: users/models/user.py:481 users/templates/users/user_detail.html:108 #: users/templates/users/user_profile.html:120 msgid "Date expired" msgstr "失效日期" @@ -3858,7 +3858,7 @@ msgid "Refresh cache" msgstr "刷新缓存" #: settings/templates/settings/_ldap_list_users_modal.html:33 -#: users/models/user.py:435 users/templates/users/user_detail.html:72 +#: users/models/user.py:445 users/templates/users/user_detail.html:72 #: users/templates/users/user_profile.html:59 msgid "Email" msgstr "邮件" @@ -4827,11 +4827,11 @@ msgstr "工单列表" msgid "Ticket detail" msgstr "工单详情" -#: users/api/user.py:174 +#: users/api/user.py:180 msgid "Could not reset self otp, use profile reset instead" msgstr "不能再该页面重置MFA, 请去个人信息页面重置" -#: users/forms.py:47 users/models/user.py:443 +#: users/forms.py:47 users/models/user.py:453 #: users/templates/users/_select_user_modal.html:15 #: users/templates/users/user_detail.html:88 #: users/templates/users/user_list.html:37 @@ -4839,7 +4839,7 @@ msgstr "不能再该页面重置MFA, 请去个人信息页面重置" msgid "Role" msgstr "角色" -#: users/forms.py:51 users/models/user.py:478 +#: users/forms.py:51 users/models/user.py:488 #: users/templates/users/user_detail.html:104 #: users/templates/users/user_list.html:39 #: users/templates/users/user_profile.html:102 @@ -4957,7 +4957,7 @@ msgstr "选择用户" msgid "User auth from {}, go there change password" msgstr "用户认证源来自 {}, 请去相应系统修改密码" -#: users/models/user.py:147 users/models/user.py:571 +#: users/models/user.py:147 users/models/user.py:581 msgid "Administrator" msgstr "管理员" @@ -4978,27 +4978,27 @@ msgstr "组织管理员" msgid "Org auditor" msgstr "组织审计员" -#: users/models/user.py:357 users/templates/users/user_profile.html:90 +#: users/models/user.py:367 users/templates/users/user_profile.html:90 msgid "Force enable" msgstr "强制启用" -#: users/models/user.py:423 +#: users/models/user.py:433 msgid "Local" msgstr "数据库" -#: users/models/user.py:446 +#: users/models/user.py:456 msgid "Avatar" msgstr "头像" -#: users/models/user.py:449 users/templates/users/user_detail.html:83 +#: users/models/user.py:459 users/templates/users/user_detail.html:83 msgid "Wechat" msgstr "微信" -#: users/models/user.py:482 +#: users/models/user.py:492 msgid "Date password last updated" msgstr "最后更新密码日期" -#: users/models/user.py:574 +#: users/models/user.py:584 msgid "Administrator is the super user of system" msgstr "Administrator是初始的超级管理员" @@ -5372,28 +5372,52 @@ msgstr "用户组删除" msgid "UserGroup Deleting failed." msgstr "用户组删除失败" -#: users/templates/users/user_list.html:251 +#: users/templates/users/user_list.html:53 +msgid "Remove selected" +msgstr "批量移除" + +#: users/templates/users/user_list.html:129 +#: users/templates/users/user_list.html:133 +msgid "Remove" +msgstr "移除" + +#: users/templates/users/user_list.html:271 msgid "This will delete the selected users !!!" msgstr "删除选中用户 !!!" -#: users/templates/users/user_list.html:262 -msgid "User Deleted." -msgstr "已被删除" +#: users/templates/users/user_list.html:282 +msgid "User Deleting failed." +msgstr "用户删除失败" -#: users/templates/users/user_list.html:263 -#: users/templates/users/user_list.html:267 +#: users/templates/users/user_list.html:283 msgid "User Delete" msgstr "删除" -#: users/templates/users/user_list.html:266 -msgid "User Deleting failed." -msgstr "用户删除失败" +#: users/templates/users/user_list.html:305 +msgid "This will remove the selected users !!" +msgstr "移除选中用户 !!!" + +#: users/templates/users/user_list.html:307 +msgid "User Removing failed." +msgstr "用户移除失败" + +#: users/templates/users/user_list.html:308 +msgid "User Remove" +msgstr "用户移除" -#: users/templates/users/user_list.html:327 +#: users/templates/users/user_list.html:357 +msgid "Are you sure about removing it?" +msgstr "您确定移除吗?" + +#: users/templates/users/user_list.html:358 +msgid "Remove the success" +msgstr "移除成功" + +#: users/templates/users/user_list.html:363 msgid "User is expired" msgstr "用户已失效" -#: users/templates/users/user_list.html:330 +#: users/templates/users/user_list.html:366 msgid "User is inactive" msgstr "用户已禁用" @@ -6503,6 +6527,9 @@ msgstr "密码匣子" msgid "vault create" msgstr "创建" +#~ msgid "User Deleted." +#~ msgstr "已被删除" + #~ msgid "Search no entry matched in ou {}" #~ msgstr "在ou:{}中没有匹配条目" @@ -6556,9 +6583,6 @@ msgstr "创建" #~ msgid "Delete failed" #~ msgstr "删除失败" -#~ msgid "Are you sure about deleting it?" -#~ msgstr "您确定删除吗?" - #~ msgid "The connection fails" #~ msgstr "连接失败" @@ -6588,9 +6612,6 @@ msgstr "创建" #~ msgid "Approve selected" #~ msgstr "同意所选" -#~ msgid "Reject selected" -#~ msgstr "拒绝所选" - #~ msgid "" #~ "\n" #~ "
\n" diff --git a/apps/static/js/jumpserver.js b/apps/static/js/jumpserver.js index 4d695e65b..2addd92fb 100644 --- a/apps/static/js/jumpserver.js +++ b/apps/static/js/jumpserver.js @@ -316,7 +316,7 @@ function requestApi(props) { } // Sweet Alert for Delete -function objectDelete(obj, name, url, redirectTo) { +function objectDelete(obj, name, url, redirectTo, title, success_message) { function doDelete() { var body = {}; var success = function () { @@ -335,14 +335,14 @@ function objectDelete(obj, name, url, redirectTo) { url: url, body: JSON.stringify(body), method: 'DELETE', - success_message: gettext("Delete the success"), + success_message: success_message || gettext("Delete the success"), success: success, error: fail }); } swal({ - title: gettext('Are you sure about deleting it?'), + title: title || gettext('Are you sure about deleting it?'), text: " [" + name + "] ", type: "warning", showCancelButton: true, diff --git a/apps/templates/_foot_js.html b/apps/templates/_foot_js.html index 3c570aef2..22161696f 100644 --- a/apps/templates/_foot_js.html +++ b/apps/templates/_foot_js.html @@ -7,7 +7,7 @@ - +