From 345c0fcf4faa778539edb95a4534454fa296620f Mon Sep 17 00:00:00 2001 From: feng626 <1304903146@qq.com> Date: Fri, 10 Sep 2021 16:08:12 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E6=B5=81bug=20=E6=B7=BB=E5=8A=A0=E7=99=BB=E9=99=86=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/authentication/views/login.py | 4 +- apps/locale/zh/LC_MESSAGES/django.mo | Bin 93675 -> 93382 bytes apps/locale/zh/LC_MESSAGES/django.po | 343 +++++++++++++++++--------- apps/settings/serializers/security.py | 5 +- apps/tickets/models/flow.py | 3 +- 5 files changed, 235 insertions(+), 120 deletions(-) diff --git a/apps/authentication/views/login.py b/apps/authentication/views/login.py index 4fc39b4ac..e4955e289 100644 --- a/apps/authentication/views/login.py +++ b/apps/authentication/views/login.py @@ -212,8 +212,10 @@ class UserLoginWaitConfirmView(TemplateView): if ticket: timestamp_created = datetime.datetime.timestamp(ticket.date_created) ticket_detail_url = TICKET_DETAIL_URL.format(id=ticket_id) + assignees = ticket.current_node.first().ticket_assignees.all() + assignees_display = ', '.join([str(i.assignee) for i in assignees]) msg = _("""Wait for {} confirm, You also can copy link to her/him
- Don't close this page""").format(ticket.assignees_display) + Don't close this page""").format(assignees_display) else: timestamp_created = 0 ticket_detail_url = '' diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index c873509acea1cf8126ba9e73776cf6c207919292..ab8fc5a7994ee8fa11e7d7012cfb0df67bd2f892 100644 GIT binary patch delta 26600 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 delta 26650 zcmZA91(;RU`}XlY!%#CY4Barq3>`yvH_{~y14wsBAG!ntNhtwofdN6fyF)2yloUZx z1eAKe_gN3Wi~qZ?Yw=m@S-IDaa}LIlpJPA17Tb3-Nzg2h<9v|krNd>Bo;N6t=jE=Y zsON=s^t>+vJuflF1bE((&YpJx>vi?KT^QNj^P1A`*B+iX1xxqzyuo-9YtgStFVA~P zd1fEaYfO1^U(dU#_WeDteW2&_4h-&d zDx=D^P+Qm#Q(`n~VS_O~jz_hhj$!yUYT`Ahh3qv?pw9FnX2yr8aYM$rolHHB{a1sE z1h`+k#;Adhpc2#=!fq06X#&rmxOIMFR2C8njE z6Ek5IRDCBO8BH(@)o~_j;N_^5Z@2nWs0n_x_*>M%!zQ`*nNgRj2x^?#sP?T<3m$|T zZyctFeB!{I9Ll4VnftG(WrrYV|<*Ax)h5s5Wh$D z`vEoKF4PVkMJ@OyCcp=Z>-m39MrRl@)$_7oCM=AVu^CMB3DmuC0YlOE3mIL4XQ%<=%yf@e3e*{-Lv_f4x@)6Q*Rl+1 zA@%)3*Us=sUsMT=P|XO|3Y)z0&1gfj>f31Z;e{{XQ&kq zKwXMam<*?(CSGpFU^wONsBx~M`u&P*wf6_6z*uwL)0PH(IynU$gPNU|zhT8GFbJ>3l{5t`y@C~XQ_O;uA zaMXm^Fc%iV+!&2|Uwnxga3*Skg{b!5VKLl+sqt^rrARo>Ei?;i0cGZ~|5{-c0+BSdMbQ0{3dIfSRZy>eH_m=D-1{9b1e#feoky?6&wJ)V*>6brU{9Jsoc>?n}7P zRb(~`qt37zYTyQ_$E+RdjQXRtawO_o@Ep_@Z$V9P4pZT;s7vt%wbdbu_>|k z`un_TWOQaR<~G!eV?SyEcTodB$Fvyt8$RJM3ueR`7=>L>_s9a&r8|b|cO7-cf1t+m z7Q2Oo`Smdf88ys{T4{OI%B!Q!{8LoC3#wfo)E19LEqpSneio|zLR5VWrpGN9ju$Wk z{)37qTS9;4_X?0vhmxo*u7J9hwJ{|&N1ah$)Ygu-`o*XPtV8wRf?CLKD<8J{Q>bw- zVkW$U8b8)j_Fr2PMn)5aV+AaPjq!6_foE_h_W#yxVbn5rQ3DJO?4CX#(ITXXrkqA2Qp$H0lPsum4l74t zKFUS04tB)+xD|ED9-?;aJ;uWj2G=D>hB~1v$d3EGC^EW6wNVY*nqADksELQ7?%pw& z16QCf**OfxC#Zp6p|(8EckUiafoUk`$M{$iwX=;dnEAbqWYnP#hTtgFN~dBWT!@Mfo38eWtZ;OLL>X#ur3Q*aY?EwJqxT?|`~wW2Bz{m1IKj1nQ=_gmLgX z>WqFxZRs=APQ+X1-h^SOoy(0Huq-CPXw(VyM4gDw;!{!m=cDHN7JbUBCZjWpK`mq( z>Lxja3GoW*4DVa{8EQfAQLp3_>s`MBs0qtpB-TRp>xWvX549s-q2^n#p8Z!~IRQ-= zgX(Y))!_{4jP9VW*;A|cVqCirRKFCcyE`Xp=PIDuSI1Cnj=FccpxRAFU6N%n?7vpB zihvff5mnxaIq(o_N1mc4`VVzxp&MMhFlwRYF#;P}d@$-n#-SE6-TW4{b3b4rJmn)3 zPUbr5Oy8mw5WLYXC@Ja;(wn(acXLUzG3xp5ZB92gn&(kF^2~gNI-&QdH=!@&d-r)B zhPoFb&D^NFwE*gUP!IKD>S<0uy}_2Cz7K4{BzOvSPuxP)zeb&L*d|xbW|l&Bz~|K? zqpfd?T2WV2hhC@w#$y3ofZCa}7QbTUC#ao!f$AS?vwJM#q23RLP?w?}>alEr+WHX~ zr00Jc8Ex?_t5}BGiOr~icVI$1iW=x5M&WJL)+YJEU6RzO6DefnGN=VN#cUXjns^fG z63oLuJ^w4n=(${tnqVVp!d<8iCol}Jq9%NdYX27o;(zGBcQ6U%;4N+;=`k7QY?v5J z;aseZ8utPEzyH4^qX~kxx@(ynQ&7%@+QJH`Yu_5R#RIV@4nr;I2h@Ugp$0yLI>QT? z9B*S%e1ST_;B9Val5b=G)iHwwB2inI&&tJ7XI24q*VjRvQ5Vz#eOLu&qZV=lHNjm} zyFXBuAZWYW(S)d{B`s<}CAYKxDaq6!AUk3t`cONv!rW^0$1t4uZPYyzu)}R_n3)-M z_ZPy{SQmAIT~OooF-N1?&GeDUN@fGMs7- z;*YHyxW~nlp)O%0YDdbT#%qeYC)%MF+ynJK8IFnd{BI>qb3-Lx^$yZ6HP$fj5Dl$9%?6+VK{C;-4o|AwvWuuWYpo7Roq9N=~Ih) z``nhrHN#MMcWTr^@}edvjaoo;)WRB~#%YCW-wQR*SXBGT=>PlwxnwlZH>kUGJ%;06 z)J=06b%vq)-J35Ns(lsIW7r6DV>i^b{Tg)-EJaQD;;Ob&Z=^yfbP+eXTqc^|?O|)o#)OA73oV z%p;(IQyz2!W<{MrUMrVEU9&0{uZ z>PtjMk4pxO!s4jAzbk6uk*G78jv9Ee#n+>DU=M2Nj-n>GVDamy_V+M0{*96NF9u=w z5&yz{UIZDvsq&fCPy@C_P0#~%Z9hl7phjaH+-C8;s1rDe8s|Q0tKVY|3_Hr-8(|65 zPV`1CXeh?f^FNA=|C*szHW#&Z3;hkad#!$}m5-oy<}}8|8>orzS@|7moH)na!b4E6 z;FPF-QK)|9F(LDN)yZhWCa5#%g1V+-F%Eud&PMITLe%rT8ny5}sI5M2_17%^0R11k zsBwdjyPb(Z#fzX%1Jxj-t!Zs`L7hQ=)TJ1V@o+rG$7xochg$fzsCHXW;~Ye7@foYX zfbl6mK%MzB)Pny#&i-rQxF_7*9fsPH+`rV$~@FH-iC$oIA+H87>t=u zx}C{`T39L6)>p^u*c3D2sFUn}HZscyEa2f|}?qX25rt5Yu0F*EAQZT`|-(uY{VY4(jG@g7L8hw#Uyf0#9Nee1_%q{I|d2 zuKfzs&2a&%;9G2lm40@AnfwjvuD*h-+`EaX@Gne>Ay?f_WI^3@B~T|;6}8YNs0Fn{ zEwDQ#V1BO;8EuUZLva>rz-6ed+GU7Ad?z1qh2_r%!-(Xat+ia=zzM3#-MJ>Wf+cUQ49VPbt&TAbmJsN z?LZpTJULMdDS}!^#hdKEGBpY4j2f6N&5qcXcyH7W{e;@ON2q>J%@?SN-=TIe{w>!& z6{e${7gJzO)IAi9ddhm;^0~+45&^9+@U|Nu6t&XysIAJ0I>SV|p zD1U`o@OdnbSFivkx#!;Pm2o5Gj;MvCzVBXG8O@5APxE&qqlxFBJ`LAk1nxx*d=GU= zGCpws~A zn3?jcM{eS@zqvCggxc~Fs0CC)-6O3r7<-`>J_L2imY{CBji{&MFzP9|fSK?y`ZRIE z$8Lfon2T~M%!!pS2lm9Q_%-Sb_h24;g1Is6@9tBy8fK*23w0AtL-mWnEO^19X^hKV7x!M{zJ&TddA&}{r={f;E3n$V{^(s{#(?$hV2=k`3vp~>i6Mp$|GL! z1`K4-f8EX2`Zb@V)F*z!^`$<+JAM=3ejJ4*-*a-f2Pa@fpBLbbp~ER0N1$F{fY*ug z71YYh2L<@=jfNOPxhclO4yYGX57bRK!kmq|1Z%DS6srAA)Fpj@{--2%fPY7QmC0z! z+o8645{Bb)REHy|t$&6^Fj1TU?-*9WO)AF?@L$V=s4c#ay2)N*LJW=POoyt^iNRPB zc^Z6P6>Cr%6Hw8@?2KwSz{(>r4&|vDr(s7>e0(9O{z9U^6^y_2I#;T~5?Ig)lAidnJ{@ zCa8(}T7wZ-oAP)ph?lHBm^)QxkP`KL=SNLg3AK=BsOP^uYP^2tNOP(=AAOp5l?4u& z=TQUPM4jnVD+lmsXrjbsHq_%++H8SpKg8;%qHfYiE2 z7VlvWvG@ekRxd(bf>o$~yHE=}XkJI{&_7mAmdH(<2i2~+&oa@d0fwLk9)()KWYn21 zwfOg#iSjOs-$d=eQ`F7(+R9nOTs+DwgF54ysChbC+}Fc0Lr^Q7fLg#x)WjPx7Vbw) zblCh6HQ+7OfUhkcnAo*TWTr#CS8`x3tb}^^_rkn-{%4TUi{Sujpr23^T{Rz|7WUlg zlO}QXX)u&{HnRw-e`WI%)XmobHC_kQJ<SHSw^mM))RiMp1C~IYX#*?wKrLuIY5`MG(HbpI{9qQ6{LH|GhA8dh1<~(x^mZRYg)QVrD21uOT zeKw>*O2}|Yr&g!wgm~jT)dT>dc#8B9Lk$p*9|zemIcld$n{`n;(GIncp{Vww&1n{2h+5Dxi*H8% zKmXfrfitLIJlCw8JiQw*vzY@maDKD2SpzE&Z(`+ns0FUX{J6u)kFER;b;9{F@ciox z>t%2gwMJEZhFa+a)P!@bemUx$z7{pX9`n3;7j-YZv~t3X?iC%5dW;LBUhU;jJN9Wt zpBtz*0S!3DD(09QEPfodkn2`{gxcyiSQBG~2l#&x)j=(M7^?jgRJ(bY5tmqeKkBJD z<0GS=NLMg7zC~?W&P?vj*Bm1$e}(#5y&bjkbEq?Ygj)D}Gf8GwjzE1p7eh_d5VfFI zW>?cUkclcL@uO#XcS3r$Z7uCO| z)93Xfqca+94Hlp#UTtnd4Yb=lWS&F~_#_@KcM;_K>dX0bAn=rMR12s``)Yg_m^{a1zoH!QsX}1C6;aSv{UO~P29-I@R(b$4wF)GwYW)VJo!m>R2NIJQH*sK%f! z?R?akuS6|uJ!-z4NI#!R8AuZ}HlwfjXl44>rf3CY*}e z!C9#Oi%{*qL+$7uf1KySPx~U?pTpKlDbJPNQpe7t>^&`!x z=6qE9RaV}qvY!8A7Pw|UL_J>rm~o=q0#ce;Q3FMx?wLxcOV$&0X46rx+$E^@M-1vc zumkmN`X|&*2N$s4|KVixp;HPqKzG!=Fbwq<4_{mPG^*nxE5A3>7IgPSQB?n$sPUSk z+D}F;WGQOgb*OvjctM_jU7H&ObT|KIzBiK@S$wm3v=Gm~8eX-)6Vw@ag`Huj`f$`^SrE0A_06tUKgP;)Pz%{$?nX^~0(Gg* zqsDuK`YM;mSH!KjC~8Z}Te*?h+U$&ZsPBtIURLV zuJOzBw~ve#a0zqa4J*el;o@Pafm51U%_y@Bs(($?&eXSZ3$q<+p!QYOiQ38T zW$g2Rj5YWIHNafdioZh*{Jpu$JYx0dPz%0n<-4d?_hZyJZ&3Xcm38e>qvDaMohqqUWLqh6WAQ5`0tIxIka$ozmBcn@j;$58jcMJqqY+>`^#x$hTwQDa!ao*IRNhUL0@Xj#%!68JAuE?h z`un_UF5}flonZ@9!~W(d^GkC9>K<5)+L^tmh5Tss*U^8oS@}=%EtaHRa0PdBRzd&Y z|3#D0$6{yH#EVe_uS4BL`%nWuw)($N3wUqw-q0z4MtkURMfRvVs1oDxF0p}WsBcMUCZaFfdebKe(~`u%BfMW7$s$W%9`zEM`v`3wJS1S)k%`+BtBGXXqS5)Tt z*EQcnpc9@#l?zvK6W2yf@TrwMp*r@lxDPeqm#C*=w$*=wTHspLr{zA>xc997of%Tq z=LSqw)fr(HFw3GQ_{7Q$%r>YGqwc7I`=Z)SHfNv~KF?f(+SwgeK7`tl3qCUXT)%}H zAYnDvF&S#$tY&G{0F6;^!ZuhIN1=A)0IL64^OD7HSot?AKSMpv@2u<#tnNA{LQRmu z%HgQzI-8ZtV-V$Ps57gDT1ZROwf0&3E7XFPT091IA_pvf4K>e0WWhe~FRS<$HE^67 z&J?JIk*ERlTf8)C!dj>wlWnX#%$#O^i|W6{+=tqs6R7dd`{nt&X@SS)D>HUY*D#5h z5j8+=)Wii*6Vx@Ene9>SdZ60%NA18@R{jq48}S(Wpa0ur^cMn8P>)xWS z1=P+&n|)AcFv|QAvr}Gx`Yn0b$`4VOC~+-kLDWCAZiGWIX>Fc=eSA(MQwO(U6^vKM z{gp`_)blzK)$SWCfk&|z2G(`2(vql&nxH;I2BB{1x!44c;3&*cFTnq=-7LXEl;hUt z`Pa%z)prwhK%MCjD}RBScnOB%anwY=p+46WG;mv48uf*v5o)V@qn`Uos1LUo)En`p z#d|k&^UQ9@^RJs}1p&Dob$eDsB7Qb;zLjipK9erR^Djk{isWJ z!OC|~PuFvwRfINn4bqy~&BA5{)J;_fHF0CCjcrhWsT70b@HAG#hE3chT!^|9m+=#f z{b_*zKR~XJ`ZV-?M@9obK<&U&)K9U1rtS+#3Nt(E3`(HdRkd<6)SIv)YMkyC?}xes zBT@In3e=@MjJi}$kQ3pb|1@)VZ&K8ml|p@LRl#jo9|vPdbN6XC4x=g0M74W~nmASq z_w)p##z~9%ju&C&QmA%SP?xF}rel7ur9ZiNH7KDBsI8#iDmYQPLu z&SmA2sGF{ul?R}9bhMQhpiX3U8=iknwA}&+Q7iii)!{yt!uP1Vyi{8^VKcL%*$=g) zBT+kf81*T43N`*Y)QMiT@>A5pU$ynQ4zZ)13CyI}jRt8@3mK1E*kV-2O{f9)S^NU( zj31cE+qr%f%@(Mqpg(G1Gf@kh>m#E9m!f|2#h}jMHR=r)*gnAj?{pPJz4@Brw>Sj# z*k$bCK06{%k5xI;W7h(;#UoJ*pN@LdF2kI7+Ty-fWC{`p`OFPa7S*9S>e}}}bsU3b za2@Im_&Zj@d>!3_`=L%`h&jRHvoJ*fA5NHs`c0kOo9{BR6F%=58EwTssEOa3NjkfD z1nRNOhnk>1>dabOeNWT^2cdRgDQXAzptkxjM&WVPj=sixn7fO1g6F>l88sM>YOo#E z;5UB*?t!lE5>!TQZCBJ5PQx6y)8h9qf^u*-*DgP*T_aSx5f)#A;grux=J)<2qtE}u z-JQ8n*Sad|rs-_u307W%x-`d8Z@^o~4tsM*8I|D(2x3A`e;9VqHrSDm@`vNB_P+^% zKr$7HCbP<3lyi{JgZCKlBI-Cv{sHNC@}sdQX%6iwQNNx1hhrMC&xz><{VkAtg1W&Z zeVG|!b5zBy`tL8-Q=zxkc~T-87bYDfrh7q0E7AhepSFlD<}KRoB>olY8wRUy1NX-i zw0T1P1;#mvf6?Y^>sOfiEu`y|r^RCbYmg~K+C=(}3SM&F64D{czmaqlC7xAr2Gj8; z`MTu!df+Xm&cFXqgZvY0WbMd$<%oqc&fnyBkXBk`5q z7HNp&vL4?u(rfZ7t^7A-eZuM}O1=>@45Ux?k4COdER6d6j5CsaUfLD;P)}?Pb-O6n zqfWPNM=leUY9?g(p+0WUGjBk zmx-jW_fIe@v9x%Sez%D6@#7^VeKC-J{}nG70Hig3i52vq+y2Pe`gv zhcWo!2%~Ka(lXlf{l=R?ULW}rY1fhzLi{eVF{IYy^)IgF zAN9>m+aF0!h>fQ{mY#nd>*=f?FdGRLAYbC6PP;5Wg!m#l$03y`zmBA1m&4;E|x zQmSK-={80~#{bv)Wv2aKy8eY}6t30c1Jk$#Lu@>5qx|6*VEIzS z|DxYROpB2=VP-r}8+~c|a5Sflj?~oo|J%ZT6spnaG!7-WnS3_VGbYqAj}BSL$F)H_ zn=@#mBM+$>Z64C*xeZKunAUB$4^ABCg~WlZltPKr#_i!JDW0wg`6RMZFQ?L6LrsNQw+0H*OYcUD8JJ4uVb_SPrlkwxr&N3q7~nzRmmZzx{N|Lh8io=HYQ`e3-@u zY;rZ-M7@r|#A=a0Ywg+*8$^B}eRUkC{-xDjCZCd6IV+ci zrlv`KM;NvlU0#qDDpA`SN7Fn2^&_nm`BS9(r01kZ#0QZ=Xj_T?dq_W$uR`0Kc#8Dl z*iYsV@!6yTw0naejxYFT>D6nMlV$VqXyZ#TC7-A5EgrEdS}G zrA4sS6tteI{oAJPN^Cgg+gQ}<R>@-|R`3Lf!Fi@mF>i#>W3DkW~xe)Q=*8XSI&&yDoK+U7* zpO|=Td_dcY_^-83gd0e`h$qpCYm=!+Do4jjxCMtZ*iU$YbcQx3DW9fOVbWg8jcu|C z)NiJbj_%mmWxb8G+2_B&Uy=K8{6;1|t;Shw!AEu5i02`_CRT@8`jX#E(lL&*jx(5+ zSmKXPwI*@BA$43PWhIqY!5uztmUULSw+;9jGm?rBo5Wz-X!9@moD395xjbpRwOxw^ zsjF|}}8#=!wtt5U0b-W@C zAb*#^XOPBIexVB5j3Hi=SXNT7wLff=sY!NHJ=*QIc_L}In%ElM#t{@o(|A7}yA%9^ z@*d*lZJ?%j+wxygcaAn6juVu1?4f=)sRQ|F`o1A8CWTnP5yU5u?@vsJUfLVz>lpKEZ=~IEu%co%3bMLmRM0MhnpK|Q-*kH(o@EYL%V(C%h>ookbg#OD(!0E zAe^cXkFsPM6R3;*7;HTDp;HS|9XgdHr6+xSjHQi^QN)v2-5T>a@#55ff~D1nV+3RU zi5LAP7DoLg@}mOyB`}Ohm($>cRbHjMg8X3`{b6UfRL=@Ow&VG_&{D@A)FvdKh!$@w z){-Ukq;53jTGZ=UN9;X*YRgN9Ip`DH`lw9{V#{o%b2yZ`GsM3lep3zXxT+u9I-1zv z7WcN%sRNxd&>XFBr{5y?s5njf_^4%tFR9nD0$tS+TfHbylj znf?Ebca(A;+ST|do|(LF5FO7_k@$bZ@kNM=&ZGu5gE|IBdjq;J7X%l{ETEWUg8FVt~5#^1vyF!C#^(FS<2&e9Q3JI|~V^*TRBjs;t z^R+c9Y2$6jdf)NKN*eB_;ac)BG66+Pt=JJ_+31sO zM&kBKeM>)DQeRq?vXZ_%6W3YmsfJSOQVMoLe*N~%oyiTWPY zZ6aSEzoMKI15if;Qd1^bN;wWGKZ8#p_Mg>vrmUkh)+TMG?Ex3^Vtx3Mq;fja7CLpX z4t;4DkJukfb`%qlbo@v8Fm0Z?qW{n7v^`3SL*0ktnk}HIxk&x2vO4)?bDvUIv{@(ourg2?qPb1`MRU*H!ud46<=1n@bsQ4>hex>4>ePUms#A8Sf6U zenI|!>czJ{n_#aEJjlw;C?6ngrPF>JveV6pknW$gZLQp}9O0e& zhWF^%FT8L6UcGwu>DQtCjGkLMZn|?Sq*$Vd+PU`p+WH< z&E5NG{N%ekrf>Zsen83cTX)q6_&zZF{|u>l9&FrsZ_yWbw@tY}Gv@x}k#m|B3uv~r KYpsCh8UG)-IWr9a diff --git a/apps/locale/zh/LC_MESSAGES/django.po b/apps/locale/zh/LC_MESSAGES/django.po index e36335bda..45b34a9d4 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-09-09 20:13+0800\n" +"POT-Creation-Date: 2021-09-10 16:13+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n" "Last-Translator: ibuler \n" "Language-Team: JumpServer team\n" @@ -60,8 +60,8 @@ msgstr "激活中" #: orgs/models.py:27 perms/models/base.py:53 settings/models.py:34 #: terminal/models/storage.py:26 terminal/models/terminal.py:114 #: tickets/models/ticket.py:71 users/models/group.py:16 -#: users/models/user.py:637 xpack/plugins/change_auth_plan/models.py:77 -#: xpack/plugins/cloud/models.py:35 xpack/plugins/cloud/models.py:108 +#: users/models/user.py:637 xpack/plugins/change_auth_plan/models.py:88 +#: xpack/plugins/cloud/models.py:35 xpack/plugins/cloud/models.py:113 #: xpack/plugins/gathered_user/models.py:26 msgid "Comment" msgstr "备注" @@ -125,8 +125,8 @@ msgstr "系统用户" #: 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:212 +#: xpack/plugins/change_auth_plan/models.py:315 +#: xpack/plugins/cloud/models.py:217 msgid "Asset" msgstr "资产" @@ -179,8 +179,8 @@ msgstr "格式为逗号分隔的字符串, * 表示匹配所有. " #: audits/models.py:105 authentication/forms.py:15 authentication/forms.py:17 #: ops/models/adhoc.py:148 users/forms/profile.py:31 users/models/user.py:602 #: 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/change_auth_plan/models.py:51 +#: xpack/plugins/change_auth_plan/models.py:311 #: xpack/plugins/cloud/serializers.py:67 msgid "Username" msgstr "用户名" @@ -266,7 +266,7 @@ msgid "Version" msgstr "版本" #: applications/models/account.py:18 xpack/plugins/cloud/models.py:82 -#: xpack/plugins/cloud/serializers.py:204 +#: xpack/plugins/cloud/serializers.py:207 msgid "Account" msgstr "账户" @@ -287,7 +287,7 @@ msgstr "类别" #: assets/models/user.py:206 perms/models/application_permission.py:23 #: perms/serializers/application/user_permission.py:34 #: terminal/models/storage.py:55 terminal/models/storage.py:116 -#: tickets/models/flow.py:50 tickets/models/ticket.py:48 +#: tickets/models/flow.py:51 tickets/models/ticket.py:48 #: tickets/serializers/ticket/meta/ticket_type/apply_application.py:27 msgid "Type" msgstr "类型" @@ -370,9 +370,9 @@ msgstr "目标URL" #: users/templates/users/user_otp_check_password.html:13 #: users/templates/users/user_password_update.html:43 #: users/templates/users/user_password_verify.html:18 -#: 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/change_auth_plan/models.py:72 +#: xpack/plugins/change_auth_plan/models.py:207 +#: xpack/plugins/change_auth_plan/models.py:318 #: xpack/plugins/cloud/serializers.py:69 msgid "Password" msgstr "密码" @@ -425,13 +425,13 @@ msgstr "系统平台" #: assets/models/asset.py:186 assets/serializers/asset.py:65 #: perms/serializers/asset/user_permission.py:41 -#: xpack/plugins/cloud/models.py:99 xpack/plugins/cloud/serializers.py:183 +#: xpack/plugins/cloud/models.py:104 xpack/plugins/cloud/serializers.py:184 msgid "Protocols" msgstr "协议组" #: assets/models/asset.py:189 assets/models/user.py:198 #: perms/models/asset_permission.py:100 -#: xpack/plugins/change_auth_plan/models.py:56 +#: xpack/plugins/change_auth_plan/models.py:60 #: xpack/plugins/gathered_user/models.py:24 msgid "Nodes" msgstr "节点" @@ -444,7 +444,6 @@ msgstr "激活" #: assets/models/asset.py:193 assets/models/cluster.py:19 #: assets/models/user.py:195 assets/models/user.py:330 templates/_nav.html:44 -#: xpack/plugins/cloud/models.py:96 xpack/plugins/cloud/serializers.py:205 msgid "Admin user" msgstr "特权用户" @@ -521,8 +520,8 @@ msgstr "标签管理" #: assets/models/cmd_filter.py:67 assets/models/group.py:21 #: common/db/models.py:70 common/mixins/models.py:49 orgs/models.py:25 #: orgs/models.py:437 perms/models/base.py:51 users/models/user.py:645 -#: users/serializers/group.py:33 xpack/plugins/change_auth_plan/models.py:81 -#: xpack/plugins/cloud/models.py:114 xpack/plugins/gathered_user/models.py:30 +#: users/serializers/group.py:33 xpack/plugins/change_auth_plan/models.py:92 +#: xpack/plugins/cloud/models.py:119 xpack/plugins/gathered_user/models.py:30 msgid "Created by" msgstr "创建者" @@ -532,7 +531,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:26 #: orgs/models.py:435 perms/models/base.py:52 users/models/group.py:18 -#: users/models/user.py:836 xpack/plugins/cloud/models.py:117 +#: users/models/user.py:836 xpack/plugins/cloud/models.py:122 msgid "Date created" msgstr "创建日期" @@ -561,15 +560,15 @@ msgstr "可连接性" msgid "Date verified" msgstr "校验日期" -#: assets/models/base.py:178 xpack/plugins/change_auth_plan/models.py:72 -#: xpack/plugins/change_auth_plan/models.py:197 -#: xpack/plugins/change_auth_plan/models.py:292 +#: assets/models/base.py:178 xpack/plugins/change_auth_plan/models.py:82 +#: xpack/plugins/change_auth_plan/models.py:214 +#: xpack/plugins/change_auth_plan/models.py:325 msgid "SSH private key" msgstr "SSH密钥" -#: assets/models/base.py:179 xpack/plugins/change_auth_plan/models.py:75 -#: xpack/plugins/change_auth_plan/models.py:193 -#: xpack/plugins/change_auth_plan/models.py:288 +#: assets/models/base.py:179 xpack/plugins/change_auth_plan/models.py:85 +#: xpack/plugins/change_auth_plan/models.py:210 +#: xpack/plugins/change_auth_plan/models.py:321 msgid "SSH public key" msgstr "SSH公钥" @@ -727,7 +726,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:93 xpack/plugins/cloud/serializers.py:206 +#: xpack/plugins/cloud/models.py:93 xpack/plugins/cloud/serializers.py:210 msgid "Node" msgstr "节点" @@ -748,7 +747,7 @@ msgid "Username same with user" msgstr "用户名与用户相同" #: assets/models/user.py:200 assets/serializers/domain.py:28 -#: templates/_nav.html:39 xpack/plugins/change_auth_plan/models.py:52 +#: templates/_nav.html:39 xpack/plugins/change_auth_plan/models.py:56 msgid "Assets" msgstr "资产" @@ -1077,8 +1076,8 @@ msgstr "成功" #: terminal/models/session.py:52 #: tickets/serializers/ticket/meta/ticket_type/apply_application.py:53 #: tickets/serializers/ticket/meta/ticket_type/apply_asset.py:45 -#: xpack/plugins/change_auth_plan/models.py:177 -#: xpack/plugins/change_auth_plan/models.py:307 +#: xpack/plugins/change_auth_plan/models.py:194 +#: xpack/plugins/change_auth_plan/models.py:340 #: xpack/plugins/gathered_user/models.py:76 msgid "Date start" msgstr "开始日期" @@ -1150,13 +1149,13 @@ msgid "MFA" msgstr "多因子认证" #: audits/models.py:111 terminal/models/sharing.py:88 -#: xpack/plugins/change_auth_plan/models.py:303 -#: xpack/plugins/cloud/models.py:171 +#: xpack/plugins/change_auth_plan/models.py:336 +#: xpack/plugins/cloud/models.py:176 msgid "Reason" msgstr "原因" #: audits/models.py:112 tickets/models/ticket.py:57 -#: xpack/plugins/cloud/models.py:167 xpack/plugins/cloud/models.py:216 +#: xpack/plugins/cloud/models.py:172 xpack/plugins/cloud/models.py:221 msgid "Status" msgstr "状态" @@ -1190,7 +1189,7 @@ msgid "Hosts display" msgstr "主机名称" #: audits/serializers.py:89 ops/models/command.py:26 -#: xpack/plugins/cloud/models.py:165 +#: xpack/plugins/cloud/models.py:170 msgid "Result" msgstr "结果" @@ -1545,6 +1544,7 @@ msgid "" msgstr "账号已被锁定(请联系管理员解锁 或 {}分钟后重试)" #: authentication/errors.py:64 +#, python-brace-format msgid "" "One-time password invalid, or ntp sync server time, You can also try " "{times_try} times (The account will be temporarily locked for {block_time} " @@ -1554,20 +1554,25 @@ msgstr "" "临时 锁定 {block_time} 分钟)" #: authentication/errors.py:69 +#, python-brace-format msgid "" "SMS verify code invalid,You can also try {times_try} times (The account will " "be temporarily locked for {block_time} minutes)" msgstr "" -"短信验证码不正确,或者服务器端时间不对。 您还可以尝试 {times_try} 次(账号将被" -"临时 锁定 {block_time} 分钟)" +"短信验证码不正确,或者服务器端时间不对。 您还可以尝试 {times_try} 次(账号将" +"被临时 锁定 {block_time} 分钟)" #: authentication/errors.py:74 +#, fuzzy, python-brace-format +#| msgid "" +#| "The MFA type({mfa_type}) is not supported, You can also try {times_try} " +#| "times (The account will be temporarily locked for {block_time} minutes)" msgid "" -"The MFA type({mfa_type}) is not supported, You can also try {times_try} times " +"The MFA type({mfa_type}) is not supportedYou can also try {times_try} times " "(The account will be temporarily locked for {block_time} minutes)" msgstr "" -"该({mfa_type}) MFA 类型不支持。 您还可以尝试 {times_try} 次(账号将被" -"临时 锁定 {block_time} 分钟)" +"该({mfa_type}) MFA 类型不支持。 您还可以尝试 {times_try} 次(账号将被临时 锁" +"定 {block_time} 分钟)" #: authentication/errors.py:79 msgid "MFA required" @@ -1905,7 +1910,7 @@ msgstr "正在跳转到 {} 认证" msgid "Please enable cookies and try again." msgstr "设置你的浏览器支持cookie" -#: authentication/views/login.py:215 +#: authentication/views/login.py:217 msgid "" "Wait for {} confirm, You also can copy link to her/him
\n" " Don't close this page" @@ -1913,15 +1918,15 @@ msgstr "" "等待 {} 确认, 你也可以复制链接发给他/她
\n" " 不要关闭本页面" -#: authentication/views/login.py:220 +#: authentication/views/login.py:222 msgid "No ticket found" msgstr "没有发现工单" -#: authentication/views/login.py:252 +#: authentication/views/login.py:254 msgid "Logout success" msgstr "退出登录成功" -#: authentication/views/login.py:253 +#: authentication/views/login.py:255 msgid "Logout success, return login page" msgstr "退出登录成功,返回到登录页面" @@ -2062,11 +2067,15 @@ msgid "Invalid SMS sign and template: {}" msgstr "无效的短信签名和模版: {}" #: common/message/backends/sms/__init__.py:43 -msgid "Alibaba" +#, fuzzy +#| msgid "Alibaba Cloud" +msgid "Alibaba cloud" msgstr "阿里云" #: common/message/backends/sms/__init__.py:44 -msgid "Tencent" +#, fuzzy +#| msgid "Tencent Cloud" +msgid "Tencent cloud" msgstr "腾讯云" #: common/message/backends/sms/alibaba.py:56 @@ -2167,7 +2176,7 @@ msgid "Regularly perform" msgstr "定期执行" #: ops/mixin.py:106 ops/mixin.py:147 -#: xpack/plugins/change_auth_plan/serializers.py:55 +#: xpack/plugins/change_auth_plan/serializers.py:60 msgid "Periodic perform" msgstr "定时执行" @@ -2246,8 +2255,8 @@ msgstr "开始时间" msgid "End time" msgstr "完成时间" -#: ops/models/adhoc.py:246 xpack/plugins/change_auth_plan/models.py:180 -#: xpack/plugins/change_auth_plan/models.py:310 +#: ops/models/adhoc.py:246 xpack/plugins/change_auth_plan/models.py:197 +#: xpack/plugins/change_auth_plan/models.py:343 #: xpack/plugins/gathered_user/models.py:79 msgid "Time" msgstr "时间" @@ -2635,7 +2644,7 @@ msgstr "" "用户属性映射代表怎样将LDAP中用户属性映射到jumpserver用户上,username, name," "email 是jumpserver的用户需要属性" -#: settings/serializers/auth/ldap.py:58 xpack/plugins/cloud/serializers.py:207 +#: settings/serializers/auth/ldap.py:58 xpack/plugins/cloud/serializers.py:211 #: xpack/plugins/gathered_user/serializers.py:20 msgid "Periodic display" msgstr "定时执行" @@ -2753,26 +2762,27 @@ msgid "Enable SMS" msgstr "启用 SMS" #: settings/serializers/auth/sms.py:11 +#, fuzzy +#| msgid "Provider" +msgid "SMS provider" +msgstr "云服务商" + +#: settings/serializers/auth/sms.py:15 settings/serializers/email.py:69 +msgid "Signature" +msgstr "署名" + +#: settings/serializers/auth/sms.py:16 +msgid "Template" +msgstr "" + +#: settings/serializers/auth/sms.py:20 msgid "Test phone" msgstr "测试手机号" -#: settings/serializers/auth/sms.py:25 settings/serializers/auth/sms.py:43 +#: settings/serializers/auth/sms.py:37 settings/serializers/auth/sms.py:46 msgid "Signatures and Templates" msgstr "签名和模版" -#: settings/serializers/auth/sms.py:25 settings/serializers/auth/sms.py:43 -msgid "" -"\n" -" Filling in JSON Data: \n" -" {\n" -" \"verification_code\": {\n" -" \"sign_name\": \"\", \n" -" \"template_code\": \"\"\n" -" }\n" -" }\n" -" " -msgstr "" - #: settings/serializers/auth/sso.py:12 msgid "Enable SSO auth" msgstr "启用 SSO Token 认证" @@ -2933,10 +2943,6 @@ msgstr "邮件的内容" msgid "Tips:When creating a user, send the content of the email" msgstr "提示: 创建用户时,发送设置密码邮件的内容" -#: settings/serializers/email.py:69 -msgid "Signature" -msgstr "署名" - #: settings/serializers/email.py:70 msgid "Tips: Email signature (eg:jumpserver)" msgstr "邮件署名 (如:jumpserver)" @@ -3138,6 +3144,16 @@ msgstr "会话分享" msgid "Enabled, Allows user active session to be shared with other users" msgstr "开启后允许用户分享已连接的资产会话给它人,协同工作" +#: settings/serializers/security.py:115 +#, fuzzy +#| msgid "Login confirm" +msgid "Login Confirm" +msgstr "登录复核" + +#: settings/serializers/security.py:116 +msgid "After opening, please go to the personal information setting approver" +msgstr "开启后, 请前往个人信息设置审批人" + #: settings/serializers/sms.py:7 msgid "Label" msgstr "标签" @@ -3922,7 +3938,7 @@ msgstr "加入日期" msgid "Date left" msgstr "结束日期" -#: terminal/models/sharing.py:91 xpack/plugins/change_auth_plan/models.py:274 +#: terminal/models/sharing.py:91 xpack/plugins/change_auth_plan/models.py:307 msgid "Finished" msgstr "结束" @@ -4120,7 +4136,7 @@ msgstr "Secret key" msgid "Endpoint" msgstr "端点" -#: terminal/serializers/storage.py:66 xpack/plugins/cloud/models.py:209 +#: terminal/serializers/storage.py:66 xpack/plugins/cloud/models.py:214 msgid "Region" msgstr "地域" @@ -4363,28 +4379,28 @@ msgstr "用户显示名称" msgid "Body" msgstr "内容" -#: tickets/models/flow.py:19 tickets/models/flow.py:55 +#: tickets/models/flow.py:20 tickets/models/flow.py:56 #: tickets/models/ticket.py:25 msgid "Approve level" msgstr "审批级别" -#: tickets/models/flow.py:24 tickets/serializers/ticket/ticket.py:140 +#: tickets/models/flow.py:25 tickets/serializers/ticket/ticket.py:140 msgid "Approve strategy" msgstr "审批策略" -#: tickets/models/flow.py:29 tickets/serializers/ticket/ticket.py:141 +#: tickets/models/flow.py:30 tickets/serializers/ticket/ticket.py:141 msgid "Assignees" msgstr "受理人" -#: tickets/models/flow.py:33 +#: tickets/models/flow.py:34 msgid "Assignees display" msgstr "受理人名称" -#: tickets/models/flow.py:37 +#: tickets/models/flow.py:38 msgid "Ticket flow approval rule" msgstr "工单批准信息" -#: tickets/models/flow.py:60 +#: tickets/models/flow.py:61 msgid "Ticket flow" msgstr "工单流程" @@ -4706,6 +4722,7 @@ msgid "Reset password" msgstr "重置密码" #: users/notifications.py:44 +#, python-format msgid "" "\n" "Hello %(name)s:\n" @@ -4728,8 +4745,8 @@ msgid "" msgstr "" "\n" "您好 %(name)s:\n" -"请点击下面链接重置密码, 如果不是您申请的,请关注账号安全\n " -"\n" +"请点击下面链接重置密码, 如果不是您申请的,请关注账号安全\n" +" \n" "请点击这里设置密码 👇\n" "%(rest_password_url)s?token=%(rest_password_token)s\n" "\n" @@ -4745,6 +4762,7 @@ msgstr "" "\n" #: users/notifications.py:77 +#, python-format msgid "" "\n" " Hello %(name)s:\n" @@ -4793,6 +4811,7 @@ msgid "Reset password success" msgstr "重置密码成功" #: users/notifications.py:117 +#, python-format msgid "" "\n" " \n" @@ -4824,8 +4843,7 @@ msgstr "" "\n" "你的 JumpServer 密码刚刚已经成功更新。\n" "\n" -"如果这次密码更新不是由你发起的,那么你的账号可能存在安全问题。 " -"\n" +"如果这次密码更新不是由你发起的,那么你的账号可能存在安全问题。 \n" "建议你立刻登录 JumpServer 更改密码。 \n" "\n" "如果你有任何疑问,可以联系管理员。\n" @@ -4842,6 +4860,7 @@ msgstr "" " " #: users/notifications.py:151 +#, python-format msgid "" "\n" " \n" @@ -4908,6 +4927,7 @@ msgid "Security notice" msgstr "安全通知" #: users/notifications.py:195 +#, python-format msgid "" "\n" "Hello %(name)s:\n" @@ -4939,10 +4959,8 @@ msgstr "" "为了您的账号安全,请点击下面的链接及时更新密码 \n" "\n" "请点击这里更新密码 👇\n" -"%(update_password_url)s" -"\n" -"如果您的密码已经过期,请点击 👇 申请一份重置密码邮件。 " -"\n" +"%(update_password_url)s\n" +"如果您的密码已经过期,请点击 👇 申请一份重置密码邮件。 \n" "%(forget_password_url)s?email=%(email)s\n" "\n" "-------------------\n" @@ -4953,6 +4971,7 @@ msgstr "" " " #: users/notifications.py:231 +#, python-format msgid "" "\n" " Hello %(name)s:\n" @@ -5005,6 +5024,7 @@ msgid "Expiration notice" msgstr "过期通知" #: users/notifications.py:269 +#, python-format msgid "" "\n" "Hello %(name)s:\n" @@ -5021,11 +5041,11 @@ msgstr "" "\n" "您的账户会在 %(date_expired)s 过期,\n" "\n" -"为了不影响您正常工作,请联系管理员确认。" -"\n" +"为了不影响您正常工作,请联系管理员确认。\n" " " #: users/notifications.py:288 +#, python-format msgid "" "\n" " Hello %(name)s:\n" @@ -5051,6 +5071,7 @@ msgid "SSH Key Reset" msgstr "重置SSH密钥" #: users/notifications.py:309 +#, python-format msgid "" "\n" "Hello %(name)s:\n" @@ -5075,6 +5096,7 @@ msgstr "" " " #: users/notifications.py:330 +#, python-format msgid "" "\n" " Hello %(name)s:\n" @@ -5103,6 +5125,7 @@ msgid "MFA Reset" msgstr "重置 MFA" #: users/notifications.py:353 +#, python-format msgid "" "\n" "Hello %(name)s:\n" @@ -5127,6 +5150,7 @@ msgstr "" " " #: users/notifications.py:373 +#, python-format msgid "" "\n" " Hello %(name)s:\n" @@ -5170,8 +5194,8 @@ msgstr "两次密码不一致" msgid "Is first login" msgstr "首次登录" -#: users/serializers/user.py:22 xpack/plugins/change_auth_plan/models.py:61 -#: xpack/plugins/change_auth_plan/serializers.py:30 +#: users/serializers/user.py:22 xpack/plugins/change_auth_plan/models.py:65 +#: xpack/plugins/change_auth_plan/serializers.py:33 msgid "Password strategy" msgstr "密码策略" @@ -5561,89 +5585,153 @@ msgid "Reset password success, return to login page" msgstr "重置密码成功,返回到登录页面" #: xpack/plugins/change_auth_plan/meta.py:9 -#: xpack/plugins/change_auth_plan/models.py:89 -#: xpack/plugins/change_auth_plan/models.py:184 +#: xpack/plugins/change_auth_plan/models.py:100 +#: xpack/plugins/change_auth_plan/models.py:201 msgid "Change auth plan" msgstr "改密计划" -#: xpack/plugins/change_auth_plan/models.py:41 +#: xpack/plugins/change_auth_plan/models.py:40 msgid "Custom password" msgstr "自定义密码" -#: xpack/plugins/change_auth_plan/models.py:42 +#: xpack/plugins/change_auth_plan/models.py:41 msgid "All assets use the same random password" msgstr "使用相同的随机密码" -#: xpack/plugins/change_auth_plan/models.py:43 +#: xpack/plugins/change_auth_plan/models.py:42 msgid "All assets use different random password" msgstr "使用不同的随机密码" -#: xpack/plugins/change_auth_plan/models.py:65 +#: xpack/plugins/change_auth_plan/models.py:46 +msgid "Append SSH KEY" +msgstr "" + +#: xpack/plugins/change_auth_plan/models.py:47 +msgid "Empty and append SSH KEY" +msgstr "" + +#: xpack/plugins/change_auth_plan/models.py:48 +msgid "Empty current user and append SSH KEY" +msgstr "" + +#: xpack/plugins/change_auth_plan/models.py:69 msgid "Password rules" msgstr "密码规则" -#: xpack/plugins/change_auth_plan/models.py:187 +#: xpack/plugins/change_auth_plan/models.py:78 +#: xpack/plugins/change_auth_plan/serializers.py:35 +#, fuzzy +#| msgid "SSH Key Reset" +msgid "SSH Key strategy" +msgstr "重置SSH密钥" + +#: xpack/plugins/change_auth_plan/models.py:189 +msgid "Manual trigger" +msgstr "" + +#: xpack/plugins/change_auth_plan/models.py:190 +msgid "Timing trigger" +msgstr "" + +#: xpack/plugins/change_auth_plan/models.py:204 msgid "Change auth plan snapshot" msgstr "改密计划快照" -#: xpack/plugins/change_auth_plan/models.py:202 -#: xpack/plugins/change_auth_plan/models.py:296 +#: xpack/plugins/change_auth_plan/models.py:218 +#: xpack/plugins/change_auth_plan/serializers.py:166 +msgid "Trigger mode" +msgstr "" + +#: xpack/plugins/change_auth_plan/models.py:223 +#: xpack/plugins/change_auth_plan/models.py:329 msgid "Change auth plan execution" msgstr "改密计划执行" -#: xpack/plugins/change_auth_plan/models.py:269 +#: xpack/plugins/change_auth_plan/models.py:302 msgid "Ready" msgstr "准备" -#: xpack/plugins/change_auth_plan/models.py:270 +#: xpack/plugins/change_auth_plan/models.py:303 msgid "Preflight check" msgstr "改密前的校验" -#: xpack/plugins/change_auth_plan/models.py:271 +#: xpack/plugins/change_auth_plan/models.py:304 msgid "Change auth" msgstr "执行改密" -#: xpack/plugins/change_auth_plan/models.py:272 +#: xpack/plugins/change_auth_plan/models.py:305 msgid "Verify auth" msgstr "验证密码/密钥" -#: xpack/plugins/change_auth_plan/models.py:273 +#: xpack/plugins/change_auth_plan/models.py:306 msgid "Keep auth" msgstr "保存密码/密钥" -#: xpack/plugins/change_auth_plan/models.py:300 +#: xpack/plugins/change_auth_plan/models.py:333 msgid "Step" msgstr "步骤" -#: xpack/plugins/change_auth_plan/models.py:317 +#: xpack/plugins/change_auth_plan/models.py:350 msgid "Change auth plan task" msgstr "改密计划任务" -#: xpack/plugins/change_auth_plan/serializers.py:56 +#: xpack/plugins/change_auth_plan/serializers.py:29 +#, fuzzy +#| msgid "Password" +msgid "Change Password" +msgstr "密码" + +#: xpack/plugins/change_auth_plan/serializers.py:30 +#, fuzzy +#| msgid "Change by" +msgid "Change SSH Key" +msgstr "修改者" + +#: xpack/plugins/change_auth_plan/serializers.py:61 msgid "Run times" msgstr "执行次数" -#: xpack/plugins/change_auth_plan/serializers.py:72 -msgid "* Please enter custom password" -msgstr "* 请输入自定义密码" +#: xpack/plugins/change_auth_plan/serializers.py:79 +#, fuzzy +#| msgid "Require periodic or regularly perform setting" +msgid "Require password strategy perform setting" +msgstr "需要周期或定期设置" #: xpack/plugins/change_auth_plan/serializers.py:82 +#, fuzzy +#| msgid "Require periodic or regularly perform setting" +msgid "Require password perform setting" +msgstr "需要周期或定期设置" + +#: xpack/plugins/change_auth_plan/serializers.py:85 +#, fuzzy +#| msgid "Require periodic or regularly perform setting" +msgid "Require password rule perform setting" +msgstr "需要周期或定期设置" + +#: xpack/plugins/change_auth_plan/serializers.py:97 msgid "* Please enter the correct password length" msgstr "* 请输入正确的密码长度" -#: xpack/plugins/change_auth_plan/serializers.py:85 +#: xpack/plugins/change_auth_plan/serializers.py:100 msgid "* Password length range 6-30 bits" msgstr "* 密码长度范围 6-30 位" -#: xpack/plugins/change_auth_plan/utils.py:442 +#: xpack/plugins/change_auth_plan/serializers.py:118 +#, fuzzy +#| msgid "Require periodic or regularly perform setting" +msgid "Require ssh key strategy or ssh key perform setting" +msgstr "需要周期或定期设置" + +#: xpack/plugins/change_auth_plan/utils.py:485 msgid "Invalid/incorrect password" msgstr "无效/错误 密码" -#: xpack/plugins/change_auth_plan/utils.py:444 +#: xpack/plugins/change_auth_plan/utils.py:487 msgid "Failed to connect to the host" msgstr "连接主机失败" -#: xpack/plugins/change_auth_plan/utils.py:446 +#: xpack/plugins/change_auth_plan/utils.py:489 msgid "Data could not be sent to remote" msgstr "无法将数据发送到远程" @@ -5747,35 +5835,47 @@ msgstr "地域" msgid "Hostname strategy" msgstr "主机名策略" -#: xpack/plugins/cloud/models.py:102 xpack/plugins/cloud/serializers.py:186 +#: xpack/plugins/cloud/models.py:97 xpack/plugins/cloud/serializers.py:208 +#, fuzzy +#| msgid "Only admin users" +msgid "Unix admin user" +msgstr "仅管理员" + +#: xpack/plugins/cloud/models.py:101 xpack/plugins/cloud/serializers.py:209 +#, fuzzy +#| msgid "Only admin users" +msgid "Windows admin user" +msgstr "仅管理员" + +#: xpack/plugins/cloud/models.py:107 xpack/plugins/cloud/serializers.py:187 msgid "IP network segment group" msgstr "IP网段组" -#: xpack/plugins/cloud/models.py:105 xpack/plugins/cloud/serializers.py:208 +#: xpack/plugins/cloud/models.py:110 xpack/plugins/cloud/serializers.py:212 msgid "Always update" msgstr "总是更新" -#: xpack/plugins/cloud/models.py:111 +#: xpack/plugins/cloud/models.py:116 msgid "Date last sync" msgstr "最后同步日期" -#: xpack/plugins/cloud/models.py:122 xpack/plugins/cloud/models.py:163 +#: xpack/plugins/cloud/models.py:127 xpack/plugins/cloud/models.py:168 msgid "Sync instance task" msgstr "同步实例任务" -#: xpack/plugins/cloud/models.py:174 xpack/plugins/cloud/models.py:219 +#: xpack/plugins/cloud/models.py:179 xpack/plugins/cloud/models.py:224 msgid "Date sync" msgstr "同步日期" -#: xpack/plugins/cloud/models.py:199 +#: xpack/plugins/cloud/models.py:204 msgid "Sync task" msgstr "同步任务" -#: xpack/plugins/cloud/models.py:203 +#: xpack/plugins/cloud/models.py:208 msgid "Sync instance task history" msgstr "同步实例任务历史" -#: xpack/plugins/cloud/models.py:206 +#: xpack/plugins/cloud/models.py:211 msgid "Instance" msgstr "实例" @@ -6051,3 +6151,12 @@ msgstr "旗舰版" #: xpack/plugins/license/models.py:77 msgid "Community edition" msgstr "社区版" + +#~ msgid "Alibaba" +#~ msgstr "阿里云" + +#~ msgid "Tencent" +#~ msgstr "腾讯云" + +#~ msgid "* Please enter custom password" +#~ msgstr "* 请输入自定义密码" diff --git a/apps/settings/serializers/security.py b/apps/settings/serializers/security.py index 5749a5c8f..e2f8cb48d 100644 --- a/apps/settings/serializers/security.py +++ b/apps/settings/serializers/security.py @@ -111,5 +111,8 @@ class SecuritySettingSerializer(SecurityPasswordRuleSerializer, SecurityAuthSeri required=True, label=_('Session share'), help_text=_("Enabled, Allows user active session to be shared with other users") ) - + LOGIN_CONFIRM_ENABLE = serializers.BooleanField( + required=False, label=_('Login Confirm'), + help_text=_("After opening, please go to the personal information setting approver") + ) diff --git a/apps/tickets/models/flow.py b/apps/tickets/models/flow.py index 9f008f166..9542c4f2c 100644 --- a/apps/tickets/models/flow.py +++ b/apps/tickets/models/flow.py @@ -6,6 +6,7 @@ from django.utils.translation import ugettext_lazy as _ from common.mixins.models import CommonModelMixin from common.db.encoder import ModelJSONFieldEncoder from orgs.mixins.models import OrgModelMixin +from orgs.models import Organization from orgs.utils import tmp_to_root_org from ..const import TicketType, TicketApprovalLevel, TicketApprovalStrategy from ..signals import post_or_update_change_ticket_flow_approval @@ -67,5 +68,5 @@ class TicketFlow(CommonModelMixin, OrgModelMixin): flows = cls.objects.all() cur_flow_types = flows.values_list('type', flat=True) with tmp_to_root_org(): - diff_global_flows = cls.objects.exclude(type__in=cur_flow_types) + diff_global_flows = cls.objects.exclude(type__in=cur_flow_types).filter(org_id=Organization.ROOT_ID) return flows | diff_global_flows