From f92d918a1e28e29b794ad4754661ea760c18af46 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Mon, 28 Oct 2024 10:26:14 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E9=87=8D=E7=BD=AE=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=91=98=E5=AF=86=E7=A0=81=E5=90=8C=E6=97=B6=E5=90=AF=E7=94=A8?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=E8=B4=A6=E6=88=B7=EF=BC=8C=E9=81=BF?= =?UTF-8?q?=E5=85=8D=E4=B9=8B=E5=89=8D=E7=A6=81=E7=94=A8=E4=BA=86=EF=BC=8C?= =?UTF-8?q?=E9=87=8D=E7=BD=AE=E5=AF=86=E7=A0=81=E8=BF=98=E6=98=AF=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E4=B8=8D=E8=BF=9B=E5=8E=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/run/docker-compose.yaml | 16 +++++------- .../public/static/images/logo/logo.png | Bin 0 -> 13053 bytes .../src/middleware/reset-passwd/middleware.ts | 1 + .../sys/authority/service/user-service.ts | 24 +++++++++++++++--- 4 files changed, 27 insertions(+), 14 deletions(-) create mode 100644 packages/ui/certd-client/public/static/images/logo/logo.png diff --git a/docker/run/docker-compose.yaml b/docker/run/docker-compose.yaml index cf5bd70f..420cf0b1 100644 --- a/docker/run/docker-compose.yaml +++ b/docker/run/docker-compose.yaml @@ -28,18 +28,14 @@ services: # 设置环境变量即可自定义certd配置 # 配置项见: packages/ui/certd-server/src/config/config.default.ts # 配置规则: certd_ + 配置项, 点号用_代替 - - # ↓↓↓↓ ------------------------------------ 这里可以设置http代理 - #- HTTPS_PROXY=http://xxxxxx:xx - #- HTTP_PROXY=http://xxxxxx:xx # ↓↓↓↓ ----------------------------- 如果忘记管理员密码,可以设置为true,重启之后,管理员密码将改成123456,然后请及时修改回false - certd_system_resetAdminPasswd=false - # ↓↓↓↓ -------------------------- 如果设置为true,启动后所有配置了cron的流水线任务都将被立即触发一次 - - certd_cron_immediateTriggerOnce=false - # ↓↓↓↓ -------------------------------- 配置证书和key,则表示https方式启动,使用https协议访问,https://your.domain:7001 - #- certd_koa_key=./data/ssl/cert.key - #- certd_koa_cert=./data/ssl/cert.crt - + # ↓↓↓↓ -------------------------------- 默认同时启动https,https访问地址https://your.domain:7002 + #- certd_https_key=./data/ssl/cert.key + #- certd_https_cert=./data/ssl/cert.crt + #- certd_https_enabled=true + #- certd_https_port=7002 + - # ↓↓↓↓ ------------------------------- 使用postgresql数据库 # - certd_flyway_scriptDir=./db/migration-pg # 升级脚本目录 # - certd_typeorm_dataSource_default_type=postgres # 数据库类型 diff --git a/packages/ui/certd-client/public/static/images/logo/logo.png b/packages/ui/certd-client/public/static/images/logo/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..cb42f7473ab13b9981a8db9b9438ede40d03445e GIT binary patch literal 13053 zcmeHtX;f3$()IzG%e|m*`xR#f?N%_#B!~!@M4DC^G9WmBHbYcEz<@#&2?l7r!fl~N zna4zwBmycblLixLY4r*+bPkFn1RNUSfPgIrXoG=o#{o|0@8`SL`{%lr%Vo|vwX2@0 zUAyY3{gVe}`+V(X+7JZIcXj#R6M{7Qm4E;KH}DJja{KS#AGIjY?cYJyTMQ8JpRaqy+u*o3KNNzxLsCR=Yn+JG9I><9`;cHYu{U{@T^~H$vab_agGSsDU5)_KM0| zCu8e+!bha9j*m^g4|eDqke}pq^o_n>2Q>KapZ_B8zk`5DF9iporHYzx1w+QT#u%z( z2`l5fMSl1~PK*0U|KR=U_tWlbIeCu!Iyc&l4@Z>CYI?V+Eje3#GUArE9cA&fVC;Ix zzUylJ$(n`X;0Xj>gmfIB%ePht_Xy~M%JL2uwdd7l{fvfFx}QJJ317!|KYf^rc7nI|=h#{akX+cnex>-MD7Jd!AkUZuTQX6dm zt-Wy(o)4CTApHO*ttG^vhR#B2&PV$^e^WId-9+Fx>fp;5{sA&j3 z)V^_1qa7C65zSb;CBy6e?KL6r-LErtZi^72OA#j|2nXF@sMt`!XRQ&$%HLGtGg;x< zkeMS;6bOT$EozGx3Aq(P@`C$<9oi77a26LGhkCSg1ItOmZWOK1gm@g4NAINeiiZqN zdlCn-idAZ_cj2>X&(BqjWTuj(`$b{eP|7)#uf#){qO~#$O=v&`$3Ka+eERyH_2Bng zSbQIJHo(<6BWdbT1I>xQd=UdIv8Mi%Zc2Kg*p8=1QA>EC@;F*I@aT33*7}^q##rj91H|a)&;d$ziq5`{e;-NA$2YrEqtm0H&Uzw9FT1BS@ zM@$<)OZ>4IZwZ{B_T-1Bt3w-9eqLS1E2nbuVD+`Cuj09~St_Uoa~4p@0}4Y)IIIP~>8?7wG~|N>wD~-f)!++xD#1 zgmS`FL@}6d@)iaSEa9c{K?yJqkKY8|H&=Q8-7_ovdKrkf9JVRHUaQjYlhN5#Y@FHY{+?J+F&LsGKZy2)&0D zFR%Pg{u^UjAG&CVRlY5IA)GG8dqN3*DpHJhyAtyW8#JMQmCZ9xI)E$|PjVsXm5TJl zkRcRh)B@$Zup7JKMrCYEUBTWK8X8yQ9pO?=%^n|X#z9^c!A!FD>A)}P$ZFmYzHf*f zMGZ^pjo!uVG(^u#h2Wi)Oj;b{xjpU{kOcPEi-`dI-JGv?tR5pg;S<<_xJf;6FC~tyqp=)=rb!tDx*-J*U*d{MZOM+ z-RlTJhBN6nCocxs0~dPb==!_qku6DTQ2+UvZ`Xg4vrIcfD|fE?A&`u$(%bF>CmabOhv z5xI^i;Mn4+eOhgHvq#%*%|D}3U5VNE=&}r>ERlI&(A7-BTA4ZPdjUi?3H8~H(s=G0inPsqx-zIy`GEIvpa49ZA>5H zod)mTUh-LLN?8n217GucAT5Kx^~`Gi8&U!DdHGz(Djl2YmhLHc@z1qphm-Uu#GJ^< zjTHX^0-jC{(Msq%h&d=*Zg;L#P$a`!gYSOWD6_=l10M}v5Us+m80(HyEoFkcPU2YJ zjVJCn$nbc(-d1|HXoJjdtjGdds7!Xo)gTy@b=Ir>9MlWAT`(Pp z+zvHp2^4#HSMDSt|p;vbe3qeH=n23%d7T4o3zfDJvN{-3a53mph_DxVio zM>5Xv%Q%;BEAHU8QdmoLwzMkO)uRJDz%DQBev`pYm)msL^c3rn>(bBVkLQ20olkd# z5{?GUE-P?}5Ty||aj6}=R2OLkDJ6M)_o-K64NqvvcI?rBzN8`9o^nQ%Ae!msU{Osb z=7wKTuiu1?F#h6TZf!A&oJXHAelREy+4_QV2k11jN0$m@uqAk*8PS2eujPqMS^Kr2 z536Uxc@ZOVxQp>HLv(U2>m<`%QZ^)}7U%P!dNKAqve_BS<&cr4_aU)sr;mk{>w*)v zg{qd|h=sGIt&&*L#~ot(%8wiqI5S-(WzO(;2D2w!E#Mu-L19bs9&$Mpq~RKJKWy#&inLzI$ zqgW_Fjy(Zw^i6q_+<8(!wk(;2PRdx#{!#QXSuHoqvi$EN@ABrqRgkDgu8wCSa*y#4 z)kE5vsZ@940(Ge3A$GY^U8;Y+HOY?aSlq{V?jUr1I4Fn!%Mq|%DGf1R=9?9sVNEKh zN+Z5UU&@eQ00a(L2zFL%m%q=T2{zG3G)8($hPLyz7en>^Dk?QULb`Dckzw*SG=ODN9v$@@a3(`nlsbR7@sH2ezg&$BdM5UkGDgt> z#+8laxL4Ydc)?vGO~R|?M))(3hYcTbvH{?AF?5UUTWKZ4cSX048R9h~Wv_#z59 z02fJC;Vpgfnowc`7Umr>-^p)g&<;^U>Vla&95$>g4(2&>q58L~l7>P$hmg*B4M}1R zxQOY_JfscHQ&G5r{-hEwWZln@guB&{EM1dcuSBwe>;J^so=c}vhy~X3M#$49hI!-d z93&%eCGaW&5Ol#U^<0pdk5JD5AQAyh@@&RcsW>~4Z3xB8X1uh==N1D!-p>8tb| zIt~@RI3&q4wANO*oq5z@gDF3jKc@l7H8(A$l1hdukXPcOP8&R^)#ZU$gh^q>>Q(%j z@=QmL|t)@vF0fy zKJ9wJy<3Ok!zm;xMH(?x8QZM3OovGZ8|K9&WfX%(*T##Tp*s}v{8eZfdWo^dFI}|Z z%<7QVorm1tPl|2C`@9ky_dAt8Qql3^p8P)Or&VT43M1D&42tTRV z-&HLrSyO0&g^9N>miev-XNzB{_4r48i!Xa76y2O7a;LdVe7@Xf7d(zciwBgE68Nk;4{#Ps)_w}A z&$?bMBt20cM4@-Sk*&CPokbOF5bkTVVy$9@4&eKgy`ieVOWB1YQ*Ksu0AcmD>q5RF zC4=T*!}3-~yTq1!xCrEYY)zJs|e%m`*7)r})Y>@GD#sdRr+t#U=W!7(2ehlXD+avc1V)x3T#L?V&4SH}aw}TG}RpHlkXbMX= z2$eHiJT`AmqS>zs-fv&S)__PCbUsll;03Trq%ro+e>^uxe35R?2Nqb(|KU^PW6|d0 zx4h2-*0g^j`!@I`Qa1FDtL?|=Ejp19Xv{1=b&ZSr%`7J_cA)tM(~Tv=Q}**3j@lEO z)S!T6ceZ?N?0&ddakuNVAAH8%ndW4iIL;ou90k5t!+a0ybB4db>S>8n&s{`kx1 zmd&Cq_v%=b$s&)z7(B7DBz&;or`|56Uq^71NmkULJybt0>c@|4A#mlbr@)o&QKeFo zBuO_%1FAPWGW*Pgy?5XdcdRRI)ZhL|Rcu=cve=&A3oz1|!6^4?Rn(QIHa_f^esHG!lWWz_in45?uD8y4JnU4ClokvOr#X}Tm6(4utCbmW%7zS0mck&^ z!4$0dHO8vltwmWyX8nV`9&n631f_fi8>pOaOHA6Ec`g*IR1Y7iyv)# zMkB8TuF;V%vu}TQ8hB~jmstO7WL;}X%PBuNP$~2LOo*lT8lidDTT8;7bgO;<(O3U> zjDboE5(@@)Hx^~B17Wdb<>F72sSd-W3G9&h;M;`&-n==hfjHlg5!=@H+M{U%M5D@Q zUR`0!8cz{SllF!`2AKS729qMa1@YNQZztYA1=0f6&jcXpsmJg!BRl69!4%oP{nmHD zec!5jXjvmXrg&cxk~v2W0Rf;DsV5(ax)L}x=UJrQQL^(LEg1mB;r|1O@-tho8g0&M zceI4OGxkq>3!TlED>vhJpVUln))>Qzx#B{JReYysF63{M#LO zWFsW}#3R)Zy6WHS(d4lR<$yR*D4nA=>zuHcNDKSz53Oy(PIb7Xy+(lYP>B?!UoF6v z>HYA|Ahgpq_&z`8CBttFLi4jnQ$c(@ zhCYKk0rI6^mdJsdH3W|o@4A*YWm0%z|E6OKf^4nARU4|`@R>SNre^>%eGN5g+V|W< zkzRwFeFQf1c8xrGxA%5Gsmt!eV`AJ^+dXCu3r5NaW2yd6q9?WnzZA-Ar~X)1TD!d^ z9z2PdfBVF50Fbkv?d0FCxVzCM9-PSUk>er9QeCLjrHSJPXX)bcjA#hTI{k&Ds<N?1L^ z!0|$9OtKp}l}yauT@x>VltGK#Bd-B_#eIhPB4sy;Yq{;#m6}m;%&mfLjW>kWcxz4Q z`Nl6aU?K9dL|RqVbL817!?V>Nh^AaUx>H0ls0ET|rdBZ5oL25q5&}xxO2H)GpNcdc z4T;@&YNA*JI?()uAwNU6AjZv~kZE+@kE0HyESv#Sa5c}bumwQ5 z4>^Z;+}+ID<;D@^5>^TUGrdG-CJitqj|+U=$oV{HpEY)r_yYNnn-O)coLn{tX-2c& zosay;73oG^FyhQ&QHy3QMMj57TI zw~%r03)lQO1CUAqJER1J4;P*Ip2^g9kBpMAd zP(iT6h8~w_H=556x$F#f0sBIAY^NF&bmsHRq1JGVdkwV&$zr@h`H08njS7;s*HOB> z3N1tILncMX$zVoeJ`*#!;}Z03hQtrBZ=i({UX>+_4rtqyD0q+VgEp-k~7MCB+6vhF=s{`}3D`JGjm_oh4Ze%X zdCg?0X>_a zA(NhowCPI4-+pZ~$T0%(sK64n!PQqYr#926(fsNtxDYOK_?G4Imo9qzKDq zMcNLh$C-{TH-OsoRMwH&z!Us=4Kau=at&#_i^H1%{y>El>a5--PiCCSpgprx>~z?m zBOZmDK}&yownX=CTbk)5#seDS9@>qVBW+!#3Z?@Q2vXsDcGz3t34z{#Nnd4H+Q)qe zIGQ;egbuvUYXZ`1qQd5I58wINehJ%C51NOWHtINBe%j3!QbD!;4QrRf&N6NvH=hS> zVPW~8l)bTf%vei@hDcvP&(>`=ECu9=qJPvAx@dtlejA;_^byb+Z&Xec)l6L0la0bP zTxg3gR@Tnn*y>a7GH7>fSzAB|7zxtFEHCJy5mrv=?R`wwfriU8xu1Z=JOH#Ro@Ni{ zd?uKZSAf_6gH?*HKgl=~@K`R=3eCjpEbI6n!B#NDWn;VMCvURZIe-%@mU5?ab!87i zV%-$-zw%w*F=GUjMyo3B9ig#MXvylYCfDU%2g9}s71x#ex67v84>JuTqbK*yIDXw8$R%woO z@P(T;v7!M{w^;=QsRMn&Y|=)WRKrc;3GLV5EegTB7RxZ&rWI|nWic9W$nvV=IYaoD z!p?PI!s!V{<0`?Q`0@o($31BzE6Q;MXP`1M?B4>g(`pFSQwh%PAU(N{~TQ{ffbs)!AJTqzetdSDs6 z9PS1kQO^Ye00NjeLu@1W{g7ZU`M4!=+u{+Jk>Eyj{z9O?{zwE&_MtZzU57K{%w!ui z6OQi3@L-e(qqI2tz|97^B5OmtD0p#kxr;1cw|E!%lHdjVBzxm6-}1ddKPKjk1g~023Ur zQH52#zMEo6k_xL*YLdlxvAb7Rvm2lyHQ?<$_Is$FgoQV_Yba|fOnbp~(ga01IqE|g zCnhl;s(~9M)Y>DWU3o)Pp2knB?PKm<%qu(Bp?Sj~|Op4E&=3&}jQ`4b|TX z!Ue|#y9G=^s320XUotfj<<&zCIN_I8UDwl&nJV!oZX7;G@z1$;>-KuQHOralrCooc z@=Uej^*mdwYZ`9lX0!9V9nU=4M5K?9qaz&ZZ+NS6R7sCI9q3JcZaC6|W<&~xw;f!l z{h%r@YM9m9!y6&d)>@GDTmjSMF_(JG$y*>cD@MG zkRu0}hvki^9S*9P%cYW1Yx&>+E8|)fUU&1)G|C3$sa3@sO0NNxtW%H%MwZwh@6ak_ z5DH)B{IPiggDKB(7AFRA2N<(5oGu?os1B97OH_%;h^*b zbLIsB<^ z#b6wg4KD;Y5gd_8arF)VboG?EB%IZ(axc;NUp*ow7!mZp|u9a?F0lO+AjwrO%1Xp;l^K`mIMYdzb;8}zN;X#LbKY#Q zs-zA`CohlWs>6Kq5&Dkl7|EjC`?0$uSra{6yW$SM`=p$wzvNs6{KP9%C3nz#EES=G z7*H2q$LzQ^T8{E`l$j$?{cS8QpF|6rDCV%40!PRy9Q#3$-Vh$)b0^4Z5EDDI(q;L8 zyD`Jy$`{&*%>(kvNO>;$H4fSmp&}+?6s8uZDy66-u2-~h`8o7CxX06veVw*h;lx?xYyWbm zYvoQUuPp>c{$qU=jZ6;b$8C_AfcI7Jn349b$2;J`g^?VKSs={% z>kmt86kC*c#%|oj0{7#NLrw3sVCDU)M_B)At=+VS>mIKs7{wN$wTX7!a0d>IVtL`iDUtU6bz_5Z}LU~OlP=tE10v%dp1&sXU!z3=P9=WOgJbBw(HKN~Zbx)6cponU+^AAZh{Jf`qQ*-n(Kj;C(W+jF{L?*3%m>5cd~lNy+@iwVQ;j}+rqX;MiOZJj zLYGw(wu%{w?K2A5*KQ1YUX=m2VSv2LjzyFI$pAediHP-ULM|9-wt@Sk13+(;aXwTL z%wTL~KNHkL9+dXv0CY>$J$VfgJ#=vo;Jg1JA{ z#rV9uZDGPuWq}z72(nL?ZyRcyB;DoRS!0uYQHMsG&8&vI7be8fGpb{sPJr?nTyO~Z z4>p?A9<-i9i;&BU2TgF$ydSX@Ae1cqhMp|HEcS)Z;GmtDgZY$hy^`|lwgHb{$~I{x zbgDjNNLPR-7NF#h<%ShQRtr_|PifqSR3}%NzZn`d2Sa+OD@$e7C(Z75RH@fXJJ;;- zV}p4(h@}$c7o&CHTJ9h(3}81j$W@Gvj}0InD$PH*PfC(rKsL(${6iZk7e8Ky4hU*? zUF`o { } async resetPassword(userId: any, newPasswd: string) { + if (!userId) { + throw new CommonException('userId不能为空'); + } const param = { id: userId, password: newPasswd, @@ -210,15 +213,19 @@ export class UserService extends BaseService { ids = ids.split(','); ids = ids.map(id => parseInt(id)); } - if (ids instanceof Array) { - if (ids.includes(1)) { - throw new CommonException('不能删除管理员'); - } + if (ids.length === 0) { + return; + } + if (ids.includes(1)) { + throw new CommonException('不能删除管理员'); } await super.delete(ids); } async isAdmin(userId: any) { + if (!userId) { + throw new CommonException('userId不能为空'); + } const userRoles = await this.userRoleService.find({ where: { userId, @@ -229,4 +236,13 @@ export class UserService extends BaseService { return true; } } + + async updateStatus(id: number, status: number) { + if (!id) { + throw new CommonException('userId不能为空'); + } + await this.repository.update(id, { + status, + }); + } }