fix: 作业命令用户隔离执行

pull/12859/head
wangruidong 2024-03-19 10:41:43 +08:00 committed by Bryan
parent c4d99ed8e2
commit eb9f261459
5 changed files with 49 additions and 36 deletions

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d04781f4f0b0de3ac5f707febb222e239553d6103bca0cec41ab2fd5ab044571
size 173799
oid sha256:1e0d36c8c54579103b6b550971fa4282581eb503c9499df55e37b0164391b607
size 173954

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-27 16:09+0800\n"
"POT-Creation-Date: 2024-03-19 11:12+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -1749,7 +1749,7 @@ msgid "Domain"
msgstr "ドメイン"
#: assets/models/asset/common.py:165 assets/models/automations/base.py:18
#: assets/models/cmd_filter.py:32 assets/models/node.py:549
#: assets/models/cmd_filter.py:32 assets/models/node.py:553
#: perms/models/asset_permission.py:72 perms/serializers/permission.py:37
#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:330
msgid "Node"
@ -1889,7 +1889,7 @@ msgstr "デフォルトアセットグループ"
msgid "System"
msgstr "システム"
#: assets/models/label.py:19 assets/models/node.py:535
#: assets/models/label.py:19 assets/models/node.py:539
#: assets/serializers/cagegory.py:11 assets/serializers/cagegory.py:18
#: assets/serializers/cagegory.py:24
#: authentication/models/connection_token.py:29
@ -1908,27 +1908,27 @@ msgstr "値"
msgid "Label"
msgstr "ラベル"
#: assets/models/node.py:165
#: assets/models/node.py:169
msgid "New node"
msgstr "新しいノード"
#: assets/models/node.py:463 audits/backends/db.py:65 audits/backends/db.py:66
#: assets/models/node.py:467 audits/backends/db.py:65 audits/backends/db.py:66
msgid "empty"
msgstr "空"
#: assets/models/node.py:534 perms/models/perm_node.py:28
#: assets/models/node.py:538 perms/models/perm_node.py:28
msgid "Key"
msgstr "キー"
#: assets/models/node.py:536 assets/serializers/node.py:20
#: assets/models/node.py:540 assets/serializers/node.py:20
msgid "Full value"
msgstr "フルバリュー"
#: assets/models/node.py:540 perms/models/perm_node.py:30
#: assets/models/node.py:544 perms/models/perm_node.py:30
msgid "Parent key"
msgstr "親キー"
#: assets/models/node.py:552
#: assets/models/node.py:556
msgid "Can match node"
msgstr "ノードを一致させることができます"
@ -4098,27 +4098,27 @@ msgstr "タスクを作成中で、中断できません。後でもう一度お
msgid "Currently playbook is being used in a job"
msgstr "現在プレイブックは1つのジョブで使用されています"
#: ops/api/playbook.py:93
#: ops/api/playbook.py:97
msgid "Unsupported file content"
msgstr "サポートされていないファイルの内容"
#: ops/api/playbook.py:95 ops/api/playbook.py:141 ops/api/playbook.py:189
#: ops/api/playbook.py:99 ops/api/playbook.py:145 ops/api/playbook.py:193
msgid "Invalid file path"
msgstr "無効なファイルパス"
#: ops/api/playbook.py:167
#: ops/api/playbook.py:171
msgid "This file can not be rename"
msgstr "ファイル名を変更することはできません"
#: ops/api/playbook.py:186
#: ops/api/playbook.py:190
msgid "File already exists"
msgstr "ファイルは既に存在します。"
#: ops/api/playbook.py:204
#: ops/api/playbook.py:208
msgid "File key is required"
msgstr "ファイルキーこのフィールドは必須です"
#: ops/api/playbook.py:207
#: ops/api/playbook.py:211
msgid "This file can not be delete"
msgstr "このファイルを削除できません"
@ -4401,6 +4401,10 @@ msgstr "終了しました"
msgid "Time cost"
msgstr "時を過ごす"
#: ops/serializers/job.py:87
msgid "You do not have permission for the current job."
msgstr "あなたは現在のジョブの権限を持っていません。"
#: ops/tasks.py:37
msgid "Run ansible task"
msgstr "Ansible タスクを実行する"
@ -8646,7 +8650,7 @@ msgstr "そして"
msgid "Or"
msgstr "または"
#: xpack/plugins/cloud/manager.py:57
#: xpack/plugins/cloud/manager.py:56
msgid "Account unavailable"
msgstr "利用できないアカウント"

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e66a6fa05d25f1c502f95001b5ff0d0a310affd32eac939fd7b840845028074f
size 142298
oid sha256:931e599c8b599a5b58754a6e64cb9aa0db3d69ed76a703d30fb455e9cc10996c
size 142396

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: JumpServer 0.3.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-27 16:09+0800\n"
"POT-Creation-Date: 2024-03-19 11:12+0800\n"
"PO-Revision-Date: 2021-05-20 10:54+0800\n"
"Last-Translator: ibuler <ibuler@qq.com>\n"
"Language-Team: JumpServer team<ibuler@qq.com>\n"
@ -1741,7 +1741,7 @@ msgid "Domain"
msgstr "网域"
#: assets/models/asset/common.py:165 assets/models/automations/base.py:18
#: assets/models/cmd_filter.py:32 assets/models/node.py:549
#: assets/models/cmd_filter.py:32 assets/models/node.py:553
#: perms/models/asset_permission.py:72 perms/serializers/permission.py:37
#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:330
msgid "Node"
@ -1881,7 +1881,7 @@ msgstr "默认资产组"
msgid "System"
msgstr "系统"
#: assets/models/label.py:19 assets/models/node.py:535
#: assets/models/label.py:19 assets/models/node.py:539
#: assets/serializers/cagegory.py:11 assets/serializers/cagegory.py:18
#: assets/serializers/cagegory.py:24
#: authentication/models/connection_token.py:29
@ -1900,27 +1900,27 @@ msgstr "值"
msgid "Label"
msgstr "标签"
#: assets/models/node.py:165
#: assets/models/node.py:169
msgid "New node"
msgstr "新节点"
#: assets/models/node.py:463 audits/backends/db.py:65 audits/backends/db.py:66
#: assets/models/node.py:467 audits/backends/db.py:65 audits/backends/db.py:66
msgid "empty"
msgstr "空"
#: assets/models/node.py:534 perms/models/perm_node.py:28
#: assets/models/node.py:538 perms/models/perm_node.py:28
msgid "Key"
msgstr "键"
#: assets/models/node.py:536 assets/serializers/node.py:20
#: assets/models/node.py:540 assets/serializers/node.py:20
msgid "Full value"
msgstr "全称"
#: assets/models/node.py:540 perms/models/perm_node.py:30
#: assets/models/node.py:544 perms/models/perm_node.py:30
msgid "Parent key"
msgstr "ssh私钥"
#: assets/models/node.py:552
#: assets/models/node.py:556
msgid "Can match node"
msgstr "可以匹配节点"
@ -4047,27 +4047,27 @@ msgstr "正在创建任务,无法中断,请稍后重试。"
msgid "Currently playbook is being used in a job"
msgstr "当前 playbook 正在作业中使用"
#: ops/api/playbook.py:93
#: ops/api/playbook.py:97
msgid "Unsupported file content"
msgstr "不支持的文件内容"
#: ops/api/playbook.py:95 ops/api/playbook.py:141 ops/api/playbook.py:189
#: ops/api/playbook.py:99 ops/api/playbook.py:145 ops/api/playbook.py:193
msgid "Invalid file path"
msgstr "无效的文件路径"
#: ops/api/playbook.py:167
#: ops/api/playbook.py:171
msgid "This file can not be rename"
msgstr "该文件不能重命名"
#: ops/api/playbook.py:186
#: ops/api/playbook.py:190
msgid "File already exists"
msgstr "文件已存在"
#: ops/api/playbook.py:204
#: ops/api/playbook.py:208
msgid "File key is required"
msgstr "文件密钥该字段是必填项。"
#: ops/api/playbook.py:207
#: ops/api/playbook.py:211
msgid "This file can not be delete"
msgstr "无法删除此文件"
@ -4350,6 +4350,10 @@ msgstr "是否完成"
msgid "Time cost"
msgstr "花费时间"
#: ops/serializers/job.py:87
msgid "You do not have permission for the current job."
msgstr "你没有当前作业的权限。"
#: ops/tasks.py:37
msgid "Run ansible task"
msgstr "运行 Ansible 任务"
@ -8522,7 +8526,7 @@ msgstr "与"
msgid "Or"
msgstr "或"
#: xpack/plugins/cloud/manager.py:57
#: xpack/plugins/cloud/manager.py:56
msgid "Account unavailable"
msgstr "账号无效"

View File

@ -81,3 +81,8 @@ class JobExecutionSerializer(BulkOrgResourceModelSerializer):
fields = read_only_fields + [
"job", "parameters", "creator"
]
def validate_job(self, job_obj):
if job_obj.creator != self.context['request'].user:
raise serializers.ValidationError(_("You do not have permission for the current job."))
return job_obj