From 290d584ac96b6ab616820e47ed3f4fb6b6ead59f Mon Sep 17 00:00:00 2001 From: Bai Date: Fri, 23 Jul 2021 16:41:02 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E6=A0=A1=E9=AA=8C=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E7=94=A8=E6=88=B7/=E8=B4=A6=E5=8F=B7=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E4=B8=8D=E8=83=BD=E5=8C=85=E5=90=AB=20{{=20=E5=AD=97=E7=AC=A6?= =?UTF-8?q?=EF=BC=9B=E5=8D=87=E7=BA=A7=E4=BE=9D=E8=B5=96=E5=8C=85ansible?= =?UTF-8?q?=3D=3D2.9.24?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/serializers/account.py | 6 +- apps/assets/serializers/system_user.py | 6 +- apps/assets/serializers/utils.py | 9 +++ apps/locale/zh/LC_MESSAGES/django.mo | Bin 76378 -> 76457 bytes apps/locale/zh/LC_MESSAGES/django.po | 91 +++++++++++++------------ requirements/requirements.txt | 4 +- 6 files changed, 67 insertions(+), 49 deletions(-) create mode 100644 apps/assets/serializers/utils.py diff --git a/apps/assets/serializers/account.py b/apps/assets/serializers/account.py index 8b18e7e33..316fecc7d 100644 --- a/apps/assets/serializers/account.py +++ b/apps/assets/serializers/account.py @@ -5,6 +5,7 @@ from assets.models import AuthBook from orgs.mixins.serializers import BulkOrgResourceModelSerializer from .base import AuthSerializerMixin +from .utils import validate_password_contains_left_double_curly_bracket class AccountSerializer(AuthSerializerMixin, BulkOrgResourceModelSerializer): @@ -21,7 +22,10 @@ class AccountSerializer(AuthSerializerMixin, BulkOrgResourceModelSerializer): fields = fields_small + fields_fk extra_kwargs = { 'username': {'required': True}, - 'password': {'write_only': True}, + 'password': { + 'write_only': True, + "validators": [validate_password_contains_left_double_curly_bracket] + }, 'private_key': {'write_only': True}, 'public_key': {'write_only': True}, } diff --git a/apps/assets/serializers/system_user.py b/apps/assets/serializers/system_user.py index bfd9fa511..c5b9c2064 100644 --- a/apps/assets/serializers/system_user.py +++ b/apps/assets/serializers/system_user.py @@ -6,6 +6,7 @@ from common.mixins.serializers import BulkSerializerMixin from common.utils import ssh_pubkey_gen from orgs.mixins.serializers import BulkOrgResourceModelSerializer from ..models import SystemUser, Asset +from .utils import validate_password_contains_left_double_curly_bracket from .base import AuthSerializerMixin __all__ = [ @@ -40,7 +41,10 @@ class SystemUserSerializer(AuthSerializerMixin, BulkOrgResourceModelSerializer): fields_m2m = ['cmd_filters', 'assets_amount'] fields = fields_small + fields_m2m extra_kwargs = { - 'password': {"write_only": True}, + 'password': { + "write_only": True, + "validators": [validate_password_contains_left_double_curly_bracket] + }, 'public_key': {"write_only": True}, 'private_key': {"write_only": True}, 'token': {"write_only": True}, diff --git a/apps/assets/serializers/utils.py b/apps/assets/serializers/utils.py new file mode 100644 index 000000000..9110a9978 --- /dev/null +++ b/apps/assets/serializers/utils.py @@ -0,0 +1,9 @@ +from django.utils.translation import ugettext_lazy as _ +from rest_framework import serializers + + +def validate_password_contains_left_double_curly_bracket(password): + # validate password contains left double curly bracket + # check password not contains `{{` + if '{{' in password: + raise serializers.ValidationError(_('Password can not contains `{{` ')) diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index fb2231ca7390fd8a7fd3438a1361084e05f46389..d18e7ef34d81e370bbecd60556fd4de27a14eadf 100644 GIT binary patch delta 20499 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 delta 20430 zcmYk^2Xs}{w#M-tLJuK?5JCu$gg~gFccu5#i9Qa|3 z=XFfwdE2TG@M+S@^YW$eyry_M!1D&Qp$;3h^}M&J4{GOm6R;x=#7EeQ_8+zPys^al z-u1j;*rbE!UBV`9!ihpQiefy7^6ejJDSa6M|_myx68{e`XZNe}j4&!*8wZh&DJ zN<0y@()kuI!yw{qsD&Q1{1wy<+&8rvosCdbK0ju_@~9iBW%;)-gt%Kz_Fso(pjAvo zO|Tf%VJk-AG1OtZZS_ID+(a>`iOQnxunwwUJJdpYqQ?K+^7BzQxDM5RpO1o`(FM$e z4^SOa^mZ%HfqEMXUJAc7hp-nW;2_jlSc-a<>ri*H3w7F)Py?Q~`kScn9-+=mwmzQgsR2&z5{>a65OZG8pQKrPL7sI&1t=EUx(ofw1a zx61PSF$?i^^l6}fEs>?4o3H?C0Yy*~l*0(DjJlK7W><5NIRV3{pNE-o9qNYmqjvN% zYTO&<{eJAf68~Bvu)k{#HsX<}eqW<*;5)0|fXNH8 z_$X>8PovshMcy8tcZY(uB6_g<#)?NZtcKdk24*MJBN>L;nd$f*F0lHPL)@L^LXDRX zwR1&KJ6s9%C>o%~PfV8Q-n1U2w*)H5238gL3~K?^P3h`Q7LsI5MR zh43;K#f8Wh4ru%s^0?Cf|j8czIqtXUt7JAgxrm4cpTf{In<668}9zfRl;h-Z(BSU zs}TQy>h}WmdZilSey9YYcCIvP!kU_D23mwVL~BqJ z|A1-K0kuPiQ4?H1ZQ(ss`&X#5l5VtXAAvgD(WuwAJZgbWP>;F;reJ<=00rIAVAL1G zXw*PcP={qcYT^x;68D;iQ0%oz8*03}sQ$04KEqh{KR1cI6l5K& zh}|(7m!h`%5b9A}L7nRBxD2z7bBF6kOhf!LYQeu-e9z*?Sd{#8Y>b7*yI(?s#JZiaEB;!L`e47BS1B7E%QZU>#Jyk1;(?!eE?*+R^VO zu>bnT+e{)IoIT|QapQJE-M~N$()+)FLS_;xF)!{)uJF8@sFgp&P<&~I_}$@&#TfF%QFqh~wUBpF z3+;+pcz@G}TFB?9?~y4OuJ?Zi1wFHs<~r1&*@F7+K972zpO_(2-Fu%O^=G>xX2#~I zN7l*eN1z_%42xHpdoYCjdGu+;wihoJh8 z#S%CP3*&Aqj`vZoVeE9bqm@u^N!{t}zgE(Nga#Ob+KCaUfk&er!89y~^HBp{Ky7W% z4Ex!Rx{(Bn%VIv_W~lK8VhS9KdP^o?^0+hDe+@L>DwbHo)u;u0kJ{Rus5?K2It#y} z2L2b-F5OIbhgnfKQWDEzIn?;QP!sn<_4A?5!Xy>KD9lE!XfBNDZ?U>JGc04r70e#HpwoT7?>SqtoXdpr8)tF%RBCoq^!l&M?%e1A<_#KQQ9)KEW8fL?-s0EzD1iXhjj8R|fE1lR;4&pde`zo0H_rIPcnxmdsdraO! z)a%qAHSluGkJ~XCZ(=y6p6eEp1B(#nM|}acMorWSlMkWA{ZI=Zj=mTQ6DTA<8`Rcs zM0MC^`8}uw9I^Zr)SX>NO>_@6;0x3Zq@Cv`4ny_Ji8_QuQRCJy>(68VH9#{GF_?&Y zMk7!QS%bxKBdXmk%!*I3FlL!u0ks3Zk0@vX z!%i=f7P!}8TpkFo*AV>8rF4?uQ^ z-~SZUaWrb6X{fE8i=}WG>P~;Q{7uxt9-`jw;BVX`i^l@QWw8tQ4SdP4vX#ki~9*2-HsGK(#B3+S*d6t*wSyXiL;t=!KeR zpgA0anBN;sL9fSD)B={G2HLC!xZm<8QLocA)WDBWhc)B3?yN+k>Pw>Tyr$U%Qxd<8 z+UX9Me8w>O@BgQk7-kK|paz(Zsc-@6j+USnwiPwNLDXSOLhaCf)Hht(C2oOv%_^vN zZ=)7G088W8CG3B03cES|Fkw0SUyZ`py2F#02meCdVfZT7u09qb9*hm~JJes@Cq4=~tr=JI3m0o5DQ^aAK2E&Lap$^v~)Q)UJ?Zj!+g707m{)1Y0+Kq0(Sy1(ns2hyOa4dxxu^vX~ z{eO#swxYK=0(GZ;)FGLJ+KFcviYYd^iL#)6Sj1pztYB6}J)%083*Sc_z7eRivk+tO z7)CI^_a}w)n0m7tC=_)^*-&?sAGLr|=9{Pm*1$w;gu1ges7JLQ)&7Wi3N`*E)K1() z9p=B$r&HN>i<{_k)YeQvZQTOY9k0R&+=V*j=dmO{K@D7RtLtAH^*vD)wWBRi<8?$W zxDRT+p%yRO%Km2~v7UrF977Fo71QDa)Wpxs%s;r-svv4>JD|Rxe5eJFLM>nD~ zaju}+-9$aAyQm$0^xwbf4BY1KAPBY62<(orsP}mSYGL1_2HJ;uG)J&Bp2K1oyxkqn zN~rcNQ8&;9^=O7+@z_+mWWIookI6I1%+o2cs4;0k!4pP_OkKT>f<0Q9`WhdPNx1*l@Zq(sAj(SVZp?31N`5L2%!%w;T(x~>e zu^=|V5?bjX3OR8V#^X`c7Cyol%y`;$D2i&=7Rz9NxwD_QT#{AX1k81bA;=pq*&V)J>5vcKFQHQXI z#kJ3||7y^Jga&xW>}Y;y4L>o5VP@J*K=qrC`EeO)>rY`@ylwS0&bx6NVLtLL%^~LE z^X$JSK1QMup2m_GcfqZ=HHHy?fSRyB>J*Q#`YGl-t6yR9Mstt(lX=Db!+h$aps&c3 z7u~>Ns5^|axD4vfYMJdY7xBmDWK{b#R=)>z7%y0S#|*gS#)-fv>Ju#X)wROAW?zh= z!8nVTU^e3Is5?K4dX_iMN2ne2F1z|Ps0Bw@oM3T9j3VFM;-0SF=Z$g&Z<@K-8f-9+ znAcE`;wfsvpet@+nax6|ovC5*`=|*ATRhWTi|T(E)9L+BqM$pwl$_uP1;!FTwtU1@ zcgOiqhpm*w?agjxKh(gVSv=01iMhxxwsxfZ<~H*P>I?3odCT%oP~)WfwX!RO{OXJ}V-L$vagc-_!fP|zb+_c=sEMjt+!{4dXY(V}1btBp^I3kp#eURZi}{vcj`76b zTm6OWKG*Rk3GLA%)SU$0aQUoeoLS7Qh+0TJi<_G7pcd5K>ib%LusO!^(@{4($45aO zHd=#S79X?t9BQKL7T+=d!P?|g-E{R0Q44Q@8m}|zhI*rRX1K)@t$r@HC-3`?f{tzK z-`zm5r~&e$1}K3Vpc-m|#+Vx4L$&LQdM`e)cnYfD*Qh&OfqI1dQ2j2U#{1Rj^X^;X zg_-V_n<%SU0M+45)PQv@e$VV_4mQW2CYo-}LA^)cpceK$YP{Xa^*sL*mN<*CRQzV9 zy6pzaXBI(qERFfF8fr(nnL|(u{1UZ*rKt96%SYI-v&s#2je(;pRkhHddqEcNX74E%YBOhCz2+{3iO8XiPy{Gz>MtMAS}9L#=d^ z!1Uxf`(6Mld?R6|e;@|)k9TTp*}j-n>Ig&FXn`P$6zC;P8Ej{MUZgX)ma;^L?Y z%Ap3VkJ_2esCHve1N$wWZ!SZPyWaf4+>L5~2zBFUeU^A`roHdBJRHl@ATKt>ckydn zi>tBGUv4K}nGp}%z{OA#SG2f>#Z4`4gWAE4s2lSQwTj8+T+{%|F(-bH`hNHc^>^?N zhG5`B*DefoN7*qw=Cim2s$FHXF>2g*%}z)^pVxzeRx}W`rG9HL$NUC0!E$pm>M-p? zwZCEc`=|+Dm>C|q33Fg3@^PqfN}>8y#SrHA>QhKT;%)OC)Zt3RRM-!5;1JA+voHvk zVo}^+-oR$W;eWfW?P3l>-T6e!kJE4=?!e^#4mI(yYtYXeYK}6;V^uo%u|A$b9iG@H zZlYSKJ9`T?Q74Ogm;+Id?hA|Op>|*e`qW_~1-aeaiv@{~puXFmU|I}+>b5u+h7uRS zELa8Aza?rR?aZ#`r>F&wwD>#BOuXSK`>)sOpjG^VI&4od5HtVd{xwxrj3F+DS+ObV z5p+RK*atP>aE!#Ms5@MR;keoAk7G9CYvwckuffzY>|fU*-YkZ?qY9`yuZo(e9;$t7 z)M4vp`GMvaRzKD1msoz2xfgW?k}Q7aqo4uPJaY@kj+!tJYQhAw0_suJwzw0j-zOG- zZu(KDeZINY^1D&(PoN&{uc#aF1wVK1ZBEqI?X98*=AvR4YA5EIn^6-bS$rL}z?WwF*KXnn)Yj%g zwXci%ozM=o;Lk7&CtAEv`bey>#70zyUFI!JAkO3kB)>kDPy@Y>xv&RnqVcFZpJ#rH zTHs1^E9#LRz<7LxYM(bC!1HNfkLPOt70LnV{spI5Ne?#%t_|gR=*UrLu)MFYW|4o zchKT9sD)fk;d6z%B(%~O)*vL%4U`r2g%g8XSXtCSmCX96er-?#c1P{pAd6?9&e9T8 zyIrU+yi=%g9{a42BBdK31XU4@8mKU8fI6rJBwBqJv#&V<)qax2%Tet&TfEaeirVQ5 z7W?i~(8^z!8B)0w=0G*9ggUh?P=~V%YKy-_eGkk+E%*p(ob#xOZ(07n#V=6(0#iGK zojxzZ60xWO3ZVvk12s?`)HhmV)E0I?4fF}B-4N6_=2*-7Ek6hKmMpXQ5Edpri@7l{ zjpp<5D)MlQD0P* zG5PO*HwtRd8#Uoj)C5z_*{F#ZqS~!M?a&sB&!gJkKrQsHM*}VEjToY_g{r< z{M-2CEkeC+g|Q3Pw0IS2-~(n7s{JKY|68a-c;E8>pe9Pizung_pGefWl~Da!n;-bB z(Ayk}8gQJ&Q&2xb=b;8zZ1p?LeW-;UMeV>@)Q;Rl{q1;w8ZSE7wjMQ38PnI8f(Gb< z`eynVE8|quN>8H(xMuM!iyvG30`*fZT}IbF7}Y+z8H;*L@>^UDQxexj&Wg`#L_sT0 zL`~S+Rd_>DE1hilWvGR2LQU|ax_EpU#x%-m$|HIvM%sD5`)6Fx+Z89o(~3%9D~!NT zP!o>B>^KwkO}Gy8<6ex$d#D`<4t4Ewngvnq%A&sUI#@gs^{7{%{yRMHI0b#TkIx*C z{J(KtkF|(Xh6N=5Luh@}YdQ+mZZ=lHJy;H3p}u&^W^n^IM;*St*cun%2z-vEaA>$& z*t&3g|1Xo!9Xv!$lp?E}C>zEQS3#{f5%ouBBx=Xjqh7CLsITsaI0a)P+!xV$^8l*- zMT;My9!2VGy#LzbOxfH5a-zP$63i-=Z*KAXsMGwZ<-bJrpKq=-x0(k~XW%qy!b{i_ zZ{R*`>5B|V{x5H$vb$&B4RccQ1%8f;u?`lFa*v`fYHL?x1H6K5ups}vrv3(uL`}F8 zbtC&x|A=-0^^a_SnqE$~a9?H$Y8Y*a5~u+xTU-nENSdRzx-06tei`thx$gGX)Z#|vkI&0@Bao0dZzzcMOcg*FuR!tHEHx|0d0@A#=!KNHn{q1CT8 zH=5h=L+baUCN7@GEuCF;9StENm!mpdFdw20TTouNfP$z67C{YE4)t$D zYN8f88TI`z6Z7IB)c3}HT!f+V?wfQ2>d^ia?{la6E(vX2Xg;^nSkzZ%DJ+QXEk7Dd z63<2raKiF;P;bdARKG0w-GVBj7FxsNrpR}c*9POr_w*HTcjiak*$mV(TVSq7o%#c) zf&M@(^eL)+nu2a2p{N~5Ks~Bbs0Ecn{eo(Q%$xk_XN7?&__14p)*b(=q53h&|2{*h z)8lxH>lo!9Y4?hHy_PSrByo^GwrX7HdCmDhpAr6+RpZLPpw0FF8E*=$exlD5n=dc% z+my4@<|E3DtnC{A+NxpcF4&l5{Ku+B_^J~H(slrCiZjzk*bC=dA5A`t`cu~H3h`ho ztF9dFzUI22fKNW^QqcYp*BO`czM?#o@?IPBy7e!q|68lf1fO$pV!VAcSb}|s&tW0r z#n$+&b=H_i$?+0);G9gEdAH}N0jciEU<`5RV`3Vp{SwdhKV ziT(lAqnmzj<1MF_qwcM>Sgq2K`^N1=pIHCx>iJ^dqV+{; zj*w}>b(PjFRBfN%{l#lUrQ2g;zvpjRBVYJ^qEO4I*{}5P>7QI9DsS-rWb;s7%{7J* zr*Yk*)k@-){-hd(0+#q+)+p)wm$(PlL#{}!wl=H&(Mg|KX;EFM*23B!`ih$n}l?$C^kc!4~FMBl1rb))ak>ImaN_wg5T*}ic0ywhDts>74057HGKF0q3m9?Wn z&r{QtD25(&v8Mk*?Wl$Ul=S0$9)0wQAznmzI<0r(VC;^kshh}kkoa?A{?H_Uc%hR& zTlml6{;GAt@@`=S{fOl^u$Pna4h*JOIOUP#KPEopA5bS>fvIF0l1)Q)C;rN%&t38{ zw9*ejeU|$V)rm^CkJ^INT=L(m6WwtfrCeP4`0+gLyJI#RqXzM1D;L4fh!@i~zxDZ$ zazCptLryP6FXB~P$B5IANagQcH!M{~GU@$e>PF>UNxlK&=raoAiS>(1pNsw<>sBw{ zfVO?9c>@PgTLU*DzkWSGS7l;-x|;(iFXFoCuUIc%)v9FwrImgv)Zn^8&)!%K6Ukqv ztWOT&Z)sbKYcl2O_=4-4e{sFIbce`fr`0TfQoV@Cf#m=Dd`it?t~a=n`~mgDQu(Oe z?T@Ss&~DJ-vl z2-K$y@fqq{U~hbfoPI@=W^*>xkMxZvKZbk-tVrDu%DcG^t23WbT&-w7n)>yW{ajyA z|2H{(u5tZ9+=pv3ZPIb2(1YcZKyDpZc`kkW(B}m8S-3`%E9ZW%xJv!!G_HsK#0Fud zPg32S=okF)n;yNW*={|pK{Ac` z&p*k}_djSQ1AO7Ku z;}V)#|Jk%SXT6@%YBg5~bzg8jBfpb)mp`d-M91}HhSK^mnW>b2rgo9_oQKt@8^KkY za#Py;_xX{w`ut12A3mo|H_E5E0w|y5(*HBB;atuA4Vy$q_O>4CwTSXzYA(^LoPSi4 z>cs=>0IPO7*&Vc)LJNIzQy#!Imbe1(?>No>ZZ{#_cLqjC-W)SBQAZG zkUznA`h4T>+B9FlR{!Lt(Zzox-t_8Gzo9iUGXxcvTUu#;w?rlnO zWEYav=LvBpTCbxVkNOOz?kCD~Fb9t0`jD%gtM=y7C&}NpSzP!yvihXPSh9^Mck!=m z7FGJV)l9=})aWytE47uECujIENqtRnZHWKzzid|2_coaaTzk19sA-SSs9j+_)v*}m zQ>-qEE0OxE#K%>^GpIxP3b{9}eN)Q%T;yuawaM~@$Uh_wv-)VteEiFshjyGmt_ovs z;QGtjtCD|;@;>64Lv96awo?vM1)tNzshPhWxxzN4@<%9NCO4Ztues6^uOqJIk8KeV zFvDNIMRdSI|647hI{sq4{-)JD%3oQWhf(g6`|nedd?>-!_=x-qMvJC=id=qdO|C50 z8OjgH{Y?G4Tz84f`Y*J2BjB(C=q%`?>fxX6{4274hd>S1Er>_JCD& z#L52NEu(xVs7)k#WxZO{atd)Ku7Wl)#sB~8r2S*^>8-91{kB\n" "Language-Team: JumpServer team\n" @@ -62,7 +62,7 @@ msgstr "激活中" #: terminal/models/storage.py:26 terminal/models/terminal.py:114 #: tickets/models/ticket.py:73 users/models/group.py:16 #: users/models/user.py:584 xpack/plugins/change_auth_plan/models.py:77 -#: xpack/plugins/cloud/models.py:35 xpack/plugins/cloud/models.py:117 +#: xpack/plugins/cloud/models.py:35 xpack/plugins/cloud/models.py:116 #: xpack/plugins/gathered_user/models.py:26 msgid "Comment" msgstr "备注" @@ -120,14 +120,14 @@ msgstr "系统用户" #: acls/models/login_asset_acl.py:22 #: applications/serializers/attrs/application_category/remote_app.py:33 #: assets/models/asset.py:357 assets/models/authbook.py:15 -#: assets/models/gathered_user.py:14 assets/serializers/system_user.py:196 +#: assets/models/gathered_user.py:14 assets/serializers/system_user.py:200 #: audits/models.py:38 perms/models/asset_permission.py:99 #: templates/index.html:82 terminal/backends/command/models.py:19 #: terminal/backends/command/serializers.py:13 terminal/models/session.py:40 #: users/templates/users/user_asset_permission.html:40 #: users/templates/users/user_asset_permission.html:70 #: xpack/plugins/change_auth_plan/models.py:282 -#: xpack/plugins/cloud/models.py:221 +#: xpack/plugins/cloud/models.py:220 msgid "Asset" msgstr "资产" @@ -156,7 +156,7 @@ msgstr "" #: acls/serializers/login_acl.py:30 acls/serializers/login_asset_acl.py:31 #: applications/serializers/attrs/application_type/mysql_workbench.py:18 #: assets/models/asset.py:180 assets/models/domain.py:49 -#: assets/serializers/account.py:11 settings/serializers/settings.py:113 +#: assets/serializers/account.py:12 settings/serializers/settings.py:113 #: users/templates/users/_granted_assets.html:26 #: users/templates/users/user_asset_permission.html:156 msgid "IP" @@ -196,7 +196,7 @@ msgstr "" "10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64 (支持网域)" #: acls/serializers/login_asset_acl.py:35 assets/models/asset.py:181 -#: assets/serializers/account.py:12 assets/serializers/gathered_user.py:23 +#: assets/serializers/account.py:13 assets/serializers/gathered_user.py:23 #: settings/serializers/settings.py:112 #: users/templates/users/_granted_assets.html:25 #: users/templates/users/user_asset_permission.html:157 @@ -290,7 +290,7 @@ msgid "Application type" msgstr "应用类型" #: applications/serializers/application.py:87 -#: assets/serializers/system_user.py:49 assets/serializers/system_user.py:197 +#: assets/serializers/system_user.py:53 assets/serializers/system_user.py:201 msgid "Login mode display" msgstr "认证方式(显示名称)" @@ -392,7 +392,7 @@ msgstr "系统平台" #: assets/models/asset.py:186 assets/serializers/asset.py:65 #: perms/serializers/asset/user_permission.py:41 -#: xpack/plugins/cloud/models.py:108 xpack/plugins/cloud/serializers.py:182 +#: xpack/plugins/cloud/models.py:107 xpack/plugins/cloud/serializers.py:182 msgid "Protocols" msgstr "协议组" @@ -411,7 +411,7 @@ msgstr "激活" #: assets/models/asset.py:193 assets/models/cluster.py:19 #: assets/models/user.py:191 assets/models/user.py:326 templates/_nav.html:44 -#: xpack/plugins/cloud/models.py:97 xpack/plugins/cloud/serializers.py:204 +#: xpack/plugins/cloud/models.py:96 xpack/plugins/cloud/serializers.py:204 msgid "Admin user" msgstr "特权用户" @@ -489,7 +489,7 @@ msgstr "标签管理" #: common/db/models.py:70 common/mixins/models.py:49 orgs/models.py:24 #: orgs/models.py:422 perms/models/base.py:55 users/models/user.py:592 #: users/serializers/group.py:33 xpack/plugins/change_auth_plan/models.py:81 -#: xpack/plugins/cloud/models.py:123 xpack/plugins/gathered_user/models.py:30 +#: xpack/plugins/cloud/models.py:122 xpack/plugins/gathered_user/models.py:30 msgid "Created by" msgstr "创建者" @@ -501,7 +501,7 @@ msgstr "创建者" #: assets/models/label.py:25 common/db/models.py:72 common/mixins/models.py:50 #: ops/models/adhoc.py:38 ops/models/command.py:29 orgs/models.py:25 #: orgs/models.py:420 perms/models/base.py:56 users/models/group.py:18 -#: users/models/user.py:774 xpack/plugins/cloud/models.py:126 +#: users/models/user.py:774 xpack/plugins/cloud/models.py:125 msgid "Date created" msgstr "创建日期" @@ -700,7 +700,7 @@ msgstr "全称" msgid "Parent key" msgstr "ssh私钥" -#: assets/models/node.py:559 assets/serializers/system_user.py:195 +#: assets/models/node.py:559 assets/serializers/system_user.py:199 #: users/templates/users/user_asset_permission.html:41 #: users/templates/users/user_asset_permission.html:73 #: users/templates/users/user_asset_permission.html:158 @@ -795,7 +795,7 @@ msgstr "节点名称" msgid "Hardware info" msgstr "硬件信息" -#: assets/serializers/asset.py:97 assets/serializers/system_user.py:213 +#: assets/serializers/asset.py:97 assets/serializers/system_user.py:217 #: orgs/mixins/serializers.py:26 msgid "Org name" msgstr "组织名称" @@ -820,7 +820,7 @@ msgstr "应用数量" msgid "Gateways count" msgstr "网关数量" -#: assets/serializers/label.py:12 assets/serializers/system_user.py:48 +#: assets/serializers/label.py:12 assets/serializers/system_user.py:52 #: perms/serializers/asset/permission.py:74 msgid "Assets amount" msgstr "资产数量" @@ -842,49 +842,53 @@ msgstr "不能包含: /" msgid "The same level node name cannot be the same" msgstr "同级别节点名字不能重复" -#: assets/serializers/system_user.py:25 audits/serializers.py:29 +#: assets/serializers/system_user.py:26 audits/serializers.py:29 #: tickets/serializers/ticket/meta/ticket_type/apply_application.py:31 #: tickets/serializers/ticket/ticket.py:19 msgid "Type display" msgstr "类型名称" -#: assets/serializers/system_user.py:26 +#: assets/serializers/system_user.py:27 msgid "SSH key fingerprint" msgstr "密钥指纹" -#: assets/serializers/system_user.py:47 +#: assets/serializers/system_user.py:51 #: perms/serializers/asset/permission.py:75 msgid "Nodes amount" msgstr "节点数量" -#: assets/serializers/system_user.py:51 +#: assets/serializers/system_user.py:55 msgid "Ad domain" msgstr "Ad 网域" -#: assets/serializers/system_user.py:91 +#: assets/serializers/system_user.py:95 msgid "Username same with user with protocol {} only allow 1" msgstr "用户名和用户相同的一种协议只允许存在一个" -#: assets/serializers/system_user.py:105 +#: assets/serializers/system_user.py:109 msgid "* Automatic login mode must fill in the username." msgstr "自动登录模式,必须填写用户名" -#: assets/serializers/system_user.py:119 +#: assets/serializers/system_user.py:123 msgid "Path should starts with /" msgstr "路径应该以 / 开头" -#: assets/serializers/system_user.py:144 +#: assets/serializers/system_user.py:148 msgid "Password or private key required" msgstr "密码或密钥密码需要一个" -#: assets/serializers/system_user.py:212 +#: assets/serializers/system_user.py:216 msgid "System user name" msgstr "系统用户名称" -#: assets/serializers/system_user.py:222 +#: assets/serializers/system_user.py:226 msgid "Asset hostname" msgstr "资产主机名" +#: assets/serializers/utils.py:9 +msgid "Password can not contains `{{` " +msgstr "密码不能包含 `{{` 字符" + #: assets/tasks/account_connectivity.py:30 msgid "The asset {} system platform {} does not support run Ansible tasks" msgstr "资产 {} 系统平台 {} 不支持运行 Ansible 任务" @@ -1126,12 +1130,12 @@ msgid "MFA" msgstr "多因子认证" #: audits/models.py:106 xpack/plugins/change_auth_plan/models.py:303 -#: xpack/plugins/cloud/models.py:180 +#: xpack/plugins/cloud/models.py:179 msgid "Reason" msgstr "原因" #: audits/models.py:107 tickets/models/ticket.py:47 -#: xpack/plugins/cloud/models.py:176 xpack/plugins/cloud/models.py:225 +#: xpack/plugins/cloud/models.py:175 xpack/plugins/cloud/models.py:224 msgid "Status" msgstr "状态" @@ -1165,7 +1169,7 @@ msgid "Hosts display" msgstr "主机名称" #: audits/serializers.py:89 ops/models/command.py:26 -#: xpack/plugins/cloud/models.py:174 +#: xpack/plugins/cloud/models.py:173 msgid "Result" msgstr "结果" @@ -1849,7 +1853,7 @@ msgid "Regularly perform" msgstr "定期执行" #: ops/mixin.py:106 ops/mixin.py:147 -#: xpack/plugins/change_auth_plan/serializers.py:51 +#: xpack/plugins/change_auth_plan/serializers.py:55 msgid "Periodic perform" msgstr "定时执行" @@ -3378,7 +3382,7 @@ msgstr "" msgid "Endpoint" msgstr "端点" -#: terminal/serializers/storage.py:66 xpack/plugins/cloud/models.py:218 +#: terminal/serializers/storage.py:66 xpack/plugins/cloud/models.py:217 msgid "Region" msgstr "地域" @@ -3968,7 +3972,7 @@ msgid "Set password" msgstr "设置密码" #: users/serializers/user.py:27 xpack/plugins/change_auth_plan/models.py:61 -#: xpack/plugins/change_auth_plan/serializers.py:29 +#: xpack/plugins/change_auth_plan/serializers.py:30 msgid "Password strategy" msgstr "密码策略" @@ -4661,19 +4665,19 @@ msgstr "步骤" msgid "Change auth plan task" msgstr "改密计划任务" -#: xpack/plugins/change_auth_plan/serializers.py:52 +#: xpack/plugins/change_auth_plan/serializers.py:56 msgid "Run times" msgstr "执行次数" -#: xpack/plugins/change_auth_plan/serializers.py:68 +#: xpack/plugins/change_auth_plan/serializers.py:72 msgid "* Please enter custom password" msgstr "* 请输入自定义密码" -#: xpack/plugins/change_auth_plan/serializers.py:78 +#: xpack/plugins/change_auth_plan/serializers.py:82 msgid "* Please enter the correct password length" msgstr "* 请输入正确的密码长度" -#: xpack/plugins/change_auth_plan/serializers.py:81 +#: xpack/plugins/change_auth_plan/serializers.py:85 msgid "* Password length range 6-30 bits" msgstr "* 密码长度范围 6-30 位" @@ -4793,35 +4797,35 @@ msgstr "地域" msgid "Hostname strategy" msgstr "主机名策略" -#: xpack/plugins/cloud/models.py:111 xpack/plugins/cloud/serializers.py:185 +#: xpack/plugins/cloud/models.py:110 xpack/plugins/cloud/serializers.py:185 msgid "IP network segment group" msgstr "IP网段组" -#: xpack/plugins/cloud/models.py:114 xpack/plugins/cloud/serializers.py:207 +#: xpack/plugins/cloud/models.py:113 xpack/plugins/cloud/serializers.py:207 msgid "Always update" msgstr "总是更新" -#: xpack/plugins/cloud/models.py:120 +#: xpack/plugins/cloud/models.py:119 msgid "Date last sync" msgstr "最后同步日期" -#: xpack/plugins/cloud/models.py:131 xpack/plugins/cloud/models.py:172 +#: xpack/plugins/cloud/models.py:130 xpack/plugins/cloud/models.py:171 msgid "Sync instance task" msgstr "同步实例任务" -#: xpack/plugins/cloud/models.py:183 xpack/plugins/cloud/models.py:228 +#: xpack/plugins/cloud/models.py:182 xpack/plugins/cloud/models.py:227 msgid "Date sync" msgstr "同步日期" -#: xpack/plugins/cloud/models.py:208 +#: xpack/plugins/cloud/models.py:207 msgid "Sync task" msgstr "同步任务" -#: xpack/plugins/cloud/models.py:212 +#: xpack/plugins/cloud/models.py:211 msgid "Sync instance task history" msgstr "同步实例任务历史" -#: xpack/plugins/cloud/models.py:215 +#: xpack/plugins/cloud/models.py:214 msgid "Instance" msgstr "实例" @@ -5106,6 +5110,3 @@ msgstr "旗舰版" #: xpack/plugins/license/models.py:77 msgid "Community edition" msgstr "社区版" - -#~ msgid "Password cannot be empty" -#~ msgstr "密码不能为空" diff --git a/requirements/requirements.txt b/requirements/requirements.txt index d8e34784e..5f25ae860 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -1,5 +1,5 @@ amqp==2.5.2 -ansible==2.8.8 +ansible==2.9.24 asn1crypto==0.24.0 bcrypt==3.1.4 billiard==3.6.3.0 @@ -113,4 +113,4 @@ termcolor==1.1.0 azure-identity==1.5.0 azure-mgmt-subscription==1.0.0 qingcloud-sdk==1.2.12 -django-simple-history==3.0.0 \ No newline at end of file +django-simple-history==3.0.0