From 8bead0a33b343c2ee148ca47a1352a68ff69036a Mon Sep 17 00:00:00 2001 From: BaiJiangJie <32935519+BaiJiangJie@users.noreply.github.com> Date: Thu, 20 Jun 2019 11:45:45 +0800 Subject: [PATCH 1/7] [Update] Merge master_bugfix to dev_bugfix (#2817) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [Update] 邮件设置添加配置项:发送账号 (#2795) * [Bugfix] 修复普通用户被授权的RemoteApp列表加载为空的bug * [Bugfix] 修复普通用户加载被授权的RemoteApp为空的bug * [Update] 修改邮件测试的接受者为发送者 --- apps/locale/zh/LC_MESSAGES/django.mo | Bin 77458 -> 77602 bytes apps/locale/zh/LC_MESSAGES/django.po | 76 +++++++++++++-------------- apps/perms/mixins.py | 2 - apps/settings/api.py | 2 +- 4 files changed, 37 insertions(+), 43 deletions(-) diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index 2e7a24b89f6a0b5ead92e568320a291ebd24802e..c125e16afe9ba19093777fd05ac950dcd0aaa06b 100644 GIT binary patch delta 22506 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 ohTU8>;`ZDjYaAkWK; zWpjAmq@m9SiH|wmKIE6PLtjtccq3mZ*jGw)SD@%SmDk6>aTu)PO&uPP~ml zn6#6-!W5XAI1TE`V=yU}!W3BEtc4N8jZhcV0l8aVf7FGZ!&to8iT&5T3GeKAJ+Kt^ z!SAsFX70l6!5-#5R6fI}Tpe~nEnopA!|zc$wFdLx28_esQ2m0sx(iK#Rf+R=W&ias z^dg}Z&%iX7g6`}HR_5Yy1AXohMFiBs()V8Gf@(Ci>jl>Yh~@7 zeN@6o^tXmln2UHaYD<4W4X_6b;86_0*Qg1ScX$2MqHaxT)UB(HdWJfn?)@;#gi}$s zWR2Z7yUryAP=f^NCYF0#T`Fp5w z+M8W*0dXHprT0I5FSi4+sC!x*btSb>SNI-kD;uK*?2elF3u~W*n&4a1PR+##T#gxW z2d2i;7=<@cJLvUh9KHWRs$jSoW#%;VqaMlfY}|z3!J#3k%>?^J(H}Dg`k&7Q#lT9T?chvj0j9B@u}U=2FyFZAV?vNz}yGE&dyIg#rECLQ-HF;xwpR zlpD3+vesT3HDLqPjVxTh@ zYQXZS^FFYAD{}y9+$pH>7NREJitMD%+fPMX@iS^`E~4)Fb<`C+MqO#(AU8oMDj$U! zI2N_AQWn=hJ-p3OSNsv`S^3oBzNm$Mj;ZzjPoSa!=Au@%3bmD6EIxr+z$Mgxw@?E< zK`r24)H9KKuv>T(>Q?4KT~Jxnf~%l^hfo*T3d8mOccY>e4?&&qIqtx*sDZ0}<|eLZ zHb*U>BWj|a=zm>N3mu2LkOa(*b5Y-Xc4KY4gby%&2>Y*rG7WVD#Gn?C2eslts0qrU zf8|(%xD`g@VpPAqsP7F&u`>Q?aiL*+`5>-~nr8y)f~KK9SLP05|Ml=KA`y>UQ4h&A z)W9!L3rfy5=^4>>>B_R92Fi;XxTyIq<{_?%+Tw1ghjS>l$H|xg&ajaI~OrK-a*AFeV@Al zqEIK~Kn;)wwSdBwFN=DwtDq)qZtd;N9$1Y0XP5)mq9!pFZB#gxw7>Ik!eVCK@fO#A15QmP^ zPI3R6QfW+LFxJ9js4I#7!rhWWsI4o3y3(4cD{73o!uIAs)WXJ_({U^DV&qNsT95X; zEO;JuA^Lqhf+!ZIsq{N}9ElPvQu`=p}+Ng;eqOQ2D*%h_G{-_0wMfIO$E%ICviEQ$HBB5JFPw`e_x>vCA^HcSFl>TbP%Oq17s8a-3^h@E z)RhcE?bJNfm2W^T^c?D0xP@BC3)7qE#z~Iskk5;xqI;GR^?Jmk7Er_d81*w^5bB;! zL_KVaP!lghEocYo^W#^{iuW)ZhE8(kN6k|gL$M`>=>6|ZMFaLhZOK5?t(c1HILF$T zqqcSp>I3FS)U7*=rST+c0pXL~`T0;gPz-ges-bqcK5Cw}7^L@qm~|M5dT1u1wrncu zgjtvxS79dHg<8Nl)YJSMYJ%&iTXG+@@bpvM4#i+NaS7B;R>M@-9DVB8g~~fP05#wW z)V{ZoAHj6}_o8N)Chwc{nfX8(1?Wl89Y zE29Reg&Lp{YUQo45OzfkFdMb7<>oHbtvQZ*cJ5$mOp@SCi@M_6sD8yU0_!EP|N7z3 znuHvIns6}|#EsVRn)w7ZQ1Yqn9%eA#LG8%579Ez z6>mV@;~l7{{S2nTdsqRzZ`@xrDq=3ePS_kLU^={o`SD-WdHJUC?Fh@GE~po3>*t~7 z^DVZ@YSh+lM&0{F)D;~=UGX{83AZslK13}%tx;Ru8TAYe#wh$8bpbO`p9c$2 z{q~}E_&6rj`+tv$PJDzq;U#LNfiqk_E$W$wM(s>q)WjuFS6C4>aD7z2HmI%diCm#K z5@T>W>b>8A8SyM;Wq$7=72UgtneHi%Lrv5KHDEi;gS}A;orTSD0jmAA89K}DOf+hN zIZzA8hefa=s()|PE&LpPdRV4Y(MNBhHC#j8>zAl!BFSubr4g8cI0veKY1D$6pl-=W z7Jq`e$Dg7W($m@pqdq@|qs|*OoBh|l9d8|{qaL0Gs2x~^+RCk{Tk;*ZQumhX+au;G{+$IW5?l~_YU_i_triw>ezcm}iMCDa1mp!!A3b@x06 z>RuK_T}WNaH$%PWT~OlH=q3yu?RE56?#QzjmmBj$vNBgc=~^J2zkyW+Bdx z?_+J$c{5QvwFGtkR@6cdpl-!!jKT|86(3_X`by7p_w+;5)^9lj^`G$|3Oq61?1fw#VT%@^w)Clda$jCPrgl9EiHb z_fW50%9ZYq-ElrDoZ~gcSWL3YeW2t;JzQ0>AhyOlIMLjUTKE+#iNUMgm(Yr+crYf% z^{5@*hAD72evXIn3Hs`;VH>GbUhAI97pN@^TjxF^t6(MK&gKd%Kzt92V)S}uoMkzP_M@=)IEQNdcD%IN<9k& zFeO$s>zgexoO~zL6%W8b9D+&EhdOU0Cc{aXT<`xhDtg-IqVCxW)Ih{!CToCT|rtZYKTRxxCCa$ z2ACH6pcXb3GvF*#{|%^t_Myf(YVlRn!*|bof@O(cqjs{)HohBR)otv*CRj^C_bd@L z;9=C2odNw?`j^D^SPk>x3Tr=u8uxe9IDg?g_c0hR;vv)(rrGHhlo_>8)Uy%1%Y7urp?0VMs$UhxkKir=hNV6Y3uCL2d0Z)Q(-nk@y5P!Jq@~ ztr?4&Xc=lJ*PA7?7L zewd7S1g61pmY;3;WfreBcbbRIGv;;FIDeyV;d9Feo^tb~LcP|RPqFV>KyeZ}p)zXX zTBv*764l<-9E9nJM_WAGTxM=Uowv{86Bb`FA6VWy?ZyrBQPISi%p7JOvk>YEN}v`} z(X5ABXmhh0wkIBr>VE@s;RDQr>CW(L8kWb8aT-=Y-!rR}JnIqz%+09x^%-h`Mb5c_ zOQC<;ung|D_$BJC$#~vfNCBtMD`SZoW+PO`HfBH6XZtwR#NV28 z&BdslS!r%H511!Vx8w?HXC9z-P|o5GW*^iQ4Y&9^j3Qo%x&?{m zSK;4Ri7GJgaF=`=Um)-dh zX0(~xEOgoDI+P}%ov30BwXqm+Bg>Do{AAR&AafFG zp^H%q^=+Y|6HZ#gRf`{+0l&M2groYUGjm$LkXgd=qceH$W)Pjb&cAqzu zimrS<>WWvG>n*<(HSs>n|7xDG{3VO;;=A;FXmP=7?n;YeR`NA1?uZ(1us`(F7eWF#yXDk3v0kyDfhTwUxhPVSHk7>>U@E zMqNl3vzIv#Bgp$O2TnnavjMdL-vKH*@dWBiiEjykh|_{cWP9=7^;6I zd>`vz9-M`FaX+fxee)G+zK}ot`n=RsG(ZMa#~iM~D`;_Xiz}n9q!y}w3(L31P~xr@ z4?g%j7UEf`dA6!u@BeWs+NyJ?0fYW>KOQ4c17t?!V^9xUVbmvDUCV!pns^|p z|5(($o`l+ob*S_Aqb5Fv+L1fx|M~xzicb8;8UpXT0YlNh08Bx93~GRa7>G5@+E|dd zo;d_t5wE~%81lgVRqcK3K>RgoVJ{x={%eBJzg;2{wbEEjh3{Ctip7nsy@S~Y^&St$ zPchR&_tuO?jXT?1Xf8L`VI|tPJY@eh;Y({s{>a7Qr~#tQoR*I_OIW^&SsS(B4^ZD5 z+E{)Xh7r#}&9lPXVkY{iXrkko2G61H-JckP;g8*kMN$1Kp!!wE@z@L-;UAa;%RF(n zs=QeXBgi*Go!T+{`u!zkQqo=5+MpvHM=aq?F#AO4E{ z*8u5AXv_1U;?k%S>YB~W4j4Tq!(3u+u=YI`|7h_^^Md)idE4|oprR{yhWfxs@vmE1LGxWy zdrj08wy^k9YafQ%^6?fgLOqo0Q2i6F{S@jM`U|zQL2vx$`Md}!O5{bIP}1TWs4H(| z_C)Q-S7rk0yqV@w%Wt%JJ8IzvExushLM`Npzul*AyaE1!vZ9{Oe3%s*qCSdyqkf7_ zMJ@2WwckN4AS58b|C**pJ)C7x3vGkCrJc;)<`8o3V^OGeD@PCA-NA<6VT6lBR&xCHMg-u62eCts2{OF^i6Miu-SchBYzo?FBlRKl$ zoMt>~A%!h2V^%_qThsi|Y-{!~eM6{drQ^)m*02VPk>7#w_&4f1V05rE)+}O{MeRfl z)PkCzet5O9c#Jv4oP}JN&s$6-3msRYR(#kzV_rus@NbKQLR=hS=0crU619M;s2yu$ z`4(m;v!6KvqnO{DWQp%l6aChq?i?qpmbBYQU0adDJ(YY8KZ*EucPzV{^-QHhY=_P~#0ly#?b# zdH;i`%(sRms4L%K9zZSVocRznK*}&@6smu2vlMEfbu4ax>fatUPH&6HTl@4d-v1^v ztgu9qa5rFjyhc9W;;>Y1pzNqCEnsm;v#R-l`H}glIneyV{2H}W-}$I$>sO=yo>_-P z%uN2c#rMruW=Lwcp!BHoVl2*UmPGyVs%q^WP@nzXP@nzNOy5>2+M3_YC#Z?TBisb} zP+MHetb-cpBh(M6F_;afqdsc4So;~&L|z)#KL$$^*2Pjd8b8$gznhBgQM$+gZyM%A z-IA@Sg+-)w=0&wvK}~!f^{x3X7Qme8+(T6#^&PSU=EI@b2bZC~Ph?5&cDyvE(fePE ziY995Pw>;rI*dgPG#zW=8r1iI=cw-qKKtJ!2dtNXo_r+HxbL>b<_^zj1KVs&bJlY5{G9F@S0&S zY>q!+U5w4*e(v|dcZq*CgR{C@S`~e1X=p-4za(}whoP=$GU|%HH5ZxdtbG^igC!C5 zdGM3vkD@+cPFs8x^$gv@!T1lR#Qxdr=l_UoZY#%`38=SX4(h~Js0Hn@_8%>O4E4}m zNA*vV-5H5mcns?N!WLJt_WG!Y{NwCC*I_6L4K&$0u0ef5?La*=$1VSt`HvZ#!#(Bc zP!pCitCbqaM0M%l~HHMqS}ki<9MaI~HkX!HTrUp?0bh zHpCvN3HMq4w0RM=VBdA?@Hc9LpcwZhGcD?qE(_`&$Dv-k0yqrIV=3H;8tAE+B$pc} zHI^Zt9kqZKsPVd6`#`798%sr7J>42sqdM-g_@H?f^#O7VHDS)&&O)g7zbxtkx}ZM! z23z}V%P&LCv(@6GetG{cQ_+O?Q7e6c`a%*K>n6yH%9liKZEaNl4^U5i3)F&ITfQr* zUw_LFHNUj{x8_`__kXb^R-&$81N!e74kA8{>Q_I`P53Kn0Vh!tUqVfI7YpM<%#AU5 z+$UfyY)ae@ci=DB3dhGYu0GjrQz?r@^STLop#GlM2lezXKrL(+YO8;-{43N#qw=|h z6ugUeLj3jr5xHCmZ5^@22)8QrYwv+n` zcal%%qd~_i>_PJFF_8Ej%6Lme=xdT44H%#zZTTrWuHbsy%K3j%e`AyS8~G`u%HtI;+zzYfM3MKBWP<>efN+{M_+=v$#8MAiiMdsQr+&ZJ=JB`hBd2^Xaoq z9XPfo1XPWT?`S=v>~g+jq!sk4;5vCbs1Ku5N+?$~gYPW857R?0!5OkUh?8^XUgE;U zy@~bzMe_D|`k#6}+7Hn%ja(_}I*v0IKV$#j!H*&T(G}m`2qm7=pC7c{y;Mx5Hz(Ex zs6xjeN-pC53>@n}oqwo5Ab*>(iSo+&cfnt1{vYKx%jpyzORu%gp}v+fih5u|rD~DB zGSqbRc6j?a>m#eL(`f{qHeqEN+fyo2|A5k&{NGrR^7e>kn|jgb_1gqS(oaVO=CHcr zMf3|KzDk{++TK67)y7(?*YP_Nb4hff@eoBvc23Ac?hK_Ixe1n6TNZni?oywl1jpaB z=ORB24{>fY$^`PmIln9AAoXPUlR9%8r|1LeHD3q3j5c6dI!vIPBlkN4tfjm?ejxV^ zZC{Y9M>+kUHuafEsY<(!nY6W~|L4RdsE@b&4eI?UKhai~qQkeJe==K#iKf4We?FnC zrDHP6e%kV5UvgC$M88JqlTt@EJ8vKD!IU(#S417d{r|du&ckW)B`H(fIXV3;9Xa85 zl0)!QJ7G2PK}xQKziUMLKBT2RWgD6Q9tFu|vP46M}sOd|CU=`aTqIbn>oRmK``Pca)=o5G=- zQ<}1v+&O}W@7Ec~wWQNXihhp2K^+Ut z8JOEHY=fQu440An7-M*7zOsBToXNTGa!woC``USvbPt~qeDQX0IyIyIB`4gbRHwYO z&S5y4wgUJa`B(J)2X*{qZlNAd`=^xb^!*xjw4}YCt9rkXOTyyr5&x`bXeo)a))+;{ zbvBq%^=*J8xSNujL9bJ`(B~1Q7r8(1T|4Iu=d2^Qmp*k-M`_ybP{PQ4Mtt7#$;kP- z@y}l*ALA+Y=IB9((Zo7F!($Zw6P!1l0S-_?tWAGy%wzSLHfU3`Ciy}1EkU0QpfWx9i0D&e8KXvLmq`J#Jw; zyoNbBJH$r#i8vK!Rqe$v_mwGGeODHXflT*%HTNT>$3)u+#@9~sitSw0Sywq1)pWM_pk;_9#Nu9qJ zc8ZI%b~%}al$FGv(xVl*I~Yc+V=?u?IFxdgwvI}2>>&Swvc+a=My?5Q z3*uhXlhb!7B|G&jlh;OJJvLfBHB&6ITFU^^h@NP`;=2l#STX z=1xtopQwLKVi?!?jh-kSFDXBA(j!h-jUJ^U zoz_tewLv~6K0>_{xek`gN-l}jpWtlT-X1532h*O7iIP%3L45-yj{17aB+5C>Ka)yZ z&Kk+2DJZpx;sMlO;0G$S>DZ6m z@e1XA+E1cgKOcq+nt={^$xWqR06!!ChmJbZGVmVihb{iXbgg_7BVJ1>P8rYnMeqXW zzoh>5C{KL?^2AP@N4_8Ne~)Uk%^>kP zg+Kgxd5ODO|2o$9GvcInQXSWp$=gfixpllnqmTLw7BD}d^anA%ZA9;py-sEvr3Ym= zC7AqcY)y%w-i;|r;zmkca<^>C%bXiRJ)V3Q>X)d0Nj;GA-1^iq3*i{@I=;eEx;-_h zyhFoI27QmBBN;biJh@udS-F;!?OYYp@Ze z1Sg!LjBh!V(AfzxFPB$rRZx7NzLON101~0rT9X zZ3v|zxkAJl$zP{_lX8&w8Ew1CJ)tZicZ0H=`W4!qQ14Ft?UC8)13Bj#N=o-B%C94I z?n5t9sYyKaBbS45IvMed>}cO8GUR zQsZpCR-7?}l8e?=WUJA02OgjVQ|8g8V>Wpm@ivO;@6Z;7SMdbKP(Gnwf9um5r_$Ee z#-Q0dM!meXCkFDDn{a|*)}fP4qK@s!9Z|)OLBw6?`-AmWI)wUUi)UkV%J&IHnne17 zsC~<5pW9UG-GMjV8QQ)XFvAv%3z^@Gl5(a%ISn0 zP2)1Aq;`^)y!3c`=s!IjNNCeEvRpb^*AP9R$M@8WS+Bjs*Qgi6Kk*0LO251G=|fph z>AhiH(_--((vC<{ZbRnX1A~K$l+IqHRGA_rHq8FdbdB?Rn@ diff --git a/apps/locale/zh/LC_MESSAGES/django.po b/apps/locale/zh/LC_MESSAGES/django.po index 16eab6dd9..8feb8f959 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: 2019-06-19 18:16+0800\n" +"POT-Creation-Date: 2019-06-20 11:41+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: ibuler \n" "Language-Team: Jumpserver team\n" @@ -210,7 +210,7 @@ msgstr "参数" #: assets/models/cluster.py:28 assets/models/cmd_filter.py:25 #: assets/models/cmd_filter.py:58 assets/models/group.py:21 #: assets/templates/assets/admin_user_detail.html:68 -#: assets/templates/assets/asset_detail.html:129 +#: assets/templates/assets/asset_detail.html:128 #: assets/templates/assets/cmd_filter_detail.html:77 #: assets/templates/assets/domain_detail.html:72 #: assets/templates/assets/system_user_detail.html:100 @@ -265,7 +265,7 @@ msgstr "创建日期" #: assets/models/domain.py:53 assets/models/group.py:23 #: assets/models/label.py:23 assets/templates/assets/admin_user_detail.html:72 #: assets/templates/assets/admin_user_list.html:53 -#: assets/templates/assets/asset_detail.html:137 +#: assets/templates/assets/asset_detail.html:136 #: assets/templates/assets/cmd_filter_detail.html:65 #: assets/templates/assets/cmd_filter_list.html:27 #: assets/templates/assets/cmd_filter_rule_list.html:62 @@ -619,8 +619,8 @@ msgid "Test if the assets under the node are connectable: {}" msgstr "测试节点下资产是否可连接: {}" #: assets/forms/asset.py:45 assets/models/asset.py:103 -#: assets/models/user.py:134 assets/templates/assets/asset_detail.html:195 -#: assets/templates/assets/asset_detail.html:203 +#: assets/models/user.py:134 assets/templates/assets/asset_detail.html:194 +#: assets/templates/assets/asset_detail.html:202 #: assets/templates/assets/system_user_asset.html:83 #: perms/models/asset_permission.py:38 #: xpack/plugins/change_auth_plan/models.py:72 @@ -629,7 +629,7 @@ msgstr "节点" #: assets/forms/asset.py:48 assets/forms/asset.py:83 assets/models/asset.py:107 #: assets/models/cluster.py:19 assets/models/user.py:92 -#: assets/templates/assets/asset_detail.html:81 templates/_nav.html:24 +#: assets/templates/assets/asset_detail.html:80 templates/_nav.html:24 #: xpack/plugins/cloud/models.py:124 #: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:65 #: xpack/plugins/orgs/templates/orgs/org_list.html:18 @@ -647,7 +647,7 @@ msgstr "标签" #: assets/forms/asset.py:54 assets/forms/asset.py:89 assets/models/asset.py:102 #: assets/models/domain.py:26 assets/models/domain.py:52 -#: assets/templates/assets/asset_detail.html:85 +#: assets/templates/assets/asset_detail.html:84 #: assets/templates/assets/user_asset_list.html:173 #: xpack/plugins/orgs/templates/orgs/org_list.html:17 msgid "Domain" @@ -858,14 +858,14 @@ msgstr "主机名" msgid "Protocol" msgstr "协议" -#: assets/models/asset.py:101 assets/templates/assets/asset_detail.html:109 +#: assets/models/asset.py:101 assets/templates/assets/asset_detail.html:108 #: assets/templates/assets/user_asset_list.html:170 msgid "Platform" msgstr "系统平台" #: assets/models/asset.py:104 assets/models/cmd_filter.py:21 #: assets/models/domain.py:54 assets/models/label.py:22 -#: assets/templates/assets/asset_detail.html:117 +#: assets/templates/assets/asset_detail.html:116 #: assets/templates/assets/user_asset_list.html:174 msgid "Is active" msgstr "激活" @@ -874,19 +874,19 @@ msgstr "激活" msgid "Public IP" msgstr "公网IP" -#: assets/models/asset.py:111 assets/templates/assets/asset_detail.html:125 +#: assets/models/asset.py:111 assets/templates/assets/asset_detail.html:124 msgid "Asset number" msgstr "资产编号" -#: assets/models/asset.py:114 assets/templates/assets/asset_detail.html:89 +#: assets/models/asset.py:114 assets/templates/assets/asset_detail.html:88 msgid "Vendor" msgstr "制造商" -#: assets/models/asset.py:115 assets/templates/assets/asset_detail.html:93 +#: assets/models/asset.py:115 assets/templates/assets/asset_detail.html:92 msgid "Model" msgstr "型号" -#: assets/models/asset.py:116 assets/templates/assets/asset_detail.html:121 +#: assets/models/asset.py:116 assets/templates/assets/asset_detail.html:120 msgid "Serial number" msgstr "序列号" @@ -907,7 +907,7 @@ msgstr "CPU核数" msgid "CPU vcpus" msgstr "CPU总数" -#: assets/models/asset.py:122 assets/templates/assets/asset_detail.html:101 +#: assets/models/asset.py:122 assets/templates/assets/asset_detail.html:100 msgid "Memory" msgstr "内存" @@ -919,7 +919,7 @@ msgstr "硬盘大小" msgid "Disk info" msgstr "硬盘信息" -#: assets/models/asset.py:126 assets/templates/assets/asset_detail.html:113 +#: assets/models/asset.py:126 assets/templates/assets/asset_detail.html:112 #: assets/templates/assets/user_asset_list.html:171 msgid "OS" msgstr "操作系统" @@ -937,7 +937,7 @@ msgid "Hostname raw" msgstr "主机名原始" #: assets/models/asset.py:131 assets/templates/assets/asset_create.html:46 -#: assets/templates/assets/asset_detail.html:232 templates/_nav.html:26 +#: assets/templates/assets/asset_detail.html:231 templates/_nav.html:26 msgid "Labels" msgstr "标签管理" @@ -1206,24 +1206,24 @@ msgstr "登录模式" msgid "%(value)s is not an even number" msgstr "%(value)s is not an even number" -#: assets/serializers/asset.py:26 assets/templates/assets/asset_create.html:24 +#: assets/serializers/asset.py:46 assets/templates/assets/asset_create.html:24 msgid "Protocols" msgstr "协议组" -#: assets/serializers/asset.py:52 +#: assets/serializers/asset.py:73 msgid "Hardware info" msgstr "硬件信息" -#: assets/serializers/asset.py:53 assets/serializers/asset_user.py:29 +#: assets/serializers/asset.py:74 assets/serializers/asset_user.py:29 #: assets/templates/assets/_asset_user_list.html:18 msgid "Connectivity" msgstr "连接" -#: assets/serializers/asset.py:54 orgs/mixins.py:223 +#: assets/serializers/asset.py:75 orgs/mixins.py:223 msgid "Org name" msgstr "组织名称" -#: assets/serializers/asset.py:70 +#: assets/serializers/asset.py:93 msgid "Protocol duplicate: {}" msgstr "协议重复: {}" @@ -1400,7 +1400,7 @@ msgid "Please input password" msgstr "请输入密码" #: assets/templates/assets/_asset_user_auth_update_modal.html:68 -#: assets/templates/assets/asset_detail.html:312 +#: assets/templates/assets/asset_detail.html:311 #: users/templates/users/user_detail.html:307 #: users/templates/users/user_detail.html:334 #: xpack/plugins/interface/views.py:35 @@ -1437,15 +1437,13 @@ msgid "Datetime" msgstr "日期" #: assets/templates/assets/_asset_user_list.html:61 -#, fuzzy -#| msgid "View auth" msgid "View" msgstr "查看认证" #: assets/templates/assets/_asset_user_list.html:63 #: assets/templates/assets/admin_user_assets.html:61 #: assets/templates/assets/asset_asset_user_list.html:57 -#: assets/templates/assets/asset_detail.html:183 +#: assets/templates/assets/asset_detail.html:182 #: assets/templates/assets/system_user_asset.html:63 #: assets/templates/assets/system_user_detail.html:151 msgid "Test" @@ -1535,7 +1533,7 @@ msgstr "快速更新" #: assets/templates/assets/admin_user_assets.html:58 #: assets/templates/assets/asset_asset_user_list.html:54 -#: assets/templates/assets/asset_detail.html:180 +#: assets/templates/assets/asset_detail.html:179 msgid "Test connective" msgstr "测试可连接性" @@ -1551,7 +1549,7 @@ msgid "Select nodes" msgstr "选择节点" #: assets/templates/assets/admin_user_detail.html:100 -#: assets/templates/assets/asset_detail.html:212 +#: assets/templates/assets/asset_detail.html:211 #: assets/templates/assets/asset_list.html:682 #: assets/templates/assets/cmd_filter_detail.html:106 #: assets/templates/assets/system_user_asset.html:100 @@ -1649,7 +1647,7 @@ msgid "Asset users of" msgstr "资产用户" #: assets/templates/assets/asset_asset_user_list.html:47 -#: assets/templates/assets/asset_detail.html:149 +#: assets/templates/assets/asset_detail.html:148 #: terminal/templates/terminal/session_detail.html:81 #: users/templates/users/user_detail.html:138 #: users/templates/users/user_profile.html:146 @@ -1668,21 +1666,21 @@ msgstr "选择需要修改属性" msgid "Select all" msgstr "全选" -#: assets/templates/assets/asset_detail.html:97 +#: assets/templates/assets/asset_detail.html:96 msgid "CPU" msgstr "CPU" -#: assets/templates/assets/asset_detail.html:105 +#: assets/templates/assets/asset_detail.html:104 msgid "Disk" msgstr "硬盘" -#: assets/templates/assets/asset_detail.html:133 +#: assets/templates/assets/asset_detail.html:132 #: users/templates/users/user_detail.html:115 #: users/templates/users/user_profile.html:104 msgid "Date joined" msgstr "创建日期" -#: assets/templates/assets/asset_detail.html:155 +#: assets/templates/assets/asset_detail.html:154 #: assets/templates/assets/user_asset_list.html:46 #: perms/models/asset_permission.py:60 perms/models/base.py:38 #: perms/templates/perms/asset_permission_create_update.html:55 @@ -1698,11 +1696,11 @@ msgstr "创建日期" msgid "Active" msgstr "激活中" -#: assets/templates/assets/asset_detail.html:172 +#: assets/templates/assets/asset_detail.html:171 msgid "Refresh hardware" msgstr "更新硬件信息" -#: assets/templates/assets/asset_detail.html:175 +#: assets/templates/assets/asset_detail.html:174 msgid "Refresh" msgstr "刷新" @@ -5401,8 +5399,6 @@ msgid "Password rules" msgstr "密码规则" #: xpack/plugins/change_auth_plan/models.py:213 -#, fuzzy -#| msgid "For security, do not change root user's password" msgid "For security, do not change {} user's password" msgstr "为了安全,禁止更改 {} 用户的密码" @@ -5942,8 +5938,8 @@ msgstr "创建组织" msgid "Update org" msgstr "更新组织" -#: xpack/plugins/vault/meta.py:11 xpack/plugins/vault/views.py:23 -#: xpack/plugins/vault/views.py:38 +#: xpack/plugins/vault/meta.py:11 xpack/plugins/vault/views.py:22 +#: xpack/plugins/vault/views.py:37 msgid "Vault" msgstr "密码匣子" @@ -5951,11 +5947,11 @@ msgstr "密码匣子" msgid "Import vault" msgstr "导入密码" -#: xpack/plugins/vault/views.py:24 +#: xpack/plugins/vault/views.py:23 msgid "vault list" msgstr "密码匣子" -#: xpack/plugins/vault/views.py:39 +#: xpack/plugins/vault/views.py:38 msgid "vault create" msgstr "创建" diff --git a/apps/perms/mixins.py b/apps/perms/mixins.py index 88c851adc..f1d7fac1e 100644 --- a/apps/perms/mixins.py +++ b/apps/perms/mixins.py @@ -1,7 +1,6 @@ # ~*~ coding: utf-8 ~*~ # - from orgs.utils import set_to_root_org __all__ = [ @@ -116,4 +115,3 @@ class ChangeOrgIfNeedMixin(object): def get(self, request, *args, **kwargs): self.change_org_if_need(request, kwargs) return super().get(request, *args, **kwargs) - diff --git a/apps/settings/api.py b/apps/settings/api.py index d399d207c..37d63bef1 100644 --- a/apps/settings/api.py +++ b/apps/settings/api.py @@ -39,7 +39,7 @@ class MailTestingAPI(APIView): subject = "Test" message = "Test smtp setting" email_from = email_from or email_host_user - send_mail(subject, message, email_from, [email_host_user]) + send_mail(subject, message, email_from, [email_from]) except Exception as e: return Response({"error": str(e)}, status=401) From 29239e8b77fcdcfbb379493e3428c968494050c7 Mon Sep 17 00:00:00 2001 From: BaiJiangJie Date: Thu, 20 Jun 2019 14:41:44 +0800 Subject: [PATCH 2/7] =?UTF-8?q?[Update]=20=E4=BF=AE=E6=94=B9=E5=B0=8F?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/templates/_nav_user.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/templates/_nav_user.html b/apps/templates/_nav_user.html index 5f77fb99e..c745c0cdc 100644 --- a/apps/templates/_nav_user.html +++ b/apps/templates/_nav_user.html @@ -4,6 +4,8 @@ {% trans 'My assets' %} + +{% if LICENSE_VALID %}
  • {% trans 'My Applications' %} @@ -16,6 +18,8 @@
  • +{% endif %} + {% if SECURITY_COMMAND_EXECUTION %}
  • From 152c59365f8ed4a918a84f33fa1b65f3c16fe7ef Mon Sep 17 00:00:00 2001 From: BaiJiangJie Date: Thu, 20 Jun 2019 15:50:28 +0800 Subject: [PATCH 3/7] =?UTF-8?q?[Update]=20=E4=BF=AE=E6=94=B9=E8=B5=84?= =?UTF-8?q?=E4=BA=A7=E6=8E=88=E6=9D=83=E5=BA=8F=E5=88=97=E7=B1=BB=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E8=B5=84=E4=BA=A7protocols=E7=9A=84=E5=8D=8F=E8=AE=AE?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F/,=20=E5=90=8C=E6=97=B6=E6=B7=BB=E5=8A=A0prot?= =?UTF-8?q?ocol=E5=92=8Cport=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/backends/vault.py | 10 +--------- apps/assets/serializers/asset.py | 15 +++++++-------- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/apps/assets/backends/vault.py b/apps/assets/backends/vault.py index da7583458..d21245247 100644 --- a/apps/assets/backends/vault.py +++ b/apps/assets/backends/vault.py @@ -1,19 +1,11 @@ # -*- coding: utf-8 -*- # -from ..base import BaseBackend +from .base import BaseBackend class VaultBackend(BaseBackend): - @classmethod - def get(cls, username, asset): - pass - @classmethod def filter(cls, username=None, asset=None, latest=True): pass - - @classmethod - def create(cls, **kwargs): - pass diff --git a/apps/assets/serializers/asset.py b/apps/assets/serializers/asset.py index c66004ba0..77715b351 100644 --- a/apps/assets/serializers/asset.py +++ b/apps/assets/serializers/asset.py @@ -27,8 +27,6 @@ class ProtocolsRelatedField(serializers.RelatedField): return str(value) def to_internal_value(self, data): - print(data) - print(type(data)) if isinstance(data, dict): return data if '/' not in data: @@ -152,7 +150,9 @@ class AssetGrantedSerializer(serializers.ModelSerializer): """ 被授权资产的数据结构 """ - protocols = ProtocolSerializer(many=True) + protocols = ProtocolsRelatedField( + many=True, queryset=Protocol.objects.all(), label=_("Protocols") + ) system_users_granted = AssetSystemUserSerializer(many=True, read_only=True) system_users_join = serializers.SerializerMethodField() # nodes = NodeTMPSerializer(many=True, read_only=True) @@ -160,9 +160,9 @@ class AssetGrantedSerializer(serializers.ModelSerializer): class Meta: model = Asset fields = ( - "id", "hostname", "ip", "protocols", "system_users_granted", - "is_active", "system_users_join", "os", 'domain', - "platform", "comment", "org_id", "org_name", + "id", "hostname", "ip", "protocol", "port", "protocols", + "system_users_granted", "is_active", "system_users_join", "os", + 'domain', "platform", "comment", "org_id", "org_name", ) @staticmethod @@ -187,8 +187,7 @@ class AssetGrantedSerializer(serializers.ModelSerializer): class AssetSimpleSerializer(serializers.ModelSerializer): - protocols = ProtocolSerializer(many=True) class Meta: model = Asset - fields = ['id', 'hostname', 'ip', 'protocols', 'connectivity', 'port'] + fields = ['id', 'hostname', 'ip', 'connectivity', 'port'] From 9a5c00e14836bfdb681292c55b9ab90b9855bf67 Mon Sep 17 00:00:00 2001 From: BaiJiangJie <32935519+BaiJiangJie@users.noreply.github.com> Date: Thu, 20 Jun 2019 18:10:44 +0800 Subject: [PATCH 4/7] =?UTF-8?q?[Update]=20=E4=BF=AE=E6=94=B9=E6=96=87?= =?UTF-8?q?=E6=A1=88=20(#2823)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [Update] 修改文案 * [Update] 修改文案2 --- apps/applications/views/remote_app.py | 8 +- apps/audits/views.py | 2 +- apps/locale/zh/LC_MESSAGES/django.mo | Bin 77602 -> 77458 bytes apps/locale/zh/LC_MESSAGES/django.po | 116 ++++++++++--------------- apps/locale/zh/LC_MESSAGES/djangojs.mo | Bin 2698 -> 2727 bytes apps/locale/zh/LC_MESSAGES/djangojs.po | 68 ++++++++------- apps/static/js/jumpserver.js | 2 +- apps/terminal/views/command.py | 2 +- apps/terminal/views/session.py | 8 +- apps/terminal/views/terminal.py | 6 +- 10 files changed, 97 insertions(+), 115 deletions(-) diff --git a/apps/applications/views/remote_app.py b/apps/applications/views/remote_app.py index dee6d50f2..5576ed3bb 100644 --- a/apps/applications/views/remote_app.py +++ b/apps/applications/views/remote_app.py @@ -28,7 +28,7 @@ class RemoteAppListView(PermissionsMixin, TemplateView): def get_context_data(self, **kwargs): context = { - 'app': _('Assets'), + 'app': _('Applications'), 'action': _('RemoteApp list'), } kwargs.update(context) @@ -44,7 +44,7 @@ class RemoteAppCreateView(PermissionsMixin, SuccessMessageMixin, CreateView): def get_context_data(self, **kwargs): context = { - 'app': _('Assets'), + 'app': _('Applications'), 'action': _('Create RemoteApp'), } kwargs.update(context) @@ -66,7 +66,7 @@ class RemoteAppUpdateView(PermissionsMixin, SuccessMessageMixin, UpdateView): def get_context_data(self, **kwargs): context = { - 'app': _('Assets'), + 'app': _('Applications'), 'action': _('Update RemoteApp'), } kwargs.update(context) @@ -84,7 +84,7 @@ class RemoteAppDetailView(PermissionsMixin, DetailView): def get_context_data(self, **kwargs): context = { - 'app': _('Assets'), + 'app': _('Applications'), 'action': _('RemoteApp detail'), } kwargs.update(context) diff --git a/apps/audits/views.py b/apps/audits/views.py index cab4f1fbf..8c9b6467d 100644 --- a/apps/audits/views.py +++ b/apps/audits/views.py @@ -248,7 +248,7 @@ class CommandExecutionListView(UserCommandExecutionListView): 'keyword': self.keyword, 'user_id': self.user_id, }) - return super().get_context_data(**context) + return context @method_decorator(csrf_exempt, name='dispatch') diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index c125e16afe9ba19093777fd05ac950dcd0aaa06b..c4e24380b3cf885b4f8afcd4e1406bd158425e35 100644 GIT binary patch delta 22237 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 X8(Vys8MM_eu}{&6t!1J*kmqH_ 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 H6#V}Hq}eue diff --git a/apps/locale/zh/LC_MESSAGES/django.po b/apps/locale/zh/LC_MESSAGES/django.po index 8feb8f959..4747d760a 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: 2019-06-20 11:41+0800\n" +"POT-Creation-Date: 2019-06-20 17:55+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: ibuler \n" "Language-Team: Jumpserver team\n" @@ -305,7 +305,7 @@ msgstr "备注" #: perms/templates/perms/remote_app_permission_list.html:17 #: perms/templates/perms/remote_app_permission_remote_app.html:26 #: perms/templates/perms/remote_app_permission_user.html:26 -#: templates/_nav.html:36 templates/_nav.html:48 templates/_nav_user.html:14 +#: templates/_nav.html:36 templates/_nav.html:48 templates/_nav_user.html:16 msgid "RemoteApp" msgstr "远程应用" @@ -558,28 +558,9 @@ msgstr "连接" #: applications/views/remote_app.py:31 applications/views/remote_app.py:47 #: applications/views/remote_app.py:69 applications/views/remote_app.py:87 -#: assets/models/user.py:135 -#: assets/templates/assets/_asset_group_bulk_update_modal.html:11 -#: assets/templates/assets/system_user_asset.html:22 -#: assets/templates/assets/system_user_detail.html:22 -#: assets/views/admin_user.py:30 assets/views/admin_user.py:49 -#: assets/views/admin_user.py:66 assets/views/admin_user.py:82 -#: assets/views/admin_user.py:107 assets/views/asset.py:52 -#: assets/views/asset.py:69 assets/views/asset.py:128 assets/views/asset.py:171 -#: assets/views/asset.py:199 assets/views/asset.py:226 -#: assets/views/cmd_filter.py:31 assets/views/cmd_filter.py:48 -#: assets/views/cmd_filter.py:65 assets/views/cmd_filter.py:82 -#: assets/views/cmd_filter.py:102 assets/views/cmd_filter.py:136 -#: assets/views/cmd_filter.py:170 assets/views/domain.py:30 -#: assets/views/domain.py:47 assets/views/domain.py:64 -#: assets/views/domain.py:78 assets/views/domain.py:104 -#: assets/views/domain.py:133 assets/views/domain.py:153 -#: assets/views/label.py:27 assets/views/label.py:45 assets/views/label.py:72 -#: assets/views/system_user.py:29 assets/views/system_user.py:46 -#: assets/views/system_user.py:63 assets/views/system_user.py:78 -#: templates/_nav.html:19 xpack/plugins/change_auth_plan/models.py:68 -msgid "Assets" -msgstr "资产管理" +#: templates/_nav.html:33 +msgid "Applications" +msgstr "应用管理" #: applications/views/remote_app.py:32 msgid "RemoteApp list" @@ -1182,6 +1163,29 @@ msgstr "自动登录" msgid "Manually login" msgstr "手动登录" +#: assets/models/user.py:135 +#: assets/templates/assets/_asset_group_bulk_update_modal.html:11 +#: assets/templates/assets/system_user_asset.html:22 +#: assets/templates/assets/system_user_detail.html:22 +#: assets/views/admin_user.py:30 assets/views/admin_user.py:49 +#: assets/views/admin_user.py:66 assets/views/admin_user.py:82 +#: assets/views/admin_user.py:107 assets/views/asset.py:52 +#: assets/views/asset.py:69 assets/views/asset.py:128 assets/views/asset.py:171 +#: assets/views/asset.py:199 assets/views/asset.py:226 +#: assets/views/cmd_filter.py:31 assets/views/cmd_filter.py:48 +#: assets/views/cmd_filter.py:65 assets/views/cmd_filter.py:82 +#: assets/views/cmd_filter.py:102 assets/views/cmd_filter.py:136 +#: assets/views/cmd_filter.py:170 assets/views/domain.py:30 +#: assets/views/domain.py:47 assets/views/domain.py:64 +#: assets/views/domain.py:78 assets/views/domain.py:104 +#: assets/views/domain.py:133 assets/views/domain.py:153 +#: assets/views/label.py:27 assets/views/label.py:45 assets/views/label.py:72 +#: assets/views/system_user.py:29 assets/views/system_user.py:46 +#: assets/views/system_user.py:63 assets/views/system_user.py:78 +#: templates/_nav.html:19 xpack/plugins/change_auth_plan/models.py:68 +msgid "Assets" +msgstr "资产管理" + #: assets/models/user.py:138 assets/templates/assets/_system_user.html:59 #: assets/templates/assets/system_user_detail.html:122 #: assets/templates/assets/system_user_update.html:10 @@ -1438,7 +1442,7 @@ msgstr "日期" #: assets/templates/assets/_asset_user_list.html:61 msgid "View" -msgstr "查看认证" +msgstr "查看" #: assets/templates/assets/_asset_user_list.html:63 #: assets/templates/assets/admin_user_assets.html:61 @@ -2317,8 +2321,8 @@ msgid "Date" msgstr "日期" #: audits/views.py:85 audits/views.py:129 audits/views.py:166 -#: audits/views.py:211 audits/views.py:243 templates/_nav.html:87 -#: templates/_nav_audits.html:22 +#: audits/views.py:211 audits/views.py:243 ops/views/command.py:47 +#: templates/_nav.html:87 templates/_nav_audits.html:22 msgid "Audits" msgstr "日志审计" @@ -2984,7 +2988,7 @@ msgstr "更新任务内容: {}" #: ops/views/adhoc.py:45 ops/views/adhoc.py:71 ops/views/adhoc.py:85 #: ops/views/adhoc.py:99 ops/views/adhoc.py:113 ops/views/adhoc.py:127 -#: ops/views/adhoc.py:141 ops/views/command.py:47 ops/views/command.py:72 +#: ops/views/adhoc.py:141 ops/views/command.py:72 msgid "Ops" msgstr "作业中心" @@ -3000,7 +3004,7 @@ msgstr "执行历史" msgid "Command execution list" msgstr "命令执行列表" -#: ops/views/command.py:73 templates/_nav_user.html:22 +#: ops/views/command.py:73 templates/_nav_user.html:26 msgid "Command execution" msgstr "命令执行" @@ -3825,7 +3829,7 @@ msgstr "文档" msgid "Commercial support" msgstr "商业支持" -#: templates/_header_bar.html:89 templates/_nav_user.html:28 users/forms.py:139 +#: templates/_header_bar.html:89 templates/_nav_user.html:32 users/forms.py:139 #: users/templates/users/_user.html:43 #: users/templates/users/first_login.html:39 #: users/templates/users/user_password_update.html:40 @@ -3941,11 +3945,11 @@ msgstr "用户列表" msgid "Command filters" msgstr "命令过滤" -#: templates/_nav.html:33 -msgid "Applications" -msgstr "应用管理" - #: templates/_nav.html:55 templates/_nav_audits.html:11 +#: terminal/views/command.py:51 terminal/views/session.py:74 +#: terminal/views/session.py:92 terminal/views/session.py:116 +#: terminal/views/terminal.py:31 terminal/views/terminal.py:47 +#: terminal/views/terminal.py:60 msgid "Sessions" msgstr "会话管理" @@ -3954,6 +3958,7 @@ msgid "Session online" msgstr "在线会话" #: templates/_nav.html:59 templates/_nav_audits.html:15 +#: terminal/views/session.py:93 msgid "Session offline" msgstr "历史会话" @@ -3961,18 +3966,15 @@ msgstr "历史会话" msgid "Commands" msgstr "命令记录" -#: templates/_nav.html:63 templates/_nav_user.html:33 +#: templates/_nav.html:63 templates/_nav_user.html:37 msgid "Web terminal" msgstr "Web终端" -#: templates/_nav.html:68 templates/_nav_user.html:38 +#: templates/_nav.html:68 templates/_nav_user.html:42 msgid "File manager" msgstr "文件管理" -#: templates/_nav.html:72 terminal/views/command.py:51 -#: terminal/views/session.py:74 terminal/views/session.py:92 -#: terminal/views/session.py:116 terminal/views/terminal.py:31 -#: terminal/views/terminal.py:47 terminal/views/terminal.py:60 +#: templates/_nav.html:72 msgid "Terminal" msgstr "终端管理" @@ -3996,7 +3998,7 @@ msgstr "账户列表" msgid "Sync instance" msgstr "同步实例" -#: templates/_nav_user.html:9 +#: templates/_nav_user.html:11 msgid "My Applications" msgstr "我的应用" @@ -4354,10 +4356,6 @@ msgstr "信息" msgid "Session online list" msgstr "在线会话" -#: terminal/views/session.py:93 -msgid "Session offline list" -msgstr "离线会话" - #: terminal/views/terminal.py:32 msgid "Terminal list" msgstr "终端列表" @@ -5770,7 +5768,7 @@ msgid "Interface settings" msgstr "界面设置" #: xpack/plugins/interface/templates/interface/interface.html:15 -#: xpack/plugins/interface/views.py:25 +#: xpack/plugins/interface/views.py:24 xpack/plugins/interface/views.py:25 msgid "Interface setting" msgstr "界面设置" @@ -5793,10 +5791,6 @@ msgstr "恢复默认成功!" msgid "Restore default failed." msgstr "恢复默认失败!" -#: xpack/plugins/interface/views.py:24 -msgid "Interface" -msgstr "界面" - #: xpack/plugins/interface/views.py:51 msgid "It is already in the default setting state!" msgstr "当前已经是初始化状态!" @@ -5900,7 +5894,9 @@ msgstr "无效的许可证" msgid "Admin" msgstr "管理员" -#: xpack/plugins/orgs/meta.py:8 +#: xpack/plugins/orgs/meta.py:8 xpack/plugins/orgs/views.py:26 +#: xpack/plugins/orgs/views.py:43 xpack/plugins/orgs/views.py:60 +#: xpack/plugins/orgs/views.py:77 msgid "Organizations" msgstr "组织管理" @@ -5917,19 +5913,10 @@ msgstr "添加管理员" msgid "Create organization " msgstr "创建组织" -#: xpack/plugins/orgs/views.py:26 -msgid "Org" -msgstr "组织" - #: xpack/plugins/orgs/views.py:27 msgid "Org list" msgstr "组织列表" -#: xpack/plugins/orgs/views.py:43 xpack/plugins/orgs/views.py:60 -#: xpack/plugins/orgs/views.py:77 -msgid "Orgs" -msgstr "组织" - #: xpack/plugins/orgs/views.py:44 msgid "Create org" msgstr "创建组织" @@ -5955,15 +5942,6 @@ msgstr "密码匣子" msgid "vault create" msgstr "创建" -#~ msgid "Update failed!" -#~ msgstr "更新失败" - -#~ msgid "Update auth" -#~ msgstr "更新认证" - -#~ msgid "Password version" -#~ msgstr "密码版本" - #~ msgid "User does not exist" #~ msgstr "用户不存在" diff --git a/apps/locale/zh/LC_MESSAGES/djangojs.mo b/apps/locale/zh/LC_MESSAGES/djangojs.mo index aab4a06e6150424d2779b534a47cd2a73051e6c1..2d0fc71a4258fd6cd0e7e6a6c902dec690efceb1 100644 GIT binary patch delta 730 zcmXxizc0f<7{~Fatrpe#QLP{KJF#dGR0tL#213GOl2}AAU?6N=B*J2lt~L>gfpixJ z34?`%M8rn;8<2Q^zCD**Uw7Z@-969U?I%tWnYUO$)+kNXdTQKf)`k&3Ka_J!;RWhH zuh@@27{cCwSs@N#5JxeF<2ZqHxP&Keyu83HO1}zA%`(>NKBTdPfe}<7Q`m?rsEzlW zr&vV)4vX;toADLP@E2z=N;C>^9?NkNr*R9}*lsb({`O2G!H0KLq~AEqDJ(F%j{Y&} z#qk=`_=H+GOcb)hS%VS!O*nwWU6+oyfvT(eFA7S9WxarEy`EV$>Wy%!DeuwnHmrimoAU0w3UwtadR)pfdYJVe q1xMF5S2uD!f%QPRucN1{xw~&L-IY5F&H6$g+4Ha6gPgBu&;JMKs5}q= delta 701 zcmXxi%`1da6vy#1FBoII%rJvtu&_ZA(=@SRLye?SvbSPqp=38(*+>&hkwn?ZQ&tof zHkALsij*wXl$Y}TJ>9u=`rP}>JolV?&vTmGPL^I0;XPyY5Zy#9U^alisBsuH8^j~* z#V5?;C)Q$r$gB>BFo9W|#Ti`1U97=xY(xv2H9-@yE?I_20}qB!1>{l1ETR&wJIfeh z?O{D$V;??XGrr>jR#1f%$l8KMEaEaM@g=H|J4}+_o|&l9H=N?s^Ss@~dWU1R;W=jU z7Pax0^9N(BgH$z+%{Yw()c\n" "Language-Team: LANGUAGE \n" @@ -17,58 +17,58 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: static/js/jumpserver.js:249 +#: static/js/jumpserver.js:263 msgid "Update is successful!" msgstr "更新成功" -#: static/js/jumpserver.js:251 +#: static/js/jumpserver.js:265 msgid "An unknown error occurred while updating.." msgstr "更新时发生未知错误" -#: static/js/jumpserver.js:315 static/js/jumpserver.js:352 -#: static/js/jumpserver.js:355 +#: static/js/jumpserver.js:329 static/js/jumpserver.js:366 +#: static/js/jumpserver.js:369 msgid "Error" msgstr "错误" -#: static/js/jumpserver.js:315 +#: static/js/jumpserver.js:329 msgid "Being used by the asset, please unbind the asset first." msgstr "正在被资产使用中,请先解除资产绑定" -#: static/js/jumpserver.js:321 static/js/jumpserver.js:362 +#: static/js/jumpserver.js:335 static/js/jumpserver.js:376 msgid "Delete the success" msgstr "删除成功" -#: static/js/jumpserver.js:327 +#: static/js/jumpserver.js:341 msgid "Are you sure about deleting it?" msgstr "你确定删除吗 ?" -#: static/js/jumpserver.js:331 static/js/jumpserver.js:372 +#: static/js/jumpserver.js:345 static/js/jumpserver.js:386 msgid "Cancel" msgstr "取消" -#: static/js/jumpserver.js:333 static/js/jumpserver.js:374 +#: static/js/jumpserver.js:347 static/js/jumpserver.js:388 msgid "Confirm" msgstr "确认" -#: static/js/jumpserver.js:352 +#: static/js/jumpserver.js:366 msgid "" "The organization contains undeleted information. Please try again after " "deleting" msgstr "组织中包含未删除信息,请删除后重试" -#: static/js/jumpserver.js:355 +#: static/js/jumpserver.js:369 msgid "" "Do not perform this operation under this organization. Try again after " "switching to another organization" msgstr "请勿在此组织下执行此操作,切换到其他组织后重试" -#: static/js/jumpserver.js:368 +#: static/js/jumpserver.js:382 msgid "" "Please ensure that the following information in the organization has been " "deleted" msgstr "请确保组织内的以下信息已删除" -#: static/js/jumpserver.js:369 +#: static/js/jumpserver.js:383 msgid "" "User list、User group、Asset list、Domain list、Admin user、System user、" "Labels、Asset permission" @@ -76,76 +76,80 @@ msgstr "" "用户列表、用户组、资产列表、网域列表、管理用户、系统用户、标签管理、资产授权" "规则" -#: static/js/jumpserver.js:408 +#: static/js/jumpserver.js:422 msgid "Loading ..." msgstr "加载中 ..." -#: static/js/jumpserver.js:409 +#: static/js/jumpserver.js:423 msgid "Search" msgstr "搜索" -#: static/js/jumpserver.js:412 +#: static/js/jumpserver.js:426 #, javascript-format msgid "Selected item %d" msgstr "选中 %d 项" -#: static/js/jumpserver.js:416 +#: static/js/jumpserver.js:430 msgid "Per page _MENU_" msgstr "每页 _MENU_" -#: static/js/jumpserver.js:417 +#: static/js/jumpserver.js:431 msgid "" "Displays the results of items _START_ to _END_; A total of _TOTAL_ entries" msgstr "显示第 _START_ 至 _END_ 项结果; 总共 _TOTAL_ 项" -#: static/js/jumpserver.js:420 +#: static/js/jumpserver.js:434 msgid "No match" msgstr "没有匹配项" -#: static/js/jumpserver.js:421 +#: static/js/jumpserver.js:435 msgid "No record" msgstr "没有记录" -#: static/js/jumpserver.js:563 +#: static/js/jumpserver.js:577 msgid "Unknown error occur" msgstr "" -#: static/js/jumpserver.js:800 +#: static/js/jumpserver.js:816 msgid "Password minimum length {N} bits" msgstr "密码最小长度 {N} 位" -#: static/js/jumpserver.js:801 +#: static/js/jumpserver.js:817 msgid "Must contain capital letters" msgstr "必须包含大写字母" -#: static/js/jumpserver.js:802 +#: static/js/jumpserver.js:818 msgid "Must contain lowercase letters" msgstr "必须包含小写字母" -#: static/js/jumpserver.js:803 +#: static/js/jumpserver.js:819 msgid "Must contain numeric characters" msgstr "必须包含数字字符" -#: static/js/jumpserver.js:804 +#: static/js/jumpserver.js:820 msgid "Must contain special characters" msgstr "必须包含特殊字符" -#: static/js/jumpserver.js:976 +#: static/js/jumpserver.js:995 msgid "Export failed" msgstr "导出失败" -#: static/js/jumpserver.js:993 +#: static/js/jumpserver.js:1012 msgid "Import Success" msgstr "导入成功" -#: static/js/jumpserver.js:998 +#: static/js/jumpserver.js:1017 msgid "Update Success" msgstr "更新成功" -#: static/js/jumpserver.js:1028 +#: static/js/jumpserver.js:1018 +msgid "Count" +msgstr "数量" + +#: static/js/jumpserver.js:1047 msgid "Import failed" msgstr "导入失败" -#: static/js/jumpserver.js:1033 +#: static/js/jumpserver.js:1052 msgid "Update failed" msgstr "更新失败" diff --git a/apps/static/js/jumpserver.js b/apps/static/js/jumpserver.js index f86ca1344..5eac258f8 100644 --- a/apps/static/js/jumpserver.js +++ b/apps/static/js/jumpserver.js @@ -1015,7 +1015,7 @@ function APIImportData(props){ $('#updated_failed').html(''); $('#updated_failed_detail').html(''); $('#success_updated').html(gettext("Update Success")); - $('#success_updated_detail').html("Count" + ": " + data.length); + $('#success_updated_detail').html(gettext("Count") + ": " + data.length); } props.data_table.ajax.reload() diff --git a/apps/terminal/views/command.py b/apps/terminal/views/command.py index 222701db1..c1a5eb393 100644 --- a/apps/terminal/views/command.py +++ b/apps/terminal/views/command.py @@ -48,7 +48,7 @@ class CommandListView(DatetimeSearchMixin, PermissionsMixin, ListView): def get_context_data(self, **kwargs): context = { - 'app': _('Terminal'), + 'app': _('Sessions'), 'action': _('Command list'), 'user_list': utils.get_session_user_list(), 'asset_list': utils.get_session_asset_list(), diff --git a/apps/terminal/views/session.py b/apps/terminal/views/session.py index 369053a61..cf4484c06 100644 --- a/apps/terminal/views/session.py +++ b/apps/terminal/views/session.py @@ -71,7 +71,7 @@ class SessionOnlineListView(SessionListView): def get_context_data(self, **kwargs): context = { - 'app': _('Terminal'), + 'app': _('Sessions'), 'action': _('Session online list'), 'type': 'online', 'now': timezone.now(), @@ -89,8 +89,8 @@ class SessionOfflineListView(SessionListView): def get_context_data(self, **kwargs): context = { - 'app': _('Terminal'), - 'action': _('Session offline list'), + 'app': _('Sessions'), + 'action': _('Session offline'), 'now': timezone.now(), } kwargs.update(context) @@ -113,7 +113,7 @@ class SessionDetailView(SingleObjectMixin, PermissionsMixin, ListView): def get_context_data(self, **kwargs): context = { - 'app': _('Terminal'), + 'app': _('Sessions'), 'action': _('Session detail'), } kwargs.update(context) diff --git a/apps/terminal/views/terminal.py b/apps/terminal/views/terminal.py index e5d4658ec..5ddb9312e 100644 --- a/apps/terminal/views/terminal.py +++ b/apps/terminal/views/terminal.py @@ -28,7 +28,7 @@ class TerminalListView(PermissionsMixin, ListView): def get_context_data(self, **kwargs): context = super(TerminalListView, self).get_context_data(**kwargs) context.update({ - 'app': _('Terminal'), + 'app': _('Sessions'), 'action': _('Terminal list'), 'form': self.form_class() }) @@ -44,7 +44,7 @@ class TerminalUpdateView(PermissionsMixin, UpdateView): def get_context_data(self, **kwargs): context = super(TerminalUpdateView, self).get_context_data(**kwargs) - context.update({'app': _('Terminal'), 'action': _('Update terminal')}) + context.update({'app': _('Sessions'), 'action': _('Update terminal')}) return context @@ -57,7 +57,7 @@ class TerminalDetailView(PermissionsMixin, DetailView): def get_context_data(self, **kwargs): context = super(TerminalDetailView, self).get_context_data(**kwargs) context.update({ - 'app': _('Terminal'), + 'app': _('Sessions'), 'action': _('Terminal detail') }) return context From d563216e3f479974f38b0243fc65c374ab3dafcb Mon Sep 17 00:00:00 2001 From: BaiJiangJie Date: Fri, 21 Jun 2019 10:59:08 +0800 Subject: [PATCH 5/7] =?UTF-8?q?[Bugfix]=20=E4=BF=AE=E5=A4=8D=E8=B5=84?= =?UTF-8?q?=E4=BA=A7=E6=B2=A1=E6=9C=89=E7=AE=A1=E7=90=86=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=97=B6=E8=8E=B7=E5=8F=96connectivity=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/models/asset.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/assets/models/asset.py b/apps/assets/models/asset.py index 4f7509d4f..3b9fef85e 100644 --- a/apps/assets/models/asset.py +++ b/apps/assets/models/asset.py @@ -250,6 +250,8 @@ class Asset(OrgModelMixin): @property def connectivity(self): + if not self.admin_user: + return self.UNKNOWN return self.admin_user.get_connectivity_of(self) @connectivity.setter From bb1a94124010d66e39a50523b76b592e28e0053d Mon Sep 17 00:00:00 2001 From: BaiJiangJie <32935519+BaiJiangJie@users.noreply.github.com> Date: Fri, 21 Jun 2019 11:19:53 +0800 Subject: [PATCH 6/7] =?UTF-8?q?[Update]=20=E4=BC=98=E5=8C=96=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E5=8F=AF=E8=BF=9E=E6=8E=A5=E6=80=A7=E6=97=B6=E7=BB=93?= =?UTF-8?q?=E6=9E=9C=E8=8E=B7=E5=8F=96=20(#2825)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/tasks.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/apps/assets/tasks.py b/apps/assets/tasks.py index 81fbf5880..149e9fa2c 100644 --- a/apps/assets/tasks.py +++ b/apps/assets/tasks.py @@ -209,9 +209,13 @@ def test_asset_connectivity_util(assets, task_name=None): ) result = task.run() summary = result[1] - results_summary['success'] &= summary['success'] - results_summary['contacted'].update(summary['contacted']) - results_summary['dark'].update(summary['dark']) + success = summary.get('success', False) + contacted = summary.get('contacted', {}) + dark = summary.get('dark', {}) + + results_summary['success'] &= success + results_summary['contacted'].update(contacted) + results_summary['dark'].update(dark) for asset in assets: if asset.hostname in results_summary.get('dark', {}): @@ -330,14 +334,17 @@ def test_system_user_connectivity_util(system_user, assets, task_name): task, created = update_or_create_ansible_task( task_name=task_name, hosts=value['hosts'], tasks=value['tasks'], pattern='all', options=const.TASK_OPTIONS, - run_as=system_user.username, - created_by=system_user.org_id, + run_as=system_user.username, created_by=system_user.org_id, ) result = task.run() summary = result[1] - results_summary['success'] &= summary['success'] - results_summary['contacted'].update(summary['contacted']) - results_summary['dark'].update(summary['dark']) + success = summary.get('success', False) + contacted = summary.get('contacted', {}) + dark = summary.get('dark', {}) + + results_summary['success'] &= success + results_summary['contacted'].update(contacted) + results_summary['dark'].update(dark) set_system_user_connectivity_info(system_user, results_summary) return results_summary From 3da43bf01d0e49983e73c64e29c0d7d7205d43bc Mon Sep 17 00:00:00 2001 From: BaiJiangJie Date: Fri, 21 Jun 2019 12:01:18 +0800 Subject: [PATCH 7/7] =?UTF-8?q?[Update]=20=E4=BF=AE=E6=94=B9=E8=B5=84?= =?UTF-8?q?=E4=BA=A7=E4=BD=BF=E7=94=A8patch=E6=96=B9=E6=B3=95=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E6=97=B6=E9=A1=B5=E9=9D=A2=E4=B8=8D=E6=8F=90=E7=A4=BA?= =?UTF-8?q?messages=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/common/mixins.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/common/mixins.py b/apps/common/mixins.py index 694e78d50..b46673cd6 100644 --- a/apps/common/mixins.py +++ b/apps/common/mixins.py @@ -224,7 +224,7 @@ class ApiMessageMixin: def dispatch(self, request, *args, **kwargs): resp = super().dispatch(request, *args, **kwargs) - if request.method.lower() in ("get", "delete"): + if request.method.lower() in ("get", "delete", "patch"): return resp if resp.status_code >= 400: return resp