From 73f2022ff687b2b0fdf9f84455b1a0ef2c2a1295 Mon Sep 17 00:00:00 2001 From: "fghbng@qq.com" Date: Thu, 20 May 2021 11:37:09 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=85=A8=E5=B1=80?= =?UTF-8?q?=E7=BB=84=E7=BB=87=E4=BB=AA=E8=A1=A8=E7=9B=98=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=80=BB=E6=95=B0=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/orgs/caches.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/orgs/caches.py b/apps/orgs/caches.py index 57a20bd3c..8b5a61b51 100644 --- a/apps/orgs/caches.py +++ b/apps/orgs/caches.py @@ -79,7 +79,7 @@ class OrgResourceStatisticsCache(OrgRelatedCache): def compute_users_amount(self): if self.org.is_root(): - users_amount = User.objects.exclude(role='APP').count() + users_amount = User.objects.exclude(role='App').count() else: users_amount = OrganizationMember.objects.values( 'user_id' From 8ae03e4374a625fafbcfbe8fbfb2040d631d2629 Mon Sep 17 00:00:00 2001 From: "fghbng@qq.com" Date: Thu, 20 May 2021 11:03:07 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=B5=84=E4=BA=A7?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E5=AD=97=E6=AE=B5=E5=90=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/locale/zh/LC_MESSAGES/django.mo | Bin 75231 -> 75257 bytes apps/locale/zh/LC_MESSAGES/django.po | 10 +++++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index 4056fe77cd908f585530467c6701dc86d5e84f7d..e211f5802e8b92099dafde9f803fbf2208b5b47e 100644 GIT binary patch delta 8218 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 delta 8191 zcmXZhdw|bX{>SmpT$WGSD>rQOy~4BP5Q zDWqEFm!`1QL`ss4B19L;NXlK2Yrp5qdHwbHyx-@1&Uv5nIiJsb)446l`?e&%_H%aJ zAR&rst&5`L*l~Rn^@yUV`GzQpaWW3a%a}p?u=k^=ZekQY`au*`AYSxg6#bR!^&8M z)p5Puh1tYM++JZ@=wAnO$v4L9us3GmbZmr6FcUwzKVJ%Yux@Ws=%#|k2=1D4anF2BFs~O8n6Es zoJ(Ddbm9?rm}wW;V$>#YMosuNW?-qkgqk>gPsm@7T1ZdFqwEu?`xl}f){>YD6|mBY z60AqO3ANJ0sN-|SarWMj&$De&19oxT!wy0fG}7@5)P#ko!WUr@#;e`oEmXyu93QYJ zFq8ZxY=#+MMp1q2gxBCm)SLNFR3Xbzg%{bkQH6Zu_CwAeL(X0tT?iLZxv#=Fm z4(e3rqXxPa^|t)Z-fPF%Cs5z4xpuMhMX2#g>?Zq}Wd7(&Ck~dkXQJ+3g!<|(MNPcT`8}w9`|TNwwY3%Yg%#GcdA0*;fZnKq2RlE^j>p#I z|AyMy^>zQQ}wYTs>33&%DNpa1gThL$R*rDdZ^YU+G*d$aSmqn36Ts{bhG$2p#anrXW8 za~&_RFQLBb#ouz&yK?cRJLY^BO3g(Ld^2hZT~Pz}cRbwfzDVvwZbu|hxH`t#^+FlEVHi{zSpE`tliy1Mjmm? zZ>SL}l!iMR+Uslw)QET3KByOE5UPSdIX?k4V~q9iAGXMTTFM@3pi?B|In)i&!LZ2{ zQH5P^yP*pEJ*xjWRR2l#N$2OI3R&p<3i}`XA?DD&<6z9+SuW1Hp~d%M;P$pNYJxlL zKsy3&A^(u$)u=+>$L6@p@zsYyoQc|@?wEoDQ9Cj;=0cTDb;DfLKnv^&)QZ=k3i$#x zz(L1H9G}B%^3e~WUtQEG$;SrR2J>(*s=&XY-t_n_E*f!h64No`aG3B~)amJlDrkru zYo}o?^3PydEJhVrVn4RKQ3aRUpRg?PsSwA}MJ_Z!(vM-lbkx>dhw9iDHSiF}f3^>! z29E6vI}6o+9yZ1oP&=^M`D6A1rgHwGGCzegkb!s6u{SQnrTBkXa3t)=Nn7q{m>>sL zKy$}!9Cvcu9rfr2pcXjR`Du0zrZ9i>92Z%*4D}^=AN7at8`Rl2gPJJiSeUpXmLtw| z+z{38I@CC~I39|+??L+rYG)>+3VRA;ZShifD6(&&I=*8!qYl?DRR1&1N5{j&6>S!3 z!hF626Sr;u?DhdlT0<5w>)ceGE16 z)2Iob!548AYW%(@L;EN@)=oId{_Dn=L;=pg?)VWl!)m9(L>*B((g)RlsN<1#9O{ux zal8Pv;+IhUU$blMyO>LUW6VVzE>2(>Og$Zbac7`@S0$|E6FZb>TuQyc4wp{ZSJSMGZ6>Q}J=fZ;xVY;`7)DTU-kL2cYi1 z8`b|WSQBHcg$s0{Eqc=(HrnlWA8O(w_O$coQ3GFnIhctWCm%J@&GvTGGw+WYXEf@= zHqLRp*cZ!DkDv%Oz$W{-+rLHa%ny!F*>kA=(Qjdbil{=W*#@XWTe-a}YMh>!uJ6wP zH;h3IG~Paey76h$fJ;zYR_u5is^ER7e!rr=c;%ynE92y29pZM52cpIq;dngO()<4e z7aHh!)E2FEhjsS9b`Pq6?;R&5g#M|h!qaUIYRj8D?t+@Qj~#|8^dYRy{Ly?abZY;N zI-ToK@9QDdz!`~QfQG07uSex?a(o+VOYgLU>~Q-4YJn3__sv0#^Bl(df-U1hTeuoE z&}LM}9jH(8e&-K6e;T#5QBvrajd_H5SRV(X+8;%Y_rItKm)RB07bhjeS6+t_H|$1j z)i;ih*V}4>9qMHJq9z=U8hE1fGqED^GpIl3%j_y!V&lzR=&#aF)WG{um7cKYZSvLO zkXAw!THiKBP23z+_|2%pb|?M`?{mBzHSSOL7i64v(QjPnkfoFf1Er$ghT5oKHqB83 z_H+9Kc2eQkHsPNDUUcRa)UU|Zs5{<4mAcb@g<9eP)RIr5KK_?cOUNr5+S{V;zs>#; zRr(~jtFtz5|Gqx!W%{rD4cNx{PPQ-BCO;fC z&lEckb>H&3zF38t=xx+M8|=2idTn#A{4;$T|KCGH)j-|a3Ux<&)X%iesBgyub`EMu zZ=mk`1Z&`rs2LI~CS3VJn~M5|<)X&95wmePYOkhM^h26QLN~tPjzy>mcRN0hdb&B4 z!dJL6_97mQU9be(VsdJDoo;92ME%BC zz=Z~`mKjcKEmX%m`VLf^bR+Xgk!EqE*5hI+QMoL`O_u*j}O4ZH!hW83iW_#NuhkFFisUqTgLjOzD3 z#`>J^a^gq4hxig|1$SqKi6+>or~&?A7upr50^UKLfz6K3qQ*(C6WX&-_vfM((5?>e zzbffOLLK|#P52<{u&qQ5yv2Tjy73@tXO5$Gs%3Wgc(+5fw@2OA4b|Sy4z|Pae)6NT z<1q1V5-Q{b>c*tHAx=ZBD97G~Dm1qLLLIhMsJ|Ycq6+vNHO@EK9e+X<(xzVcKD5V% z#A9ME^x>F~OK=Tl;_vH+Q#&4Ys^_A%ZVjr?O{h=mUd+X$oRGf;TM`$bPW{8q&q2L4 zOHuc|g(@&Uz=bM1fxN=eS=5A;8ip0MM6IX|YT^Rh7d600RAJ*#{idPD`ybSf%txKE z1*m>2QH7KsKYkLU9mShFERL%W>|D@0zelh9P6c(l^=jASwq}ER_3T_YdEI-3Y5i^} qp0hq9GwI;UXNp(st=vKvYu1-f_^oov_w!#nJahJ%jadn;%KSg?*4iro diff --git a/apps/locale/zh/LC_MESSAGES/django.po b/apps/locale/zh/LC_MESSAGES/django.po index c456368c8..081aa6f5a 100644 --- a/apps/locale/zh/LC_MESSAGES/django.po +++ b/apps/locale/zh/LC_MESSAGES/django.po @@ -3,19 +3,19 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: JumpServer 0.3.3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-05-19 16:27+0800\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"PO-Revision-Date: 2021-05-20 10:54+0800\n" "Last-Translator: ibuler \n" "Language-Team: JumpServer team\n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.4.3\n" #: acls/models/base.py:25 acls/serializers/login_asset_acl.py:47 #: applications/models/application.py:11 assets/models/asset.py:142 @@ -2111,15 +2111,15 @@ msgstr "用户名" #: perms/serializers/asset/permission.py:47 msgid "User groups name" -msgstr "用户组数量" +msgstr "用户组名称" #: perms/serializers/asset/permission.py:48 msgid "Assets name" -msgstr "资产名字" +msgstr "资产名称" #: perms/serializers/asset/permission.py:50 msgid "System users name" -msgstr "系统用户名字" +msgstr "系统用户名称" #: perms/serializers/asset/permission.py:70 users/serializers/user.py:81 msgid "Is valid" From 6e4381ac04dfe78d9f441c0aa6cd9b7073b021fa Mon Sep 17 00:00:00 2001 From: fit2bot <68588906+fit2bot@users.noreply.github.com> Date: Thu, 20 May 2021 13:14:34 +0800 Subject: [PATCH 3/5] =?UTF-8?q?perf:=20=E4=BF=AE=E6=94=B9readme=20(#6152)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * perf: 修改readme * perf: 修改readme Co-authored-by: ibuler --- README.md | 4 ++-- apps/templates/_copyright.html | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 8f5da3631..b8e86a2c7 100644 --- a/README.md +++ b/README.md @@ -250,7 +250,7 @@ JumpServer 采纳分布式架构,支持多机房跨区域部署,支持横向 - [Lina](https://github.com/jumpserver/lina) JumpServer Web UI 项目 - [Luna](https://github.com/jumpserver/luna) JumpServer Web Terminal 项目 - [KoKo](https://github.com/jumpserver/koko) JumpServer 字符协议 Connector 项目,替代原来 Python 版本的 [Coco](https://github.com/jumpserver/coco) -- [Guacamole](https://github.com/jumpserver/docker-guacamole) JumpServer 图形协议 Connector 项目,依赖 [Apache Guacamole](https://guacamole.apache.org/) +- [Lion](https://github.com/jumpserver/lion-release) JumpServer 图形协议 Connector 项目,依赖 [Apache Guacamole](https://guacamole.apache.org/) ## 贡献 如果有你好的想法创意,或者帮助我们修复了 Bug, 欢迎提交 Pull Request @@ -263,7 +263,7 @@ JumpServer 采纳分布式架构,支持多机房跨区域部署,支持横向 ## 致谢 -- [Apache Guacamole](https://guacamole.apache.org/) Web页面连接 RDP, SSH, VNC协议设备,JumpServer 图形化连接依赖 +- [Apache Guacamole](https://guacamole.apache.org/) Web页面连接 RDP, SSH, VNC协议设备,JumpServer 图形化组件 Lion 依赖 - [OmniDB](https://omnidb.org/) Web页面连接使用数据库,JumpServer Web数据库依赖 diff --git a/apps/templates/_copyright.html b/apps/templates/_copyright.html index 772c24cc5..241a5cfe4 100644 --- a/apps/templates/_copyright.html +++ b/apps/templates/_copyright.html @@ -1,2 +1,2 @@ -{% load i18n %} -Copyright {{ COPYRIGHT }} \ No newline at end of file +{#{% load i18n %}#} +{#Copyright {{ COPYRIGHT }}#} \ No newline at end of file From a2fb4a701e9050425b3264b4b71dfcd44907dac9 Mon Sep 17 00:00:00 2001 From: Bai Date: Thu, 20 May 2021 14:05:14 +0800 Subject: [PATCH 4/5] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=91=BD=E4=BB=A4?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E5=99=A8=E8=A7=84=E5=88=99Action=20Choices?= =?UTF-8?q?=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/serializers/cmd_filter.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/apps/assets/serializers/cmd_filter.py b/apps/assets/serializers/cmd_filter.py index 052452825..5cf419979 100644 --- a/apps/assets/serializers/cmd_filter.py +++ b/apps/assets/serializers/cmd_filter.py @@ -4,7 +4,7 @@ import re from rest_framework import serializers from common.drf.serializers import AdaptedBulkListSerializer -from ..models import CommandFilter, CommandFilterRule, SystemUser +from ..models import CommandFilter, CommandFilterRule from orgs.mixins.serializers import BulkOrgResourceModelSerializer from orgs.utils import tmp_to_root_org from common.utils import get_object_or_none, lazyproperty @@ -50,6 +50,20 @@ class CommandFilterRuleSerializer(BulkOrgResourceModelSerializer): fields = '__all__' list_serializer_class = AdaptedBulkListSerializer + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.set_action_choices() + + def set_action_choices(self): + from django.conf import settings + action = self.fields.get('action') + if not action: + return + choices = action._choices + if not settings.XPACK_ENABLED: + choices.pop(CommandFilterRule.ActionChoices.confirm, None) + action._choices = choices + # def validate_content(self, content): # tp = self.initial_data.get("type") # if tp == CommandFilterRule.TYPE_REGEX: From 47df0cfaabaa1b79f8dcae8a1ad4cda73adfeabc Mon Sep 17 00:00:00 2001 From: Bai Date: Thu, 20 May 2021 14:58:54 +0800 Subject: [PATCH 5/5] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/locale/zh/LC_MESSAGES/django.mo | Bin 75257 -> 75310 bytes apps/locale/zh/LC_MESSAGES/django.po | 47 ++++++++++++++------------- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index e211f5802e8b92099dafde9f803fbf2208b5b47e..231c4df8c203cbe0edd5ba7271eef34414d7398b 100644 GIT binary patch delta 16550 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 delta 16500 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 G=lvhz#ECcn diff --git a/apps/locale/zh/LC_MESSAGES/django.po b/apps/locale/zh/LC_MESSAGES/django.po index 081aa6f5a..8cf941acb 100644 --- a/apps/locale/zh/LC_MESSAGES/django.po +++ b/apps/locale/zh/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: JumpServer 0.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-19 16:27+0800\n" +"POT-Creation-Date: 2021-05-20 14:56+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n" "Last-Translator: ibuler \n" "Language-Team: JumpServer team\n" @@ -184,7 +184,7 @@ msgstr "格式为逗号分隔的字符串, * 表示匹配所有. " #: users/templates/users/_select_user_modal.html:14 #: xpack/plugins/change_auth_plan/models.py:47 #: xpack/plugins/change_auth_plan/models.py:278 -#: xpack/plugins/cloud/serializers.py:51 +#: xpack/plugins/cloud/serializers.py:71 msgid "Username" msgstr "用户名" @@ -285,7 +285,7 @@ msgid "Cluster" msgstr "集群" #: applications/serializers/attrs/application_category/db.py:11 -#: ops/models/adhoc.py:146 xpack/plugins/cloud/serializers.py:49 +#: ops/models/adhoc.py:146 xpack/plugins/cloud/serializers.py:69 msgid "Host" msgstr "主机" @@ -295,7 +295,7 @@ msgstr "主机" #: applications/serializers/attrs/application_type/oracle.py:11 #: applications/serializers/attrs/application_type/pgsql.py:11 #: assets/models/asset.py:188 assets/models/domain.py:53 -#: xpack/plugins/cloud/serializers.py:50 +#: xpack/plugins/cloud/serializers.py:70 msgid "Port" msgstr "端口" @@ -325,7 +325,7 @@ msgstr "目标URL" #: xpack/plugins/change_auth_plan/models.py:68 #: xpack/plugins/change_auth_plan/models.py:190 #: xpack/plugins/change_auth_plan/models.py:285 -#: xpack/plugins/cloud/serializers.py:53 +#: xpack/plugins/cloud/serializers.py:73 msgid "Password" msgstr "密码" @@ -407,7 +407,7 @@ msgstr "激活" #: assets/models/asset.py:196 assets/models/cluster.py:19 #: assets/models/user.py:66 templates/_nav.html:44 -#: xpack/plugins/cloud/models.py:92 xpack/plugins/cloud/serializers.py:146 +#: xpack/plugins/cloud/models.py:92 xpack/plugins/cloud/serializers.py:166 msgid "Admin user" msgstr "管理用户" @@ -678,7 +678,7 @@ msgstr "ssh私钥" #: users/templates/users/user_asset_permission.html:41 #: users/templates/users/user_asset_permission.html:73 #: users/templates/users/user_asset_permission.html:158 -#: xpack/plugins/cloud/models.py:89 xpack/plugins/cloud/serializers.py:147 +#: xpack/plugins/cloud/models.py:89 xpack/plugins/cloud/serializers.py:167 msgid "Node" msgstr "节点" @@ -949,7 +949,7 @@ msgid "" msgstr "自检程序已经在运行,不能重复启动" #: assets/tasks/push_system_user.py:193 -#: assets/tasks/system_user_connectivity.py:89 +#: assets/tasks/system_user_connectivity.py:90 msgid "System user is dynamic: {}" msgstr "系统用户是动态的: {}" @@ -958,7 +958,7 @@ msgid "Start push system user for platform: [{}]" msgstr "推送系统用户到平台: [{}]" #: assets/tasks/push_system_user.py:234 -#: assets/tasks/system_user_connectivity.py:81 +#: assets/tasks/system_user_connectivity.py:82 msgid "Hosts count: {}" msgstr "主机数量: {}" @@ -970,19 +970,19 @@ msgstr "推送系统用户到入资产: {}" msgid "Push system users to asset: {}({}) => {}" msgstr "推送系统用户到入资产: {}({}) => {}" -#: assets/tasks/system_user_connectivity.py:80 +#: assets/tasks/system_user_connectivity.py:81 msgid "Start test system user connectivity for platform: [{}]" msgstr "开始测试系统用户在该系统平台的可连接性: [{}]" -#: assets/tasks/system_user_connectivity.py:100 +#: assets/tasks/system_user_connectivity.py:101 msgid "Test system user connectivity: {}" msgstr "测试系统用户可连接性: {}" -#: assets/tasks/system_user_connectivity.py:108 +#: assets/tasks/system_user_connectivity.py:112 msgid "Test system user connectivity: {} => {}" msgstr "测试系统用户可连接性: {} => {}" -#: assets/tasks/system_user_connectivity.py:121 +#: assets/tasks/system_user_connectivity.py:125 msgid "Test system user connectivity period: {}" msgstr "定期测试系统用户可连接性: {}" @@ -3999,7 +3999,7 @@ msgid "Security token validation" msgstr "安全令牌验证" #: users/templates/users/_base_otp.html:14 xpack/plugins/cloud/models.py:78 -#: xpack/plugins/cloud/serializers.py:145 +#: xpack/plugins/cloud/serializers.py:165 msgid "Account" msgstr "账户" @@ -4740,7 +4740,7 @@ msgstr "云服务商" msgid "Cloud account" msgstr "云账号" -#: xpack/plugins/cloud/models.py:81 xpack/plugins/cloud/serializers.py:126 +#: xpack/plugins/cloud/models.py:81 xpack/plugins/cloud/serializers.py:146 msgid "Regions" msgstr "地域" @@ -4748,7 +4748,7 @@ msgstr "地域" msgid "Hostname strategy" msgstr "主机名策略" -#: xpack/plugins/cloud/models.py:95 xpack/plugins/cloud/serializers.py:149 +#: xpack/plugins/cloud/models.py:95 xpack/plugins/cloud/serializers.py:169 msgid "Always update" msgstr "总是更新" @@ -4940,20 +4940,24 @@ msgstr "" msgid "Subscription ID" msgstr "" -#: xpack/plugins/cloud/serializers.py:124 +#: xpack/plugins/cloud/serializers.py:55 +msgid "{} is required" +msgstr "{} 字段是必填项" + +#: xpack/plugins/cloud/serializers.py:144 msgid "History count" msgstr "执行次数" -#: xpack/plugins/cloud/serializers.py:125 +#: xpack/plugins/cloud/serializers.py:145 msgid "Instance count" msgstr "实例个数" -#: xpack/plugins/cloud/serializers.py:148 +#: xpack/plugins/cloud/serializers.py:168 #: xpack/plugins/gathered_user/serializers.py:20 msgid "Periodic display" msgstr "定时执行" -#: xpack/plugins/cloud/utils.py:64 +#: xpack/plugins/cloud/utils.py:65 msgid "Account unavailable" msgstr "账户无效" @@ -5044,9 +5048,6 @@ msgstr "社区版" #~ msgid "AppSecret is required" #~ msgstr "AppSecret 是必须的" -#~ msgid "Secret is required" -#~ msgstr "Secret 是必须的" - #~ msgid "Corporation ID(corpid)" #~ msgstr "企业 ID(CorpId)"