From c6361ff3c6bce8a4607ced03cb0c04b5148f854d Mon Sep 17 00:00:00 2001 From: Florian Wilde Date: Mon, 12 Oct 2026 13:14:01 +0200 Subject: [PATCH] feat(widerruf): Widerruf und Massenwiderruf mit Dry-Run (#024) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ein Schlüssel soll nach Projektende mit einem Klick von allen Hosts verschwinden – aber nie als „widerrufen“ gelten, solange er irgendwo noch liegt. Deshalb ein Zwischenzustand (widerrufEingeleitetAm): Verwendungen werden zum Entfernen vorgemerkt, der bestehende Dry-Run mit Hash-Sperre zeigt und schreibt die Änderungen, und erst wenn keine Verwendung mehr offen ist, setzt der Abschluss WIDERRUFEN (bzw. ROTIERT für #023). Scheitert ein Host, bleibt der Schlüssel im Zwischenzustand und die Seite nennt die offenen Ziele. Zielkonten lassen sich optional mit entfernen, aber erst nach den Schlüsseln und nie, wenn ein anderer aktiver Schlüssel sie noch nutzt. Massenwiderruf (Admin, frische Bestätigung) nutzt einen gemeinsamen Dry-Run und protokolliert je Schlüssel. Abgelaufene Schlüssel erscheinen im Filter „abgelaufen“ und bieten den Widerruf an – entfernt wird nie automatisch. Migration 20261012130000_widerruf_eingeleitet. Co-Authored-By: Claude Opus 5.5 --- docs/anleitung/bilder/widerruf-desktop.png | Bin 0 -> 98569 bytes .../bilder/widerruf-dry-run-desktop.png | Bin 0 -> 298524 bytes docs/issues/024-widerruf.md | 38 +- .../migration.sql | 3 + prisma/schema.prisma | 63 +-- src/app/(app)/schluessel/[id]/page.tsx | 106 ++++- src/app/(app)/schluessel/page.tsx | 57 ++- src/app/(app)/schluessel/widerruf/page.tsx | 118 +++++ src/components/assistent/Assistent.tsx | 40 +- src/components/ausrollen/AusrollenPanel.tsx | 35 +- src/components/ui/Schrittleiste.tsx | 41 ++ src/components/vorgang/warten.ts | 15 + src/components/widerruf/AlleAuswaehlen.tsx | 24 + src/components/widerruf/WiderrufAblauf.tsx | 224 +++++++++ src/components/widerruf/WiderrufFormular.tsx | 209 +++++++++ src/components/widerruf/WiderrufKnopf.tsx | 64 +++ src/server/actions/verwendungen.ts | 10 +- src/server/actions/widerruf.ts | 85 ++++ src/server/queries/schluessel.ts | 27 +- src/server/queries/widerruf.ts | 121 +++++ src/server/services/verwendungen.ts | 44 +- src/server/services/widerruf.ts | 433 ++++++++++++++++++ tests/e2e/hilfen.ts | 90 ++++ tests/e2e/widerruf.spec.ts | 61 +++ tests/integration/widerruf.test.ts | 171 +++++++ tests/widerruf.test.ts | 346 ++++++++++++++ 26 files changed, 2334 insertions(+), 91 deletions(-) create mode 100644 docs/anleitung/bilder/widerruf-desktop.png create mode 100644 docs/anleitung/bilder/widerruf-dry-run-desktop.png create mode 100644 prisma/migrations/20261012130000_widerruf_eingeleitet/migration.sql create mode 100644 src/app/(app)/schluessel/widerruf/page.tsx create mode 100644 src/components/ui/Schrittleiste.tsx create mode 100644 src/components/vorgang/warten.ts create mode 100644 src/components/widerruf/AlleAuswaehlen.tsx create mode 100644 src/components/widerruf/WiderrufAblauf.tsx create mode 100644 src/components/widerruf/WiderrufFormular.tsx create mode 100644 src/components/widerruf/WiderrufKnopf.tsx create mode 100644 src/server/actions/widerruf.ts create mode 100644 src/server/queries/widerruf.ts create mode 100644 src/server/services/widerruf.ts create mode 100644 tests/e2e/hilfen.ts create mode 100644 tests/e2e/widerruf.spec.ts create mode 100644 tests/integration/widerruf.test.ts create mode 100644 tests/widerruf.test.ts diff --git a/docs/anleitung/bilder/widerruf-desktop.png b/docs/anleitung/bilder/widerruf-desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..b44abab18e160d0a180941273483ecef0284e0b0 GIT binary patch literal 98569 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

+Xq9D@WVJgk@UJ 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Ơ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

{u0?5r1YP!=Z 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 literal 0 HcmV?d00001 diff --git a/docs/anleitung/bilder/widerruf-dry-run-desktop.png b/docs/anleitung/bilder/widerruf-dry-run-desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..9824d18b421b43de53ec74e45d2debe75dfade94 GIT binary patch literal 298524 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%0Dy*X zQI=`1S1gt&eEN}1F8(gpE$ zq6EF?Q;3sHt(CS$5Fo~rS~T|)EhM1ZY3$KV_zUdW$K2=C5gmD|_%WDqh_PCF;K`qL z`|9q_SdQ|>(9k_sL6_GQXVWNMVr*OZSM%R>vB|~QqYn|Xqdd@GIS%L^=Kl8y`llbs z|I@RT;QrftO7mmq##SyN5*cduThmAFS6q~$Q5$N zg|_u{kOXLLi1iR`M)%}6sO1VkmFQ_^SaOo9#=BWCw5B-+cNb~=59`9%UXjyrU@H+C z371&_khNj_UJqD&G(jbUhgGfhaPJhiC==7|t{LJfz5NpXq)&be2nABa)l16$2Um?qjD@8&hXM z9-g6&pI$ocdcbQQkNy}4VqhJsy@#3rJhsIcvJ0_p0f1^bIm{!ey5ezEuJ14 z!?|ASr0H;*JRn~-TpU>7m?NzzuRB!Y>tsd~e)-bO+RXYm{Q_z0UtVJNtt-<-P5ViasyWrqn@_&I6?j zyQU0!if3$N1+_}E8m?gG@!xp2F26CLe`7^p zl4zzN)}oGtF}{lio?LRYzT6u*ar`PRIGHZU5h@3h^A2jAszD^#C+qcr(C@c)#!!%I z-9bmeBD?tx<;#bV9b}bkZ@Ru)(*Za)U8N;3aO0oydw=T0L2J!ZjUm~S(5KgZ$xdoH zD7!4l!u3Xk6`j)s!NCxB>YCLXm4~azD+d}>dpvKlT?!B3t)FLAg`}Y+FpN<+jfGZj z^IH%o!)IXH#E`dd()+ZYKj9gICW=JEGMRXX?gnUJ)L|S; zN=5hRoJ(Cw%97T$@9p_^OM6 zzvi&{r%L&$w0Z~#9_xhWz?@Hl-=?=rrYcz^S3U?geQ5@#bie3O%>svdW&4XoL5{*T z>uggKYu}NO6FuB2{mfo=pvVFg-h@}XH*1C+YHjaxPrla9`lnH%H>|V2Xs4_#EIuOW zu-ZJop0=4dna7lsI}+jwl7!6M8UqtF3!Z9vlDpa zrq0e^?RP4i{uH$5cC0AAZUwvPMN%Zghr8Gns;~3JY|t_syP7eZI$@2GT>FZ~F+ARr zgya4fbv^w{aucL>cX~tQY=OBtGq8zUc4e`;NwI|nx0o|aJ-6rNIg;^XwlY#r zwLfq0suDUIxATh-XT_sD%G}C6Q3ts8-b$w^ox@K8;D(nZBx7~R$y{4hQGx~Duc#wv z=p0-RtO}=LTG4r{^~d{r6m+8}C6vIEw(I96c>o{ot~*8y|nls0Zx)s&yZXhRJ zC9Aa2ytVA11ke~i37%A#abSwJTPq9+WWSzX%0pm*8MWIf>@#z< zu-9#wrF1Y3Fq1dXqnJ80so|gv60ob@Tln%}Kf9XulnlF4ntie?jdf~&-hWi?b!xAz$dq_^BhjIQ z_0aI!e^fRtK7BYP|Is@SyzYTygpUV>6+cP^CO_0?`UQdn?H`)Ea1rupII8)0)x%(T zt@OXOMT~sx5DoVAOZh%Lz)d$cSwsG=PRPjtD(jqT zm%U)lrsNfAg<_o@yM>7ct?EkNalXZ}*GbB$Q9E9=7B*Zz#+(Z_e|~!|Ny0iy@9nr4 zen*%r#l*~le}ETB+Dg@jtqw`MWhkypPX|dt+}by;lEba=J-W<~Maf~8Uu-z;&8UAH z>5N7Ng(P`CPF4d5^r5#*d~lM~gdy?d_HK>hcPy>b9XFvq&bZw}Z94>tK_2*w|O{M64@9*22I4Tb>nLe@XY3o`X6rshEISIi?k zvpbfnR?-{`?Xx>tiI_%^%2q$7BrkFS!sD%&ka=Aqs-UN2#DnE{3b zHl=53YBTW44ML#ejJSbk7re(GGB-wvMxoPcgg$B-lQ#Bo65c@q0yFSW z4|I#Lg3jiQ&0Wo}d0P?deDRb0-90|?ztOhjsBwZ!yF9n%BiXdNegL4pbC98iDFwJ zn}<*tk0hA(K^Jw_z{sa;Itene9k-^>EdD#-B=_sMG7#1_K7_NvQ-=QvE0a~arp5Iq%>vBPF^U|gxI3v?l%vPid< z*JQgqxoFi0$m*krD={%cSKQ+QxrqH}WFBEC1=8 z+_txHzR)r7lcyRE971^U54Yd$Ww07$h)Vo5&cLp`@rfL}T$ATAb<7Bp0A%XjcZiiX zXbjWganTNqljE##0q;hGeYH360-VURYNoC9e4Kd%;XMV4zh2=B_6~aQ{OFu1llA^# z2$)vO9@Ui?USPP*3k-jIzIzr>0f_i03v(Zl>?48p!YF~i6(f(Bul1V0_x_$Ye4|vV zkmvQ>)M^Gzr8c#~oj(m*^)-CV>Jv2%>)zlpWF=#EYB1TY5w&@@IbA!S4=vpNvM-(L zT0SKPcc}FLm%i<@LFBWu{nd=q*l*`(rG6te{akAX*C;ZlYBg{rHFr50zO3&*&Jl8k zR(Z9Zq@RF})fbV%t{Lszu}`;%Yv*e(H@|(JNf#rxs~NFj)lfiZZZXg{Qp69&Q`}=}A!L_R3HwRrnz-rha>EF7M!OLqq_WOqpD~BHP zm9L2oHY4z5B(f@H*WIQG;hT1$X90h1=yiLM_qX<<>-ObfxW68Yu=`n#I$yYAy}8lk zGapKh19qh)VcOn@{+C3=FZ4KUE82as#w@jzT;Jt^z6wbs)=Z7eW5FJ&29*0$*VI*+ z{g`QgX_cjwIWc9n_tk7g!T1z;dG6f5eWjfPiuUaC1y<62+)6;~ty3_yAfy%+L;Y(0 z6*1J#gLsshWOOmn3{luQuf04sDfWE#k#2driouG?lhySR;mA(2c;}0{5pUod-y8lw zUYS1WW+{{1OnoxrB{$;UXb8At+R|LDItUL5fFc_3AF;rq(TV<8b+}_%+&t!Dx@q1E;lM4FZ=+ilFrp1Sc+*nzfFx;Ea^9OGCE z0)M{|jQZ!JyYZhN-6CO(sHpy-BZpCfr3+tt?Ql{%25Z_M2_BaHFCX3OXuDInVStbs zu)1cd@SjiL?rh<}USQbXGB7{A+c#_VaNK=KSKSf@})C+0J(MQD;AHPXkUg0C_0&PoWsfHEYS=8l4e@Vj`(JO@-knHg(p#a@k)u zUing?8bPQV03Od_#)hH(Be{5(C242HF)FEw*3t5&ukVY30sA$`cpLI=mi6%uDLpPJ zTiY6G>X}PMHPHvU>ZG^J=jVy}#fU4bXAnaa`8Zbn#jT>@ysb>*CZ@?_k$o?8Qiv%o z!5mleG#XNK_|^CzVVdXgguhowyG)Ml>HwT0agB|)Y$jO0E|kJiV%&feZQ;hJY$0Gp z3cUWeTBiT>LB0XNjHlvWLTQz|f#80m&~cb2+eUB|>8QqQ01QPDGzAmyCMe3ba}Q#e z7=R(y^TQ&8T5fI;$wV;?aonJHHFL$y%gzt*JUC-jf%Y`tteHL~?--Mo*U}VYC2^`J z496(COHn>$+@Z1(I(qobrDts2@iQuE?;!IH4#x7t-b>pbQ&`LL1YNq5?*_)$x1oo_ zNXh??2J3!{BYD1-lIp9Tx<20Z88_6Ja8CKEUpGOK>2e+`DWs%1pLVTd5QX&W73(x@LEXS+jY&dJ0Hbj zcB}WYI$5|mmv|j2^@{!;J#f*a3}bpTxw+}AMMBQnJJ-Iia^lNxDbyV;|8v-MZF}HE z-kYbfEh){{7h_H%P?Vyjg*oUiAw_@N%Vr?w^Ocx9 zK>zg3c@R&4PD)+7da()};|oQi&xSmYb-^E_wuaeX>!P#vf-xc`lne3O>jz@9@iHG# zb%=XehZ$T__u6P)MHl$^I@|0SN@n=jumZ8oU|%~aXvTquLPIuDv~bzzR_J&U)!R~e z>Y{;6jk}(}X!MxnUkt`{bwl0aBa}N_V!ce*v6AttJBnC4&gc!=(+)pGvkY^uH*;PT zIN>{mhZ~IjQ*Qe+#*w6;-$q;Eo8&jt(}%o}OMg>1{6gfibl3^US&}0ta?HFtGYR&P zA*F53_l}ndL&MKjKmJ$tU|T?4Oyp}W8PYgov&zy}`Oa^jY}y34~BP z^B9-yD&}JJlfc8rl;j)}4Re)M{Pz9K?MT}`O2*^s$JVvw3+Vt?{cjF%W94<5?-2YI z(s!y~d4_wpN4vA%uyd}8$Pk?>q<3AkAHbctiNs+CA)pTaEK42___|evhQ<_^Mi< z{OcCEk$6DIlx*u`|F~n(aVOrbf*%oD6*`>;v7ejeR!9L8Hp+YD4|H=VfL+3Vyc_`; z$3Ags5s_P5Z2ZHHjg`uxR>z_#c?8(87fEK62-y%*^wLhxBp%&&c4BjG?8J#NlVC(t zU~*kF^JsmK?gDCP(K<{2+AntDm9CEMQp2Q?kpSOV<2mNYw5O8WC;O)hd zPEU+V^@w!Ml@+Sdj}Gk?IuycIs?-r)qfSGel(;)>WD3abJ4H6CBm)FEw;17&-N$?OmrwaI3rI5K``fa2MbGwczX+%Fs$lJ1 z!7P}u&s4Z!P&;R!+UKUjNjQOeexRB{uBjs8C)-!eiQ-VMlwcio+&_|#C&zi{rRUu* z9au(vXSpi)mWlV&`0@(Dn)r@XOwk+cL<95lgeg~~pvQ+|i^hgRiKeSXzCZ5qn4@Ln zQA$8U7s2M2zZ}RZ&fBd|tyt?e_(mtDvg4Qv)lK-iFIrstiZTs%*40w!d`iM9c%$-|ICod< z=bDfNL^qLo96p0?z)cl)%jDvzijoCOAuF*v$Nq;_%R;T21VvZlh()BS=TQkt@0x?!QTwjkkjI;ue^9 zHjxjD_fiw0VuwQE8I-`~gPH$61tWqDxi3+eZ+Lup{40AsRuCxqT;JWf$rjm0jeG+I z=l1Z?wlBGqlmC+y3Q?tKyozrqX&bs1nj znEWVuh!vhei`-VO>~!6nK1$>-e%+gBZW5Ldyrvr2Ha9m{HY5Usr2Jb~cLw@HMdp{( zRS+1Jhoj`1#{j+v7mK)3(+0@X+s|MkMcuFN%hK!~G!r)9czoH7_1FcAuPASB*J1FP z!XhP&?niSl?7ugiB71ikMk+tLhO8h^_!@^?`2aK&Zt*2Gp*)3mpgk`Mk}{Bi+qISI zrQxy(m8b*y9aC|ddr~`ZV$n)y(W8(Yi-Skd4Z@*|)IQ{VBsV_6I&tHf| zFq)+6iug_P1C%T0JL`Je=*SHxBQw0Z?l&VJ=I|ByQK7(HF4PH8 zVJmq?4|U0Fj+IUVm8QuScq7~E>f7F6d(fC}LB|aHpXZ?8U~as{C>pupxKN6`nW8+E zm+m00cn3Ls^eOeDCP_n zybulf3qUajE}z+=J7?b4KfSS({Rnx@i9f|A2bv?m6`*-^%NzKk0Ql;@m@mqe5e|jw zUdFHc#qWV7aA5lyChEtl?SFR@IG6j^BBPMCC`vWXO^qx8wdc>v7)AkZ9m;!3cZ{5(l9vIj8Ugq14cUgw??$%0D z-2n+qsJ9HvJ_Nr~5P2d6D20bL>ovpul83-sg<;tX}yDhN-joMfc~(S&Ls&yr6=G z)zzi4xoT-X`J24)Cc1*2&yQzQLSK~oZ0d&r#X_SO(yrQr8Slq?i9P~QI6Jw z(@%aSFp+L?#)}FfD$02{m=tA>TUu=qK|$(OY5Gd9++G)c+Jsiy=dX%s2OqFBSj(;W zy~37qredk$V)MH>WWVj=V_gY%!qeoSVZ2<7;7S8MU!K#HhFJIvpZl+SGX_Gimo#!fv(9& zlfy#JU%_QHKUZtQ;io!Xs|E&jC@{v|XT_Gp{Z2s9v=!-WcmiKN+QslDNe zE}@t`9`-Vy1st=#3zcmrY7*RK^!k;Ta(O7`V%+M0_iB;OhI{BmcZ~ykdmr238!xqf z5<&Z)EhRy6|6){OefFMpak)6hguu50WpjiY+stoxv>zK}hmmmGZBNuxzLyrJvEg!E zl3ug){?31QbI1d7a;(X2JUTV#{AP6u9!suv53Uk~{~dhpmAW4LQqbghawU46t-7!N zv>R+gTuZ55T9GFCh^~&(L_P+w2gB5%s)=Zu_p%LttV+mwPfrW%OTV;t_RHfA_uX{i zpX(%GZ;fwn_nNvr5SK?Lg5G+wB9liN(uIzFUEJ^oQB$5?q0+80%MmO#&C->pdo$ee zk#~iKGOz=b$-(ErIZw;>Q)Odwey}=A>x-``1iROm;;RCFGp>uV%OgRZ^R=b(%~lx- zgT8puP0K7EMUVAZn|cSS(!-jH$W_r`_d8F3!IF%R%5~6ClWv;H{}2)N{&t8c0(+!+ z^!W`UdAZ)?tGFv&&nHjvx4C&j#FF#+vG3lTS+Nb81A_2tk5PAa*N8cRo8Of)dI8_p zH|wP?o6G5!bFHO7lT!QT7CxHJUKP~0p~($>q$daxNd2;h5f3^9oVY0MqS5Cci^+tFeZt> zw89FWu|6_QsnCR!6$I+drOSInJ7oq79GvCHbg_>O)gT$A4LA$poaUFWoT5|1ufCiu+0*)KaqDIP;7=?ueVx&#wrgCO7YEFQw1bQD`G-Kq#X1`3 z8nIv*iXsiR!!PlcXEdp;(V%HrbpWcK98HbDcA~xOk>vjoZtA&6jr0^w5kGOgcF1ZY zC&5}yAv!LDD)%N2xx&o{>P#0WFo~Z-blHrA=rT^y-ep0H(rdH=&KJJ52|gS6)nJE8 zS$CYJ9S&V6N0m!tE-VU<#^Q8|Z$c{nC1aGcuH`1U;>k-sAFi#CCMW2G#K~F}ct4$b z@^F8|+i~A?Il>Ycv2gr^c7f~|i2jqygKs|L_3;9ynHut&p&tv3+ zs;6+YfjRPo{w>Hh+d>19Sdm4=T-l5zJLO=T*-jVS+fN|N^^M?vfu9nrns*L2r#U&d zHu9}moewRqT>@a;0=gzMis8fd>lI{{I3wI-n_pcRH@9-bo_(vxBhdMdn+k5 zeb|_8n-$qpLazp|1!=^e!`zqV=8_(V+Q~Z-W0N5-YL5pyH}1ZF@ogKdW2O_JgJ0`E zRxBiU_asR+c>k-=dZ4bE{3>)FA>&kjXf`HrF0!(Umm5xyd4kTAkDDauo@TxG(z|-d zpj;_jErO0JwdlJ>&3R^t$5Vn}F^E4A)m>(-V}pA~Udl9YV^##qpUOyPh1}P^qg}na z%jyI>s4Uq^nf!M0KO5hkNcMJ3t7DaH-9gUt=ZL{Hw8ebHC} z9RXH*c2+g_iFd;rL7Dyh@UF|}PcK3R&-P|zoV%cSJ;RbW#~C5;Zj1Puz4u#5%0e}w zKh}nxe~#a5f?c>;92JD0sru3JtMc}*r+9Ci($!n1VX22gh}?9-g7%d+6vu zXeN&14F`#cO+Kw-Zf5-94LVGIrGurF8>#O%*InkNP!|4wWmM&5M7;D7ndS#@$E0I; z#V%}9Y66$(m+;8}n~@MD*sH=ftI})uMUWeb8y)dOFsq}ilC6PE;fQsv>bqKEY0enc z$vXn%8b7z?tWkP2Z1U~CuwDd&A$L2NN-mi_7KLwMB!1E>M&6#Yo=ewjA|mM(_Mh!{ zm}+~?FBLk_@pSKUk4=~kEA{dHeyQ7~Ju|X7Rqgr*avMC8Eqm~lNm^fvca6LT{ue{R zvLWv`D{5{j$taW)`^vUvX`%w$)kqRl^e4scH>;x4yYZ`Q+q)kbGF=`bVh|)}R&w34 z*6q_Rd9h5d@6o93B|27}bPMO_eb3jTPx*>noW%Y1Wknt(P<=FI*?sG1X#I~&TpWMT z`LzAHW+u)~y*F4IZeUu_!rmqbllV zrGagIYKN3M83Cr13nmtQ01r?UVWCKg2`dBdp}e2`zgGv4--Gf$nhym8DoC|}sqa@c z9?CT<894mcC7(tYVi7$dPFGjzp)ZZyP|daZur|Lt2A zyvcu}1*vQpu{M0^c}SYV069AJ$gUZJIlL4Abv6MZV)W4IrgZ5xO z|4t|skY~Q!JgIq3DS5=FR^-;7%}?dC{?+~TB(u(;O@8gzTz*_d^9i}~_N><14M+{# zF*_i9TODG15MoiMU+&MKtLC~eNQ{p2Zb_tW@(hz8A6bI_bg7%PiOL1hrZN- zjxkxeaEw^cr<6_NFe0*zMj2muAj$GskOv1NZ^a zr0E&zOJ9Rymyjit7no7`TXxMMUyOQAKn~kL>f;&p?Zg_wCV%u<&tVOv%zG z=Ts-o^@u8+l-1tBJLEd_5!w0>Zu*su z-`XuAWaX{Cnc%;)oQdyv-36lMl(XL-CTQ00xI%5xo^LtYgBg2S7b3%A>FGNcHGBB+ zy$(&qNXj6u;R*(P6dzQG*``=m zSObZHW$gNjZ6B}-eg6U}#(yPdgIX9b6)p_iDO)P@eVUp?UFT0P+k^NuTpkbPPJ*SI zXPn4gdXEC_62vpLvXwqv7-erY@#c2si3V?o_j^k%}+7uk*BDim}okc z3x+XLc*cvfoxj`e){{)0NlyRG96~QhBrBj*9ay4r*}4BS`+RTDjcJSgI3SK`gf3ob ztx(x(DqCIg@r(A=ZC=w&KEuQ6q)<^R_zk5s4}9HV9IU^r+Z}k?1*5$!>bMOK(bRe$ z)hV1DVE(%Gu5(#5LuxC(3@TG}zZ++_OQs)~YotaAPI;fx)@Gk5RMg4JYj4!&hM!5{ zkoqqw5ftv^IBiLI6~&1Srp6*!3}VnAO=lH9-Fp6$R2kk#hUXXt-nJO z&{fL14XpRDK5IqS)F~IBk*N=zkDaTbE)|vB-k?%=?~DoBCM;k3J{$U@EGBgVhK(a^ z_j<064?YQt_oHi__DXkqms5^ z6+wK4$VH5xL`KCJNh^}KH4|1AfkX{(H;%+!@Hffv(IK(rE%C?|>Cd1ixw}V}=iUrN z9=c@a7;T$?o49W`nB_u=DhkHD8N6h7SlsGqa2cW=8+!WK$4ds*c_YDjj!#4RP2qA- z{=>xi9s3lg%z~knp@`ic^6+x4J}qV>IRYe64A$-*9!~uZB4uhEnq&|M)(Rb4 zO8co|#=C3xDpik1QQb&Dn>rIN@QK6l+lj(xJrmx9hCw_%C?!mv*8>4)b5@|YkWOfJ zxi+SFnv6^YP88r%T(T8I%?Pa&VTDj^15a#1pzZu#6S?}KnMi+g?bZPWxTM$*(Jbe|m3bQKn5on2g&5a>0gXo- z1US44HNQqj`DeYuDGkO?+&u6V>k7p|dCPz@>3qun{gHK8*&HE#r^;4zy<{Vf%%4K# z&>fC3@W4>p#qjsiOS|)WZJ@E@;gy~(F(nA7lmIBqITv9S2ltfsIau$ioaUYo+Y6!1 z(V}+Nn2m8|iTlz{p)=hlxbM$M=Edd1#$BLDt@ia6t+sh{uNks#NL%xSPs zSfQp>X@y?LB+BR<-C3q)guB6N0?hPu@!IJ zc&*l?!_-Kjr6ijPWhUX3)h^4g``Mr@+-{n1HbS>=7r8dHOGGOrLVR}ds3dw_qdenc6(sM)p?oJy9bh(+cOb-mvVc7yYDg z7pbq@Tw-7!83=zXvrFM8>Nn6kl>J7JVuC;UHxkYAJQ}Vr<8^ z;UnjW2M7JEWOl%r=xX&i;_k*vCw`)FrmN5`j)Oz@bhv-YoykMQA6B+9YCPg(4=O&~ z-roZDDwC&OyP;(l>Km_*B?qX7p+4pyaoTS-2`;ZHnIyny2)ZA8HB|=d2%72Vt4F{d zm(~2I#Jv%%ZX-?#xoEN}6Ts}nmLPCjFg3&mr0U3*g;g@c9W8@hYtj%{?=ROruFCVb zZR4`N;%oxqjN$9Y7smY~Dd3iIx)yQ>qSD!qac(SVV#Towbf)&<#IV$IsSB$Q7oH$I_iMk*;^QF{?j>info#xv!adtP7sdN}Se zJ_9?irGvUCDU0gE-t`ownr@^rjU@~gm1LefmigrVPP78%<@`+^M^I6j=wJcWM!)Q0MVSk(Cpv>c87|H}22T*N$}BhxPB zWU9BYM;12nktr?Dq9CO|z7<$ZOhZ$`Mf2imQhvh%Q<=5id38Ewyb%YO%`CN{MM-5G zw?+LirpK9PlV3U~hpsK85Mn%h=#b?fh{xYxc>%g3{o2Q4)XW0D&Sg>Va9G&M891@` zakVlOOy$o#w-}|Bc)5z>P@&zck}}oXDL-zs2C4P7MngLozYgmbeeWavvln1W2dBJd zB5xNIe)Op&+>BK$ad9xqyj<-YPNotsH8^h?U4K%~Y@HW$^Enyt$Q< zTvxj0mxBLCiTnJx9#mFgRaA*t(+Qm(RCA~;oa(Y2kpWUS91ZRT;w&YC;eISt!9*om zHWPaGbp}0=Pi7lf01m3)^gQ)ykgSsjgRCnCJ-toX=seYA()m_dFF{d*`R*{^;8;Z_ z(-4%G2_xb!i{C`PnbGqHhz*jWq#Zp$>7;3X*%pGBt&x=swGsL73HYZ(tvnBSz=x*k z6QWGdzT=(}vZrV5YB6Bh9wu$#a)mt=TZ7!>p%{nrQDUsl{#U|Rd(ep|@>}vuvxqrbp5h9rMr-L<9=tY7J zn@#;A=r2xOyCc~Y&K>jAY&HcEWBXJ415Q=$*S3c)-(c_54(IlI61;<+^TJ+5uPwC8 zJKIUIF%SGmv{2qtcy0OX1x@Fp>HHnV#>R?S3A(hLA7C;s0Uf*gv)46NF>9BCLC7aU zoKLq*Rg41H>Pv+8Q=UVEH-*muNOi(pZD|gl>!`p?_zBzLt?*+{86vK>6kAv^hYt=2HShCsUus!}?m;(dkB0@d7Hj*T zZ3kH{o#iAOvGgHjhGflfipXJ7B@e_!?XNC06YyX=g8(R_lrPBIBF7G0K^pVQcuL*= z9Y4sD1w*}ND`aZ^lU;A*levbHw^8pd*5e+i)oqdutKl8<>`PA{WJQ7oj)wmeoGt1A za;SrcJcm2?;`pc2XVsKcoQQKpEP_%7*YK!A_oVir-C(kXr`TI!vJO?e2Ad!wH7VS`m+&z0H2DC; zy)slT8K{+oae0niW^%u8%()&vK2mF`dC)uI6eiFJM#21X^F1XRpl{Y;j3i)=IFoK* zni~NaLT*C+f2;0K+xPVTUTAM0q3XWAW)qHl&hs#ztsOe%bAcIL>V6aVu)(BOe3jWRg*FK zYYY24P_FzNhs;&LcC4Gl+HM2Bck!0Zw%CYfGsKn=8-{7waF**^Qk%_&RnX}LoOWm!K)E|D7?2u}l^S_YehiR0m6 zAxii7rxB4a1>5U?;)Bn=Ojp_ToD1QS7ZP040!YxHm~z&=>la@g1RG0q1D~B7`HRKd zq&>c~i)wXZl5>jSg00Ynd{>Z_>!R~eA0MWr>u!x0QT zMi9ZIpo7ocIeKO4ulS(yy?WW?vdiU;XsV=XI&mLv0hiZ@1~W^IOv+`mVP`#8Df_r- zi<@4;7dtmWISlpWy%)1?VvxWMOdE;GO+KSkN-cJ^ll7ybVIyV2)k2&a3-Z@?>oB!N z+BVg5>fxZ2!|v`iaQ;#|amqS$4S1H>+B5=WC$VR0Mmvlu7EL}K*Vr{B*AJ~%@$q-_ ziC~3xUXPOFj`gm%-(oy9{|FGW$d~wNThY~il=#+N0b`&XZv02%AntMh+P5d<*!Nq` z^y<1xU`i4*j+JL8ipSfVfz4toQFO=Q&f->>KtBlYy?xHS;r(on{Je)%-7AKK2BZMYjiB1K?V)ogTxp+csDh$mv)4lI!!U!y z5&p!dH(m#yW9w>_^tn1O6PzqltBE6CzHS#RImecfz1{lCjn_$-ZD+dLV^?$dLJXljP{R-)ZsODr``unHhN zzs%_t_LD45g*_*q^X8Q+?3k%go_sxjq+--2v%voBDCKq`0L7CXM#WrT(J zkSb&^CnioO)-S5;cFZ#k_YQbIt*o+ebLYVY4+nVba9!-&nxR1Uz;U-PKMErueEpL238|4Q^@2zmA@+fEgv#dkasXU1)5({P8UtUvGF#>&>!6Mc~-piUe1f$h_vJf%YpA2B_?iJG}I(h63tgX z9bd0G4qWL2iQ?Rn@Zmlp+AMliN5Haqbvp3CeQ!Z#z808xrq$O(k0;xN2~2kXZkgXP z6y)N}fd^Wg&NYz5#n7CJhMvEtY4Z-)^>Sw1Y>r6_5p4Gi+P$H7Ya9RulK9-ikG~me zN3>;gG!Nm9^e`jl0cP zpN>NR)(6&j#23E^?VkMb_;~VZNP8l4*wVu!t<-`pB7yx*_R|j$xo-|8A5iq)&oT?^ z?3_->9_+Yvpe9k6DCbz`utH$hLl?qP_C~7Y)VG5nbh~|qGxJdvB7+?o{mzQyz@(IxP^&Ba&45OC{!VJa%tBoc_yKsfc7~`#GmDQn z9Cr36Mf9*lW#wndSf89J@=7<}u5@%Av;W3f=6(WUL7764rAvqnyHwM5J|RxTav#`1 zJopU-ooY~Meha55(XP7h%4ljqSQ2h9jpWHK$Pj&z<>ZQ(LR2O{U*!0tcR7$OP`VPF z9CLB-Rd5{_!8m#S1a&?JNVD!Z24|-b_@JS@)Zx2uisS4#Cpz;|bg}?*NpkJs7gs2U zC)0W6bf#3!j)vJ-6N%pC%^9}Pdi zq*b0lv;uH+0IlqoncL^N9aD~ANE3%KV)I3z2+U;hxbZ`#@kobox?V^|&{>=qE97gjF5`&xJ*s~!4Y$ugujM~qG zD7&}v$V%`o6D3XF7yIXZ==wZ^e#M4Eyl|R=Y&loF;;WmTbr+HzTBbQ|X$+DMMlsb` zeE1-&tAh~Vf!;sws6GFp>%oI?O{GPFGZNClKHn3y=U5`#0ikkv_w0kopAskyB~(u` z#sN$inOWvZ=#uiLtldcFp_epW!$mIRDEH(_&tl-37G!mEfC4ZA?=)XzUb4+&F>Q2v zI&&>TE6DDb_dr_Sv*AGT(PZpvCwL6+WD4_o{FOyce@z3T`~fb>7GGNE`0yqG_9{V< zq#f;PsMK5RQ;Ub|v=;-Zjg@-y%Y_Z%l{l2<_^Al^RPCW`VnOA; zqcR|H545sYV%l3-VC8=mdr&H|Cdv~$Qtp3LUh1Mvdmd%cw&W5#6N1iJ_!NZXp1MTk7*qUZG z#D#nJHO!EVGep;rZuC?VOLS{W&hkRS`00yqQy+GP?^B&Gj|>&fxSU z**4V&wcyzp&FMwzIB@t%%z2Qf;?>W(qIcJA*!CNB6K-ow4UHRAw+|dvw)~jWg76kb zi@Re>!Ms`)9!yz$Sxa^5obaNgz->>0{`M` zt{p#3n%u!vtPe=J6S#zuGu`Wxitc8~l#NF3z2jB3#0ftQbv{l0fmX5x;8nVsHx|T( zPFM>L7DX%~d1{bfxAIQFX;=AwT#!3!=lgyghoxq(@p@R)SNHR)?g=)$2h4cjw zYLa}5N6K6Vq1qnEK7ljtJ(efRnwaR&ub`R}I26;3m#JM-=-u*A{0p?xhmJb}-;m^Z zD_o6pnq*#-(>vLnfFfp1*B2w%CK_5@mk|db7(wP*{VC!-4B_=>Fv8iIQz*z>e!cb(d#A|jFAV4YbnzwX?$I{{ndncRMa!K8eO|`f9+GnZ zO)eVSOy4JdLwkAY6jZN}Ux?B?U=0MtmKPYm?xcOnWH^lR1vwREidISkHS{3 zIYBSDk@%b3b;7#>E#dc8o546wDyTzuRvi}{&L~&S=_E0ee*D}Alu+ld*IkI<;Vh3q zfs$cj&b=t)XrWScgu^xpZ>E<89X2@H-wWC=IW%2jfuWFmN6kqL+Su4PU|O1Y0Zy1; z%q)ZpWxio4dco1BjV}ze*iSGYFYU?WU(iUBo~pynUS$ux-y`U*{{ii#%%oNPyA=R+ zzt@6BN-$Un5-PQ>Tkz_i7Icp<5MLB@%fH+I_3qJvNdN87KOe?pyg`Y4?B0KVGHiqT zG~~aV8~#5wzc26$Yf`^8SZScGy@o?`nDf_luG!Rf#iIWGt9NLRCjve?-UM1FT{f_i zch55Q?+$k4U`L{$<3NzsGIIlH_RL?o(X&s$6>3jPwTHV_#ZvJ!_|oU6_88ht6S4vh zeT*1NAsY~|e_aD_goZF}M%R+~{p4`|68Ixa^3MGcV3?3QLCl+a|AKqx=KP4yZ}8Mez^O-_}tmfXoF|q!eQtt2(|$D6B}qr1(cp9;T|`5 zNVbMA{=7Kne0Nzw_h6AfmfC?C@1=GZk%@%o$h=uKK&FBz;c5A455GJ#OJo0t-T?fm zH)un)QB*YN*~Ra2k+*sh5YB$Te#s5rEhJUj6Qk{%2C@I#N8s7tx7?9Vb2xlIB>;gS zrjp0qbjLUwQkHaqf$q#({#axluec;`&-Ji^4a?HY%`*i5bl;^NnaC@^DK+<~vQGdm zhurIpmH|H4<^BPH1*AQL(fvX^$6?rc zWm>~vEtg7V)lu+k9goE8hBpBFmrIqm>^xg-V6N5djMj1S4&9W2&R@`|W@bP*N1&>F z(Cz9~0CK1Y;PItcdiwgY0Px{@l7HZOf{~V*agE@9iTBH?n(F4P7n0p;wC$M>O1wdR z-`(#fUZBPeeY%STlf82==FpC-E_;ujTcPt4{G|Yh1s7WDJk?cm_WV75S z)-+XDM$i#S<`Q;3mf%US=Y$Kp4lr@dz!kX(*-GmGHJFvJ-?ON{_KoBsu(+`uzgVBX z2Ce0pWfOgPnQ^Uf2@;hrE4{3=zD(9_eFZ?wdgd(afZW={8dp69_NIK$RAG`ZTL>R3 z_*tjh7)KUubj8w6Z$_}+ai=BB{~j`DZAp-F`TAl9=PyU{IHn)4oI@W6?bGv!Bny(S z1BHWwcQnv|2fn&?5bOrAPUT0N53{i0TYLIkLfm8ade0XmV`rpEog99H4<16Er1c1N ze;AQIozgHlwMVujh<>ff#!!9qCmzwDm6k0C-*zr=1AH|Z-pca1j$RqNlT+~M%ohBb zik}k}74Yj@|6=?r<;{-oqA|aCA!J>6AP^&CzM!4v7W0PgXSc;fVNEr4^^Fw|JDXPN zaHQiEucUl|;jPEf>U|1xhQi<)Isgde%%%!C_?X9{w+k#B$SVmu34J``x8FVz)%`!- z$ZtFZ_01DBt91!!L(|!NR}?X_0ArG`hP_Crkqiaa)QHlbj)d%jo}_b-*NyX44fo|WEMh(18OkmGggs03 z7Vh$19$7L~GjV>;pGzUvI4?tEk+$u#Rp+vmvOB_@Cxxa9fM$Ndb;=JC5%q^D z3iAR{U>;d4^1ZL})s!ayGePl|iRhpF{Vkx!)X+AVd*bUI90wyIJ-vpU|2P2}=Jhy1 z>?i%bL1-@27pAShkXfb!FKM3L7dOA?GpC58Gi?z&sh{n@-mCX6bEREZJ7|lGVl{|n z!Agh-F{ZX75XxUCEt7A(^ADQM??fgg|J-UajUNg^&Xw}W_0T(+%(<MA8Co+B5jheZFJihB4SISqkCqOkmGpS2|Ud2m&} zd1MM!?V1wR!@l$noysB{^sEU z)`w!BEf&c1D5${Y73gX8uT{_c&!i=ZvQGK|`$?m;YZ9cRPt*fX?<=e9F6V%;c|~#w z!Y9BP(KY;K`0gVa=>7&c7z&;u;;IW`a!c}@s&df*aQ+>&)|?%8XsRKrBao4u=a)nd zWoIULzxM;s3!#7Y8#TxL$z-5S!17yz+aM6Ytz+->EbU_Gr?ucKW;x^NH+w6RZIcmO z_Wu)h`;h5!q(64MP43fU==}{c6AZ^o|8bFBx~Ro7Cj9DOFM5x1o2UeTffjmS@LYL@ z*{pc@$9k#QFA@X7CG01aMRK2BrP|rd+6-?^#t)1rhuwwKxBol>2Mmn-CTKMO=jz`Q z%A~Z!eJ=&Pf4PMHzr{me9yiPJ2p0@}Y!X~?9rn-E?B}{p@&7L%pbf(ay-%QET#s@3 zH*R20d>zl~it$gR^ZyoD4FBvO``xPe%Jl9cT5eXBE*?$Ggk!L=2n~P!t_^b}|IqkG-0yO;MzIbE zCMKHqfHOxY1zk&OkI{b8{(MXp`WOzq`@V#L-JK!<6+2%ZAiL=H^^cal`#HKT9i&$~ zAq{dCxlH^R{ViF{Pw`KpacsgRX5p*RKl=4f6MK9p>Zq& zxm>%c^)0+Z^BeIKAs;nZvVn#ewLb*?z-Nue)Uic~tRFg2E9|M49`$DX$4Ffjz^>l) zd^0nCf-g}9sAmyME+HlvGHa*AE*f0Xj)W-w#Npkz3sV|hIH|53?Nb`nk2k5~Z}px? zz*a1ibl2kxuHCo{2v%w6a?t#MuDn>A+$rj_ibhAe|t8bTdQh`y(hxLa{SHh2`K-%wynYD@L ziB)!oz;luh#LtLF7|FrtyGSUnSMx21CndKr!f$u%J(?!t(DPK1^SXF=ruK~zF!wHirg|$pWxTG4V4YKtK{oHFN*}c{f!;< z9z0d;iD72IVV)+MAbpmrS}t)yKkI&-%1t$`o(FU1mjWAruv&5+(ihB4$w!$%>>~S$ z5lh0q1vN}dQqCv%JO^UNJ8Ee3>JuQCt_}&gNiF(n-+qhL{2{swlD1?EYKi0TfyON< zN3_6;vDoJ)$L6F)?cQF0ygBgtQ|ts>#jPD*LRcX;D@2sb-a#B=LHJ*GY8vLD+F@7T z!B_swWxjE^KSW+~aeXp+L1Jq=(#`JAYdnecKAc5JIn>oP-uOK z8I?xsM4Bxm&L=n;FV45^u$m2BirxIKR70V`@YADVkqhv{Htnendch`~e(E&=wle1P zkJ^Rf`&9BY;n&+u%fV!RbTEcG=8~?S4gF4r5AeFfPP3AON!tN`<(W@+$5%U8*#lN> zvvSx;?dgFInrYL!V}JUFdSY~GDRm}kpFBnQq1W@>5x;#{!oEX;?aAHg5(buP)L%8{ zh|F$C+1lO3oz6QQl^zY28Dw+Y?>;_VaT8F!lBlyIEc4PHO)q%C4ci8QWkjp>jS$jRrGsTdQ&U&jMRZhXJv51D7dM zR|Ryu3?W%Ua=xYg4t>q~k>0T@EP7ULHXwpbwOg(cQv&7H<*b2XjcCT~i%&Jvx4E{HRRYCq>wm!OehKkWtoA*$v&9>}sHwIOn4sD9H{VP+e7ZL75GdsNBU8~7|geBFo zIlyuTa&5RIuRY@Abb%m;wr^BN-@g@8eBBu(o2zsLcjEQMem_$FZkbB379znDFiYL79~`6U$7)8q(_lu1mj4X!}^Fy zdgcimiw7X6zqt)1#{KbT*iqcB!t3Ww>qk7yT=)&Q6w2vfZ_CYW3G62%xXlLxR`=ef> ztUiirzXObo@q64By2u|cG0o$9w>8PHzx?9r4NmO<_9DJ^NbZE(iN?8V`f=8_rKmhk zH3Eh?&1*@hL$##wgVIRxkCa(;zqyQ0nQ7B<46fn}u0nzVsLI{cf<~G}2vmwQp7_Bl z(D)8k^W96hsFHOrU+<%#C%^h53#Ib-6fd9z?G*>SgQ=!E$g?R-`cV-lhT2$mC%RonO@FuA-7!F*ecQlCow&wf1%-w&P{SK95(t zT)7L6UmpJ(32VwMxu%M*f)LrW-xU_^`hALt43)gZZUpL)GsWHCIN9{yy0=}-34d0v z5UrRZq2quu_T0pg+NdTMmX-!(yuc-VO<1Mct68x5^f`AO=t%~d!J){&w`&)AYK66P1wra%+6)3F ziKJ0_XnB2law} z-HSH==nJUy2f`k}c}`x~Em)pbuvr-WZ9(oZ*XZWZd)e~x>+Q$y_=FfcGp>HUs2mhX z9o*N_>wXh4NQRxTja4CjXo)ruNp7hsn^*arDr~u zhM+E!HRXn_;MrQt(QXeE7!)n+T1~z}&h%q=2oo=ud{=1`wC_AQUO~cg!EJtW@?DJ> zHH(#Z5Qf){cQakIf!05p-L?s8xLE)W7&VP52ZCn4&{_hn%wL-?sf&@{B7RA_ta~*` zTFueE??SoLmwJ>aWOhhm-1wxd&A^xDZxJiBfir`Ppb{|YXuhkbPsR^sR-u0C6?xPt zTL!q@LiL%{)t?>67+K|Hf_FN%HhNEGby#O75R{=>=3%)W-#8{7cmG zjjN82Y~i98V-It=iz{93ol|*-X`mx?+ZfeTlTr_6`;v1POcM-=CoX%_#s-8VW z+9vY~;TCgHHx{F|w$Jg7WK>58YWRL(gd*K3GOvHJCnJ8f!}~j5GjGTG(HYIW!NNi@ z)0kT8yY%?qT*AdMPfNE5;X zFI{1YACuK<99*L#(O{4WG^NejWQ=S!bYxk@MU^AwQ?l zRA48cMbcCgyWNMY1)tNI6Ax3_{eU*C$deW$L&T`}&$HDSRj-n{k0AS4aco8W>83f7 z9gMjeRG<5WR5!6*QHR0Zr7IqrWcpJI<8J8anYlbsNclAFYHS8KrPF1F3P{o)nC|d0 z{>MfkrOeml%umB#*#Jyt!H1e$7Q@srNW2-r5AZ{pmWC~-v)SY1_vg=to-(D!ptVkY zlhq4QZ}lS0XGw|hW)BCvSrU+%d*OVLWjOv>LsMbdN8i6nO_@mD&Tq2);>u|;NemVC zW{vCvXdHri#3@yuVfBj`H?Y0*BFQ@7U@Ztx%^&F7D%!{z!p!>H1ei*bofMpXU_6T= zfQ6MrkR8PHo3*_sYuDt+ zNaHW}%knVYn1mfT^+rK_j-wz4XEg6TS&HPr>HWT~{jE#C2!HKFOdBuG`4pvh?qEL3 z)t3=2sbGN%I4}C)S^v%N8HFPf>$fix#!2epqo>(C`+v3WCJv^mG4(753V;4xaaG{G zYAPNzi>xE@mc%r|`a4S-PZwMcyGQcVEA##V7JH>8pZy{*ks*q>(k|Albv9`At1yfT z{9_HR-7%21UbdoTY=Xov%$%1to6O?hxgc^KVFJzyxosMx)I@|zwEC-%=2BJk`p<^%3ArEH2i*M(`zPR=mYD+ zpt%*e<0df{kn)V;%4FrG#0k_Rob6$w^N<(Xk-Z@m$GrG%`&NzY)Tv+F-YT&br6u@% z5t%-XWBTK!v^GCxWE&Q)vWK~F?2o#T;{N!9162?8yWu7hLZTW^Y-R$Sf||ObNxpx! zQt62rwE4!+AtWW$p(nwtKW7166`E}dM836=;DDNmay(Av)dNPoxpBeeHUm*qqB`x2 zr7N=Rm?Y~~#_}P1 zYPS07&ti7=50ez>#XbnMi#iCK6#jUIXSyF_Bs>g4#xm+K+9FIYfTy5|a`E%Iw-my! zxUT7z`27RULu4P<2l9J|qH7G)NdOBYS zzAC|oA@zl1p$G2mLe#(3$&jz1(R{XIt2;ULmDsa0!ZovdWyKfhmd+n)6DYfEl{g=( z@Q<#IbG4#>n;ffQ&9~33hnT(`|J4=${xlOv_56&8Rke6$WRx`Fi9w!)ToFTP*`6|n zPf+0o-UfNrb}DH#tf=?*ej|}Wn@b@I_hZ4C|1;orL{`nOGCbbk{E zt#o|7Zr%D_O_8YMp3;s5Zbh`=-G+6Kr{6I3czGhHWA>;r6)dE@EqJ-f$O`W7i#~%Y z3M-A}@@6 zgkC|hgU)4d?HwI*%q~r|xPoD^xL4jKK_Ko8?7V@wx17jeQQwEupHAElBd?4+1`H`Y`X=J=o-2Rl^_TR@|Dd!*dwJOkc%k znLeB5_A&Jx0UtWsh8eT&zT&7}`OFk%V+ABCtW*g*D$$BNHBK_)y{p6jStty|e=-cD@R8qU7R+D7a zA3-T&$&Sh8H-2t~yqe*gK)X9WgSGTE5fg)GZ~m7V=80jW`3s*C@?uV6reYKZ*@7ql z?FTm%*$kp8@u!>i*UPsI=!XgfNxl?B5+XY$ zwe;Q1PIk+IdG&uNCGgsGEh6#F9~=h5ge&f&oEfh(xe;U@+h^zOaldDoIRsz6CZzMT zeibPa<$J+94@B*|3G|!!>O`ZP^6pH2f^5a+%C^tGN7PI^lk$(Xdifs7E<1~O;k9)5 zEt7rvsO*G--#Di3uSCep`Nh4{pGw(}sf4>al7zK7EGBVjjFlFW6`X+L!PrqfzamR2 z*yn9@Hv1xP+{Su2Wj&XJFMRVX3R%XSr?8LZ+=Sz{AfR@`wkGBtjyi7?=1^E}_7UugdEiSCm_?!P~OpT?lf4ITk zJnOkfETOJml<&5FTZS)=?nmiaKx>$qD?&CCbsRmdWwV2Pscy65%O77w+eHJ&i>OZ30mdrM_A3v?&ZV)R; z9xX3{#C%c3WC{Pyt5&y8*|iyZl{9fwmfHUxsc9fuJ(6gPV=AI zgoXq4)%=^R0S}*yo%cia)yKR+Uv$)rveYn`uk;VUtMa%E+75p?07~6qj9?YC(LLtW zEb2$vi#zYH1=*CJ;D5`^Cf&=>(yIyFm;eO6N^;v4ub_jWjApjyq8-PS{`|HhM-=V= zlyLcYl8tQ7N5};RZMplVi|)e}P)EUbJU7QnKF78=b|m3{J`a8LNdPdt-G{#z&JVe^ zuMGR{jS8tQfGgZzs@C^R#5z8YzqM~gq!fZ;es3jOI21kD+_K=aO|B$`D)Zeu7&mdJ z5T2ER1;nwY*^j#tFRKvGSCPEXyAhmL8_4@393pbw9H+cFHo0Ln3#?Z)UmZg+Q)qvm zz9PR99ftp}`E-IC;Mg_fZ-Io_9{Am>|0pExUg=Tk-rxRyJ~9#60@NnWpiw7^=IIx2 zT4<5xH)@nMF)8;n6I*QOAJhOfAQ~X2L-;3k0+Sg`{$PE}(Y?6&3zs|xnr+-)y)S@9 zcLBuc#N`*CCB$|zi?4A#WXCfPpBzz64mCN{KHVu*8LR+U<06A6)tHSDa@S&4Ukk_x zjso+0ps=1^_*wRw6tiK*?%wt>ab#|*T0hh-jX=vqup!5KU@tE~YQs@aSo-EVqi>@e zPa8Bv=DWSqzyn9GbFoHHtb(;+w&x>fwE)ci)icSW@Sm9dc0HIC_XJ|kjQEboS#%^X zrqt*u`=lwL_tQUZQ(68_&^xk(-_>o1ycNFdJs9!J51=s;-OedroO770tYw*K4Wh{W zwr58|cEK!KlZ?|H!P<9+W<=MmJ4}zRPhQ0?ulp`2(K6@XZ1R}VSWAyb1wZ+tU$zWgO6c>+PF zgVYTU#(UJA1;b*DXFcfRS+?m-TWQ%sE47cHw!%k+4WzI@i!0J)vh7z8EqIq=D9HnY z9`hjorIn9cyf+L`AodTf{fDVNfsp?{Dk=WeOVIs)7h){ZNz)~qJ<&^GA}L0N4iv-6 z9xHgq&Mq)W6V3>yg9KIb*6(#oSt|gqcVo-0x^NlqOU*xLcngVxrxwBsHv1u2C&9@Z zWhdVQT}FKde?TY+Vtf&YZizpjxr!5#QV*ey{C}@HC~=s(st~C?nOFI1^%8;5%S04v zA(BPvrSe_kCWf@Ic4yPu_Ce*4rrs1uzny_u9k}MqSu=F?gMjBmf>M9M!Sa^NVZL$a z`X|Y2>1y=E{bxNo^b}$NyYAetW@&{HVqkZ;T9cPV3X|7RC?qhuP~av`4@N*!HLnyV z9X`ewS)YG5AS7Kg3H}&})a&|0je(KWUAsGNWyT}}COhkLKh+s}5rwkDIyd)Fr7>a# z7ZwiO`5Z6WTZFfxTTL2y7(rkz3{@5aF!*74nb9+#W5+B0fj$BroI?>N?ppDSZ=MHG z-@OBZmrfb*;Y41SOGWi(uT#o95lWd|7sX7>I0*!0fv1Ml$lXfKfcxQ>>sn5p|8f}z z!`AAX@VC>Rb>9WWIPi|L|6x5FP!@N?mGn@#oycg_IE3uZ!XPcjp)j`#xOzuvc1hv9 zXCZ|k#Lk_V4CpHpZz}22@d;D+VLSD+;aH{SM_9?H_}t+pe$zKyTlmBn{igcQ)?&Q1 zNE8-i!%i}~w@Tr-1Lqqs)EsztSt_-p-YNh_zcujF@LT)&`BU}7dQ;DRse{uqxYulEyqZ-p${|kYc0D1(I_29o^G*plO-j`J zpPh!adsZ3u`uBnF76f@h{PS{5JoY~fSPU+ZdFFPA;T-C32D{)FxSxFYkLcKF9L#oY zA6x@m=uc7C1^BDtzT{-)vb%IqvoqNc+`JYofD9y3_Da^UNg7V#z-1d&Gp@08AFjxT ze6XBz9x5UZKdJnKfNlcl9-?}HkvAAO^dWBY{IvXAOT=HIsbdqL@no$yh-0;ExeKrU z4cV;5K@|T;IT-MYIgwivq~R7(V=3(ye+ZmK$o7u}N;}Fl@0KtHZKnhF zz#2izv`Q26`U?{Ew5{LEv36zso$_;m-D2eHbkao7B+Zi%qUFF2(c5;xvV0kBX@#`$ zu5mtV;nJz9udR_j&dW+8d58Jp_3Znd))%k;f)(@LaK(eJsw3~jGSOs8iU*zCD~$)5 zIrp1OjVs3j#py%P3Ht!39oN0|NoHU|~RFR&US@%P=FX)M> z+OVV6>ls+VfoO|Lzwcpg_MB~K8GKJ4Zha(Q1>ErNXm+>c0sH)@64o)cd|8Z1oY5^u zPjl8TqA})av)#1Ln+@l`yXrjs_13~U;@z$zvO!WrMDD+-k?-wm)jKpLCFhd1%i={* zoAH5t}l63{~jh4LI{;68I+VxQ^);k1^?u$Myr@WabAI{ci#rP zH^{Z5aVGf2ebMx{OU6sYk|jMuR*+Ak2SrOPGTZ|5GBvlR@h;jC!uIh2dNjoz&I{rpP*joutO(ve?NDavB363 z?AfM80kfUJ&Rw?w8*RqiJa+Uw14u2sK-C{`zky@O@gqp`)eK zl<~RUxgSIpG@a1b+YWPRTIvXiViY^;6&DqcJ^79w`1yk!+B2eD;a&EYyH60)MN0gI z{fdZk-_|-k{uo;_)>2c=sq5W^xbtYmB(-Ap#gp+=n}P72^3wTf%DjzTrJIzq`XzPs zYAmLjvg!#zr>mYf(wOm7M@_T5na8wQ3uG#~LQocAl*UaVyb@n7?#ARPE{n;1WWa7 z)Oc;}g7Bj!Sz&Y|8o`>Frs9xyZoYB#F)%1Gsv}qA%d6Cjr8JIAYb`22n>&%d<63(U zc1CID4lU}g3(U^IT@8e0y~H2GYg&$zxg;w!@!i-!6AM;~5zp++a=CK!dY zFBuk`gR+RHG(8)9y81P_o>j&g-LfH%qcKF(F^G7XxAaLdn&qg=?MaYEXLt(ukuq9= zP?HE^ax$-|_UmO%xc*{qV=EX>hq)P<1l4k0VSmeXymArmVM6DgrM2yv#Qh9Ff$6`! z!-tX$`^Nh@eg~n9=Uo0Pk9rZ7s;J3}hgHw{a-Q^{L^{(v`{6vQ|TIN4VQ`smxR(ub0 z`k3aZ=k{=4OBP}-n56iv=taDI;L7U>c=JN5@Sw}0LOXHy=d8Ut*Y`##*5|ImH9iW@ zQ@C|^9d)&hSlxF<5?|q`v(5ew+yL0VPH=5$YirGbGkqOF+_W-%F5FqLRHOS+R$|A_ z8@@^+{_*f#&_^zUjWIsP?!l74Oc^6O@0XJ~u#$}ia+IwU?78u$O`_da zA?B0k2K>L6jgD+!;Y|ovIvJqjJo^3O!(#~9KpQbDYuM2bG=xKZJq=^)#mwVZ?2 zCKu$MPcV4*ImyZBvp?y7Banb!!v7!;2Jtbe9ZA=ze0_vYsc~X-q6f`Tczlp}M9x8% zm27nLpr{JJd;Ai=M#C7EbO%~gO3Cs=SRc*oX?Jt^HicokfL5VeBCFJoldkoqjO899 zeJpQ!v$Ef>n3$%LF@GvL$|ipxB{6#Cc+&Oe%)=)#alE|wAhqNPNIbxv= z3J927PuVA3VU!Lz!AoFzJv^Rz`Q0;uUtE{zr<`8Ra4f$>I?-5Mf8$Gs%>8!(-5;nv zScG0^I1rVT&JHCjVO-evDcAQD5B{F9{qXT4EmH(qIJO+76H9;c*Wpvuv*7b6idmZJ z$fF2d%$SNQ2iyp>j@=NA-5ybL2i_Ucw})iT`sdmV%2nfXtFp<>Yh1U?N|l`qHOU_$ zb!rF77QgFeFqGL>3e!tid{fh0pM!8qe#S*V_o{i4bXpkjEb=+uG|*aV&}fBMtDnM# z=T}tKAO==Lpwy$!_b342wsi4k9|IMZ()o00oyZ93Kq+r{x;`fM%EecT9;b&a_Ay%D z5TJl?o56#K&2K!dkHd>r9njgRKyhlJfRTCs;k&f=lTj?IQ&3WgeCO!PT;o167S$_( zot>$pIpK|r=q1qiYoCgS_R}-4|JgP`+z493HdFt-ncfC~J7@nMiNYqC4YCfGpQ0EW zDUvjOLfcHdBySXGiw`Hh$@fI~t)x)I5L5LAf9ar=4%xzWfYhn5qFS zoIHH;u5C-jO}nj_F~pi8b4F^fJDK}aUXIqqZpz`jWQ){Xv@Sj z4Ypmj)n#WaR1=b!pDh*D;c<&o3aMldPNL3mGXmmrJL;fch4t*193WD!R@4@=FlFd< zQ(}mUd)iwSe*3I_(UU`CSUu_OY1dO!$-N0!s3b8HvZw@XgiO0579eA{uBuy%gEuoh zcZhc%Z_gclY&Dq=DEWiDri9~tSMK=lN+<#ccw{?8B}JAf5ENF_Sqr-n2Bth6rY{ZYy3Fyn4Kfs8{mfO^6isl$1a?!ppBB8)jUj0E}u`mcR_CW0J_QGI6c_Mb@er4 znQtxjO}wk3wIz5?XzE-_{`4i}NnEy{7EI66QkpR<>k|$95kI+(g~MRD!C&}{H6m|H zahIIj&bZd-c|?Pj0^GH}eDsB(Hjua%uS7JrkYg>Za*Z=A02w3>_0CrqI?gKUoz`UoQG2U1I-R`Ni4rrjK7E$?s-A zjzDUkRqAK&NZFI`y09zVyT0Nw6rF^P;0e6!_{zNWnh^6Q&0vyi!6<`$_mUs(z{qp5 z|2DhwYbL`zL)xpvqVTcEyPZ+x*4y9W0%*v>ZtexjqO>Jh0Fr0pn2r3RH;JTYgEml!S^wuRsmL*1Zu%v z7xwJS7}FLgJMnf}2lO`@rHdS8Sj*1~s59^C{|{ceL`9GcKu^oR*=6~)a*ObD|0M6V zBi(cKB8VSz4io~{O;|-ipy~w^ZP)is;LUg}xbq&72>(kTzxJR?0s0Y5-61OdJ9r&7 zN>mwliCR|VKS@%^TU4I5#a&-d*?+of8Jgu12pkFinfIOA2z!PSNQ!*L@`thJ66YD= z-zj@_ERwTji+X%hl)PKXV(~9t^BeKK51g&6JswhgwFk2{OQhC z_bs`FdBxDhh{-bSrLlH+|5)GLW%)1Q)pYk4@DgRRjx>sxzZS6qTn_DKXm^1>N+2aC zl#ZynTK< z%eNwmlJ2R3r!~}n7Jnd2)JfDI`o?{aZ*!L<;gC`}e=_>^afiRedXr`gc zH=1a?RF59&_cAA{@LZv)6eaZVF^$pfOdZq?&xJV`fjkF9+5R;6l=IJfxXtS43!E{E zrxyA^%`eUQ0t3%}r9lX0W{j&oL*stwz+-y)fgUG3V?md7!2~*q%&J4JW$QoU_HW<5 zS=ghij&2NpXW^Xa+PQdYqN%Nnd@{*7nvf)y?-N;qDA?Xr4`dXUsJ;#_86TZ_|MD4~ zZSS7D+F%d6lm!1%cg!PUY^|<0=vS&oua(r5e=CmE+`o?UG!tbaeAi=lUj6)CE1oI< zHA(X2H(Sta@d~k!z>GWYa116S=3{yr=mozX7IU16HF4OfQwqUyRJ?)IEbN7&z}dYs z?r}Z|qx#GH{{uY79OLXvtsD*gu}O&tdWAyWO#7a*Hohsp*z)ka%nT5}3obQaUsmjW z6j`^@Z;PT~{w4jfc~qPpr)jLlaXc?j)lJT@?&7!XA~k+Ijdb6$QWY{QOrN+F_`&uw z@#uamX<%IFuMiccpM-l)C~B^ZS{yqDW^VkZm~x|WCjD~eEO|a% zpjmWO8;Us>8sy8MzmN-?F)0txOiii0?tHpZs%sG!F1nt6NeZH0ZIk?TYrW&><`^V< zq3J8iSS?l=^3Etr_Sxgnr&N8$=Uzdv7YlSQ|Z-CWFj)Tg47Q{(~iMk@GoVh z^d=QTvOj;ArSw*Q9sHMp=10El{fzpQnQVcHw#=J=;I1FwVRI8WYrpZo@X4RkxRh*@ z{|EncL46IpOc)v+fb{?Jq>R*NWtM1-lydZ+Y3BSKyIXZHi98Q67 zigiy>ibflsd$vFis#>zX1#Bp?pzlNuG}YTd?Y`6V_xuA*TO@oQhx}YMELr1qfXl}^ zuaDl5u20n=Dlzkc+Ln%<%Eh~ioZj1XK?`+K#|H-%(EyyiKiTR&2YkIM62U(jj-R?} zFo7K%&Bf5aacCX&d^LRSPH=lK5!Pn*ll~5kq1{{xKvM7U)SrkUh--!L@(^Dzg~!JT z@u*K56?PN1f1+oRV4<>FANfGS>oIk;^VK(9$*A+#-w^p9BpEO;#f5A+a=OB*UXJ(& zH{zzDU8(-@{orW*9yZjhH3PZhO~*>nOtE_)LknL5p~6KinK&NsRQ<@Wg`aQ2*)ca^ z$vZnw4)inrg0Lm?wwQ~xl8y*I)QTNbUMV@fkdoJ~dW16_*RV`%(?hIZdqGlf$$c>& zMdOZ7SuFI8&A;m^;0sO9)yij9_*jcol?+i5Yslk4HI!g6NT6_np1dC5 z6Q-0vKgf~ez4StxJm-6Pt`5pJ14`G>2!CQzQ2h_#&CbW#qrg&SLCDk>$1 zbG7m#DE8;%dvWsN z?N!}LY{3U(w^$7a!TSwQn*diIy9n!x1D@^U-wk9dIw?^?Uzlvzgxcj9j|uQ7CaF{H%^>6FaNQew8gpR_bSn(iR(=e&@D2TbmA zx@|#*zi2htf_*_Ciu?On4<-OcNGq+J}AKbraqlp+h8cQeqFa6B0{&3kf1Ar}Z}X(Ye6AAz`sU9sT`=z91V z=P;UOZ78V$q#iWFIMh~t4(I69CUKQJ#jU>1*jAEGUw)z%ode&bzK}s zzb>4+y1{cnY~dxwCqhx0c=$_Tl>yebvPfqfCR6zy_p7)h71%;D~Mb9gmj_+|X zu^YAJK=WibMK9Qqi(V4;OL9KJmL_1eW#3;|&yQ=o^WR*+--vHS9;XY-f+|SFg;Fh= z?C`+<724dqcOQviClG{a(c$V*zj~Mas(b7iho(P!t}$m0zfYI7ij4nB(AvzhAkq!6 zzi0t&UnMp|O#E-a&rfLYe~2<00}|M}>pkQzV%ZR=#6aleL&Nji^HsN}f`2WO?#2du zaZWlZ#@9I)L{cU1UT5Am7;r>TXfM&haS~)V@2|c$#3WNT%8;9z*!Rvda4v>~J)+`s zkjH*^_2TKQ?X}U*v{+?|9fc9F+L*-{zBqXqYoiJG&0~eKX5K38orHc~$@VQJ@-2gu9h%By$9K zD~|=xu8$TY+a3M{5)Zo#;06KSLd=ury~A0(N%oZFgt_x;aDw8NG5R0R2{7&n9G{k| z*U8FuCYv)zgXVvFCW)SN6)W-;ml`m=Yt*{=g8b}zVyW@QItk?u#9qkOE^NnJRU?x- zxbrm$MaCK}`Ta-2&x6b@T3--r{w@sl)aYZW7LFnZ~zAteIY9E56~=zhi^@BDk4|P6YaZ zEA*f$2n8^35!dH)hS+z1+ZhC6fkk*ELtHv!Ulb`uub&Q-#YVnyX~Q|j`aF-WMnK+B zaqmA>eoF(Ij_`Vfnml1Tn34r=wh#6hRH9QC5%B;6q9BHB1VJwvH&54=)jq}>-<5~- zT5nnJX1tRg0Y3_$sr+GxpcL;Z>lK|^CG@{`83E}iH;XzHG*m; zp%@6E^i%T_s^oE`Pzza!up!vCk)D*wjbPy?%e}_PAzESCOc@z+UD^_Da6#I!R@SwFV<+u9kuDN*g7=RjVzAlBli2HC6Bt>?s1yb;{;GeFQy| zGKrYf1=oM()DiAfk}&N5{@vv6+2L^UG|uldZeYAzEmnaF=jmt4n_tSs2b+RDf=!`B zUo(uUkRr+wD)!7kVV{P~3#A@k;=KjFe|vyOVCA%ZY!Tx4CLEsh`1NiB`|VCIj~PLC zD-mwL_lQ0&&h^MG5Xv;gcKMiSy1tmy-j*9tt#ckX!NdPaA!I zfqM}EV~`TAP6@9gM@!`DKFyW z)i^hcw%aPkm~cm!mItht>DyDP(O+)gvt8#z>-p1z{mYUG5T6Hfp1%kBVni>*&pXP$ z57?{#`+0f)_W}QSI8+j?%nx6V&8F=yOIRT5u-&VS7o-IyBPUT0M4rYsBQqXZIzx;x zKpV+2;#f-EK>W~08(P^wq%{?~6NW+I<_xBG3X!9*x=t8qnyYdAe63Caa`ckC?P=mQY7gBtbR0#Mt7r7_F?u)cxEnIGE^RtI{YKH$%Nmce zHSb}8jeCQ_xdoP3A${T|QXC}eV!jS(j~QcZQml9DjU@MzuG(?kvS>4*h=g??;jPxz z;>FvzJcb8pJaV|Is@75jrJbrFEVwSVvezlf@VZq#xjB!7gHW{&#W^i9)?hY5j5~9J zitDL#iO>rqVl{e3SKuPWcX;nGRd?6JfKC0bSb~$Fai$z$xhdhW7^h@zV{5cb=KVVo zz2ooUNv;hHQ%XdBs3WMWfXnL24ga8f1`pko&(}X*$Ho(stZX$}m&U$8>HOa;oC%0Q z@=(IUFn!#v%^;aH{MgzTNa=CjADG8~P5~Td_X{q`^rRbmh!i+!Dve*TsVv&poTI^O zcHGvn*=;E}h~my7AQm|fYb2?`d4tX4$kBY#za@@u8Y;Lqd-mZ{iq730XN7y}IOrBU z>Dz2!Kk0%DB479sk8{{BR;_q^?kel)%!Pn=K)N%H$5uEX5VvP@j-t(CNoH)d76{_Q1CZ?LnZO0sDl1`1?(s> zI}1o_G3aNd5y{s@s4GC%uf6Mp?svf(O_2W(0q?x$kYC#)BA~W4lzGNSeCD}SiGrk_ zAt+Kxz@=C9rsjFnYC^p2QmJ{n>2caYv%|HQK+J26S;p@%EqSgeiK1=p4Sc%PSp)vW4TpnATqZqbl@JsRGC}*q+!e$ZjW1<3(O6r zqJN}nQb};3#_-Ih-F|N=m?std3hN7`nooLQoMwK(y+UeKQw+W&EeN&{d!^quvBgw z7K54aoff2sYJ5WvcTmHph=7it^4Z6bT?YFUOGjo>l<>O3X}XQRJ31bJRJ$egdrv97 z$hyXP0jDxwGJ^vw;dLeIn1S=~gBREy1omk9F|ciA|WDnsQiuEuSsWa2@5tY=-ACV^aIdZJqfg((S6(V9y+MU~R{n+10oCd3AJ#Wbg3#uY#-o`# zc2_z^2W`>PQHWIK-g<%cERm9DJi*;rX<5R23I|c^ww4jmYYBn{&tTeE_>Vt==rX*U z&wa>5T#7o_V8x_9S|q0WGwUU~nK`z8^8K8A&zJZwZVG*B?aTbpoyHdbd9s$BzE&<3 zkD9)?I1=@}+t^7CjP8Fi_@2-h(Yd>G+2d3bv#{AD7>e%!A)O^bfv#!2EKT)Ey^)6f z*Gflmkvg1lR?LtUYPajlIBeqY-m+*DoEFs?Abwm!Nucro%>$HR*}6}!!;w=5aU*1CFATjyRQ zNym4)V~Rq`sh@Ps&2lc8ekq}qPR^1r8oAst6w)X>AEP+8?oI41M0p`!Do#voC%<>@ z^(rowZG-F@CkyC$Pp4?kYf6XJRuA%Yz^`*w|H-gbkDRfVxz*e)6rMPxvaD2npP##ag z7eWZL7@y^~R1Oo~vR@a|_R-4WE>TW%rl z@Y7c#)3HJNk%z=NF$a4M%Zu|Bret`MDBm> zz17xrhRBO!xxtpd23!8}>I2C2)lWF(mkTzb4j#))o7IsinwW_0f1fR)+MFdoa-AR< zxu^SIpmdEgCjKgh0}}BG2c!R0B18=TQ{TYsH(5Or2VALCrrEEJK6h%on<$DmzM+54 z0uuOC3wZC7B(g+|Yl-RJ5pT<0C%guTP0n)+vTlaQ`QyMgOJ@-eh31VUscGwZ$r7(x zN7MwT_WKV+J$ZY0#}tZJ^6T+4#Tb*l$H(!Pra_8T5Nq4(Y_f2(>nbye+NRMKM+a5huS6apDtUTYfc> zPbpWNoNS?hx;gQ+8= z%lH~?4Bk1lygaYHpG-u4zp#*m89Eixn>a*p!&;*OF zpdgtkO*Dfy+Slv=s~k_S{2;q)BHBR^xMDqnf!z-YguIL$(Kf!;SHPbQwN1q2U%c7+ z0_dVS8JKS?t}QE1@e#jw%L;|AWr!ez*&0C#gnMVRNWjx*T({y$vYK14`@g3p^rcV( zA)i0sa($kS1Do@@6W_-c;DlKu`0hitT|3$I6hXlv4&H8suW$wF8bt+CV2p5m%12^M zS&~nkQl1<80u#amUr9xoW4Bm0zUMAjq1ui`_a7IZH|8;#xU6WGi8}kGezg_GOs5!B z)S3VuszU7%68$nikE$1UZ8Kjei{<<5Pyt{aNVXNT%m@?=uL;Kl+28*p-@tnL9*4`j z{4wFp!q4)G)JsTIln6)$Ro^SzYv`?H%avZ9~n4b$2| z`fB?qGjX;7;AI&@{e!4%ER+>{Zp%iNyF2B#;Bv-u)Q`w{BQqONKwomud zhV|`n$!{XlJL%)aU+OxfX@u_wj~)=r9@53LY`~AJ{e;CJj*0IBvlse0_zCTm;Cjeq z*U>@F*7lBUmkA0!^rb`id0J`7lc;i{y{4NU*E{zSR;h<2&uBKJ@~%P9mlnPT2aq@8HTeU3_)uRGvM{pd2QI-@;@l5S!6FU z#WJFBtPlhxZ{#7XoTWe$6}Q#a$sm}m^qKYw@HrmE!SjKil0quoiKCrN z4Y(n0;xM=ssEE1hue1^`nSpc#4P~gw!#$Y5&6D;M&O^!D1fa)5Vu1qstbYFdGN2D2 zh?oU!7vDpNiWZ*R=nI164UMN+Ku{Wlnr1`-x&~&+j@^_3d%)WAnczt;{gc8S65wJI z=Q3lj$Yr>|MZbSUXFMb)khWF!-t;bEtlriCRl6qRC6=kXU(3TJt*BMMqtwZ|HBA;_ z7NkYI*>2iYSTLyI`V;h59?;jXfCES}`_R+C1Pfq}?$)ELG{f3C$5EjcA&@~G6a06( zH5w{*25fxGFpU;}A;}w+eVtqBV*pwt-3n<#y(=m0IA+H5hy*~F zwYD-NV8!*!0UzKaS~!*yoVm2IX1XmR>s^fX{UNgbbGlD4b^i+$w+6w^Jq;IKGTscz zBC45ftw}@3wR7L*v-(@6X{^ug@=@tssPnh)$Ut%{+qZ*+GvBs(qFa*xRAtp`rMpOK zo$3CC#WOn#%~2QTIP^Iwmg+vWxzjv2JmXe+>=uld#dX=?LB!RK>T}zf+GOW;!At(- z(fN3kXF??3rJIUfh{`8hdD&(};*O6^kiV*Aq3LBKIChthO=6+LiP8xv&r5WHe?_`c z3oEe0XA9Rk$)1`1&{Xuf!t{hxXzsp<^-Cz?aM;U38zC^zzjm74Ivm_M0&m}LpSj~s z%|OJW1G~=0?eHP-`!|W3gXFOPuFuwlL}4E>3q(njtg~7mf9fXCguQ`9(9jPQ;v4=3 zjnTwzT89a#!sGP$;q8PQIM`vZ-b-+sd+&$0L>^kl?i69vWaD6KmC^5<$d~Ak^BWlN z2;&OD=h0_10yjs-PdtP8_ncI_@__EtH#2`n547UBeYmP_ZhL(1JgY93K$FY{X=Fkb27%B-W_Uo+VLCbMBfpLu)v8;@)I39{U85p^!W*0%_X^I7YjZ?;C7{?#{r{&2mrX@m1>qywB4y-#O)Y{dyC?~{XjENl|m9|BN@U`#vT6Tu4&(V8z0`?@Ja0O|0 z=GYOG$!loO6GU%IRNLxVo1(B+Bg>E7%>c@IqP;9EQ3As?;B6T@a@c>0x%?QKr^-J$f8x|L=f6E)W2w^oruYz~ zkUwCkTB{sC$4!)31#E<<1V+Q8=e9n~5u4}$l$#{BcxNBpUbwv^RkYwAp$|&CfU311 zc7IJNwRpha9b{To*2_vF*I##f%4Kn5G#>Iup`w@T4omdmYemcY=7<0vaJaIO9YzR} zI`K7simAaW_9bgrx`8Lj#4aLe7H~TeYSOEq?K5ot=il=J^CUmQGxx|CCUryKd!@(M zPCk`pajX9tA-EXb*exdZ&MG3A-h!22_^>E7+RkdC(W=1>Td6l`VZ@F!$WM0xk}SZ zRZ6A>$zCdK2TF517z?D|u6sCL9(~|{TIK>y={A31+etIy|@8zuox!O8uW=6E8r#PhHm$qk7RoABRrFumaa&GYd#GvA;Lbt34kxyZn zdl%D1n#`I;gxmV&7`?0ugOnaOiwle9mI`OE}t!8MGm&b38Flj0!iv)@tgtNM6z0I$SAympfMiHww zxHow=5wJ?%LOCkm21z@`EC>czSlfGXa_+Vk*SM>c@jB1X&j1wDM!QZOu`4Xvpz`!0 zagi|+7gI3}M6;M^Y~7%hZ>!ZOQ1e|XG;nQT65yaj(mn^2)H6gs%*ZiFKT2e*A4M9j z^)J;xx%04Q81=BQ6)c_lPlO(IEX863=^eOuQN>SeXugO3Zki`zh+;_NP+aAqx7x8w zC|x0@`JJ%U%4O2*VE5E)Ni_*S4ipqty#Eq+|84+TOY^G-HP2p2%Cu@f>Vz|aR@L)G zFlrRVR{B5bxs@K=>=W2Me#WA7DG}4WMhwuo^J-vy<+W(_in4cnZHYwk$VI51J)S2h zv9coo z3}BH8-jS5eoI%UGsp7!ST4FdYRi5XrvnoiY>XuU#- z@i}Y)T3P7Vm)bpIZ}zp^M#-WQ3Tx?Pjyo6xyeu=~zqNheGgs1UuZd=u)L1B>W!6$XJ)<;?gkyn$ zH+y~XdaAWMUpIGTzQzfWC~~0`4SbNhy&pErl8=Z9|=k7u+V%c2D=0&yTDUM%i38(k-ic zz;Wu%>KUET6iu73algO)TD%3n6@%(cZP%Z^|OUTpKH6BL#BA^y4{IzK#TCJw^vHNh02p233{85ucW0$ zDqF52n{9SFE;JcfutnN+tQySD$Hx~aB2o-3m9h+?X#Jbvot||IdAIWQUar67(n;K8 z<)Ie{pjbb^jdxi+KY=_Wi3CtVLEQ3^L}g1guD4-XGdWU8+4j^hzO?g}m-$u`(O(Io zgD=4)<3>jqQafkfw*{Ze=4em0Z3Ao{*{f^p#AbSILR)Nb(+Qv$6o`d%4t%N7*%f=+ zoC<%FVxN|Zm;bPUQ>t`vVg1wT1%RzREX0`8vMbU!Yd)=GSmxWxjok zxFcvV$i*F*4lM2o6(u6|+a8&}RE$I#_l&WsPIVh&@kJ}qJzuo%-wrYP@Fm5Salxd(E?r)6qFR zZd%^)3ToZyhgyzjFc}ZYBVCOrLcDFS^@rU31RuFSE6!8(lfi_3=el=T+C6Ay_|f`< zHQi;Z$FACf?`i%ZrE$)eVn;0ucGex$iHCsZ7M9=(VWlWXy^-pK3)c(DwlALj3?i|)8IOUIu08Y{ZiJZmM3U4(kjH_-n?vbi=Z>yk z&`^~@!jfFLdTqE0Wx|r_geJ}C^o%FfPixZeGNvNSlfTPz1AESvzV(cNFXT8dTsd~^ZRONZq(#!Jx3f!m zj2fnb%=4el@!CPh+*w-f_w6vM7i&KN!ePeW%UE39N2HJm9j4MoVUmVft|0uw8E+%p zcksJ<6oYNNGFv}w+~>`!2Yy#r@9biTcXxYCNmP0ibJI8IVhzqXH-uhx-5wCVmA#Gh zw3uCV-n)~gq?P!aY4!b`X{B9KBpOuMT5U0eRamTfMN|PuIV`+Wy3!x_aBjOhT^bRd zW_k+|%l%(@S@<~OFTY~~ch$Y&#mL|9$xj>$S|J!+9o@n5qB4y1dQma1H6MS#HL_5) z2>0hJ4dY4Qhr!4NAA}vsT?8t>5a(6IsxI5%uSUtrSPFvOcxk;oPe@y-|l0^4>$flvAwXaE+iJ@P9%ZEFo( z-$#FO3}el;)gC6oWaSlHq&V&X7C>H%`mBq2HICs^qN4}GC}D;MW7mqxh4v8&?Uii3 zH=GS?2N-a&F7da5@c@AfoK%*(j(-QUYN~?R7Co! z0;wvgvI7FMi!DV%z2Pg=`<>}1kADfM%>8ecK%LlH5?j*dqDFHpqeiBNFv~apOS9!M zy=8UnImQZ;SDYWwI8N%4zca=+az4SYdbw5v5JpujOcj4e@$B!G0UzOWHD8KN?Qtl&DmiRiB#sZaMmLr8t2 z4+HQ=)yWx;n>2RLIeA-?i72qdGz$*4W#+0D^&Ekb^}x!`KYTf7jJrymbUJKPVg%c9BWK`51+Un`Q@t3~6G$#i zFzrkRmei3y@=R>uqEys8Hs>(NuK(t2UD$BmkB@(d`Fe!Y&9*g|@g%R&d5Cw2OF=Iy zcC(G0vbCdi>+|J6>gi}Q59l?irmlB%arXsxs`X%3>ciK>G^VG?u2=7M2DhN}q0U_n zj2Zr=6d#Yq>|^m=19zr1WDB$Uvxbgax-S@uFE|nbhf}?Te#|i54o|Ea4Fb`5~>6q&vo+`FGoF~ zfH&vIHsB7kcjVQ2V(`;~e}JO`)gt5D7xFR?nGmc3|4ip5hxfNNs&SnvPpCI08U6;K zHQwVsp!`tx3(4EZ!lie*&Al9c`b2Rwnu}SmczA1R=krNRs~7Gn86vh#J;@@jnGG5}DW^`X@L?7jG`@7md$8;{jHpYcuzPj))0h<3V#`jwc zdj;p;%YdThp|0hD!!Ji$#ZA8g$@LBf#2Xw+YZy@|b&iPF>`7DV28a2RDhFHNb7{fy)98oJnozhNi&f#2kyQ3 zqR+Dxg38KdY$suY;T_?jbtJX1MOefgGGpc%p}raz_mYS(V+FDrYoH!FmRr4G169MU zxh~hKEBmnWyuXFLE`aL3QaJ?1CsAXs2MU|Rx_IQ%fN`aVp^7G@w=a)rn;N~V zuC7Ln<^$)0(uR#OH14<{dvK3tZ469GiYzIXy_3XRc02G9*RQS@il_N(()ZR$<2~w= zGx4Gk{S9rdy@leG*OEv)Rbv}EuM@Vae7|Ys{d@r;j6v?B=ll5H2#gjFd!r{qkRVJI z8^SOWLrb3fHA5ORAk~k_fXfK9+#xUw0vy-gA?9#=Man}7aga?l6weE%h(y3N_<)t0 z%H=L�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 EFA(=$*8l(j literal 0 HcmV?d00001 diff --git a/docs/issues/024-widerruf.md b/docs/issues/024-widerruf.md index be624da..efdf78f 100644 --- a/docs/issues/024-widerruf.md +++ b/docs/issues/024-widerruf.md @@ -1,19 +1,49 @@ # #024 Widerruf und Massenwiderruf -**Status:** offen +**Status:** erledigt **Meilenstein:** v0.4.0 **Labels:** backend, ui, sicherheit -**Geschätzt:** 3 h **Tatsächlich:** – +**Geschätzt:** 3 h **Tatsächlich:** 0 h 25 min ## Ziel Ein-Klick-Widerruf inkl. Benutzer/sudoers; Massenwiderruf mit Re-Auth. ## Aufgaben -- [ ] wird zu Beginn der Phase verfeinert +- [x] „Widerrufen“ auf der Schlüsselseite mit Dialog, der jede Entfernung auflistet +- [x] Public- und Private-Verwendungen → ENTFERNEN, Dry-Run, anwenden, erst dann `WIDERRUFEN` +- [x] Zielkonten optional entfernen (nur `vonSshkvAngelegt`, nie ein noch genutztes) +- [x] Massenwiderruf auf der Schlüsselliste, ein gemeinsamer Dry-Run, Protokoll je Schlüssel +- [x] Abgelaufene Schlüssel erkennbar (Filter) und Widerruf anbieten – ohne automatisches Entfernen ## Akzeptanzkriterien -- [ ] wird zu Beginn der Phase verfeinert +- [x] DB-Tests: Zustände, Rechte, Zielkonten, Protokoll ohne Geheimnisse (`tests/widerruf.test.ts`) +- [x] Integrationstest gegen zwei Hosts inkl. „Host nicht erreichbar“ (`tests/integration/widerruf.test.ts`) +- [x] E2E im Browser (`tests/e2e/widerruf.spec.ts`), Screenshot `widerruf-desktop.png` ## Abhängigkeiten #018 ## Notizen / Entscheidungen +- **Zwischenzustand statt Sofort-Status:** neues Feld `Schluessel.widerrufEingeleitetAm` (Migration + `20261012130000_widerruf_eingeleitet`). Der Status bleibt AKTIV/ABGELAUFEN, bis keine Verwendung mehr + offen ist; erst `widerrufAbschliessen` setzt `WIDERRUFEN` (bzw. `ROTIERT`, wenn ein aktiver Nachfolger + existiert, #023). Schlüsselseite und Liste zeigen „Widerruf unvollständig“ und die offenen Ziele. +- **Reihenfolge:** vormerken → Dry-Run/Anwenden (bestehende Hash-Sperre aus #016/#017) → optional + Zielkonten (`ZIELKONTO_ENTFERNEN`, erst wenn die Schlüssel überall weg sind) → abschließen. + Ein Ziel, das im Dry-Run scheitert (nicht erreichbar), wird nicht angewendet; seine Verwendung bleibt + ENTFERNEN, ein neuer Dry-Run versucht es erneut. Der Abschluss läuft nach erfolgreichem Anwenden + automatisch und meldet, was noch fehlt. +- **Nichts zu schreiben:** Steht der Schlüssel schon nirgends mehr, bietet das Dry-Run-Panel + „Zustand übernehmen“ an (sonst bliebe der Widerruf hängen). +- **Archivierte Hosts:** sshkv verbindet sich dort nicht mehr – deren Verwendungen gelten sofort als + entfernt; der Dialog sagt das, das Protokoll nennt die Hosts. +- **Zielkonten:** Ein Zielkonto kennt seinen Schlüssel nicht; Kandidat ist ein von sshkv angelegtes Konto + auf (Host, Benutzer) einer Zuweisung der widerrufenen Schlüssel. Nutzt ein anderer, nicht im Widerruf + befindlicher Schlüssel das Konto noch, bleibt es (Dialog nennt den Schlüssel). +- **Rechte:** nur Public Keys → `publicKeyAusrollen`; Private Keys → `privateKeyAusrollen` (Admin); + mehrere Schlüssel → `massenwiderruf`, Zielkonten → `zielkontenVerwalten` (jeweils Admin mit frischer + Bestätigung). Der Deployment-Key ist nicht widerrufbar. Ein Schlüssel im Widerruf lässt sich nicht + mehr zuweisen. +- **Ablauf:** Status-Filter „abgelaufen“ umfasst aktive Schlüssel mit vergangenem Ablaufdatum; die + Schlüsselseite bietet dann „Jetzt widerrufen“. Entfernt wird nie automatisch. +- Massenwiderruf als GET-Formular `/schluessel/widerruf?id=…` – die Auswahl der Zielkonten reist als + `?zielkonten=` mit und übersteht Neuladen und erneute Bestätigung. diff --git a/prisma/migrations/20261012130000_widerruf_eingeleitet/migration.sql b/prisma/migrations/20261012130000_widerruf_eingeleitet/migration.sql new file mode 100644 index 0000000..ae9ff29 --- /dev/null +++ b/prisma/migrations/20261012130000_widerruf_eingeleitet/migration.sql @@ -0,0 +1,3 @@ +-- #024: Zwischenzustand „Widerruf eingeleitet“. Der Schluessel bleibt AKTIV (bzw. ABGELAUFEN), +-- bis alle Verwendungen nachweislich entfernt sind; erst dann wird er WIDERRUFEN bzw. ROTIERT. +ALTER TABLE "Schluessel" ADD COLUMN "widerrufEingeleitetAm" TIMESTAMP(3); diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 38d6161..bcf6a22 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -274,44 +274,47 @@ model HostSchluessel { // ---------------------------------------------------------------- Schluessel model Schluessel { - id String @id @default(cuid()) + id String @id @default(cuid()) /// Zweck, z. B. „Backup srv-backup01 → srv-pve01“. - name String + name String /// Fuer Dateinamen und Kommentare: backup-srv-backup01-srv-pve01. - slug String @unique - typ SchluesselTyp - kategorie SchluesselKategorie - status SchluesselStatus @default(AKTIV) + slug String @unique + typ SchluesselTyp + kategorie SchluesselKategorie + status SchluesselStatus @default(AKTIV) /// OpenSSH-Zeile ohne Optionen: "ssh-ed25519 AAAA… kommentar". - publicKey String - fingerprint String @unique - kommentar String + publicKey String + fingerprint String @unique + kommentar String /// Envelope-Chiffrat des Private Keys. Liest ausschliesslich src/worker/geheimnisse.ts. - privatVerschluesselt Bytes? + privatVerschluesselt Bytes? /// Data-Key, verschluesselt mit dem Master-Key. - dekVerschluesselt Bytes? - masterKeyVersion Int? - privatGeloeschtAm DateTime? - passphraseGeschuetzt Boolean @default(false) + dekVerschluesselt Bytes? + masterKeyVersion Int? + privatGeloeschtAm DateTime? + passphraseGeschuetzt Boolean @default(false) /// Genau ein Deployment-Key ist Instanz-Standard (partieller Index). - instanzStandard Boolean @default(false) - personId String? - person Person? @relation(fields: [personId], references: [id], onDelete: SetNull) - vorlageId String? - vorlage Vorlage? @relation(fields: [vorlageId], references: [id], onDelete: SetNull) - tags String[] - ablaufAm DateTime? - zuletztVerwendetAm DateTime? + instanzStandard Boolean @default(false) + personId String? + person Person? @relation(fields: [personId], references: [id], onDelete: SetNull) + vorlageId String? + vorlage Vorlage? @relation(fields: [vorlageId], references: [id], onDelete: SetNull) + tags String[] + ablaufAm DateTime? + zuletztVerwendetAm DateTime? + /// Widerruf eingeleitet (#024): Verwendungen stehen auf ENTFERNEN, der Status wechselt erst + /// auf WIDERRUFEN/ROTIERT, wenn alle Entfernungen erfolgreich waren. + widerrufEingeleitetAm DateTime? /// Rotationskette: der Schluessel, den dieser abgeloest hat. - vorgaengerId String? @unique - vorgaenger Schluessel? @relation("Rotation", fields: [vorgaengerId], references: [id], onDelete: SetNull) - nachfolger Schluessel? @relation("Rotation") - erstelltVonId String? - erstelltVon Benutzer? @relation("SchluesselErsteller", fields: [erstelltVonId], references: [id], onDelete: SetNull) + vorgaengerId String? @unique + vorgaenger Schluessel? @relation("Rotation", fields: [vorgaengerId], references: [id], onDelete: SetNull) + nachfolger Schluessel? @relation("Rotation") + erstelltVonId String? + erstelltVon Benutzer? @relation("SchluesselErsteller", fields: [erstelltVonId], references: [id], onDelete: SetNull) /// true, wenn eine Person den Key selbst hinterlegt hat (Self-Service). - selbstHinterlegt Boolean @default(false) - angelegtAm DateTime @default(now()) - geaendertAm DateTime @updatedAt + selbstHinterlegt Boolean @default(false) + angelegtAm DateTime @default(now()) + geaendertAm DateTime @updatedAt publicVerwendungen PublicVerwendung[] privateVerwendungen PrivateVerwendung[] diff --git a/src/app/(app)/schluessel/[id]/page.tsx b/src/app/(app)/schluessel/[id]/page.tsx index 02c98cc..4c15fc4 100644 --- a/src/app/(app)/schluessel/[id]/page.tsx +++ b/src/app/(app)/schluessel/[id]/page.tsx @@ -19,6 +19,10 @@ import { schluesselDetail, type SchluesselDetail } from "@/server/queries/schlue import { AusrollenPanel } from "@/components/ausrollen/AusrollenPanel"; import { EintragAktionen } from "@/components/ausrollen/EintragAktionen"; import { zielAuswahl } from "@/server/queries/ziele"; +import { widerrufUebersicht } from "@/server/queries/widerruf"; +import { WiderrufAblauf } from "@/components/widerruf/WiderrufAblauf"; +import { WiderrufKnopf } from "@/components/widerruf/WiderrufKnopf"; +import { ablaufZustand } from "@/lib/schluessel"; import { PrivateAusrollenAktion } from "./PrivateAusrollenAktion"; import { PrivateKeyAnzeigen, PrivateKeyLoeschen } from "./PrivateKeyAktionen"; import { PublicAusrollenAktion } from "./PublicAusrollenAktion"; @@ -187,18 +191,41 @@ function PrivatStatus({ s, anzeigen }: { s: SchluesselDetail; anzeigen?: ReactNo } /** Schlüsseldetail (#012) nach dem Prototyp aus #002; Ausrollen folgt mit #016/#017. */ -export default async function SchluesselSeite({ params }: { params: Promise<{ id: string }> }) { +export default async function SchluesselSeite({ + params, + searchParams, +}: { + params: Promise<{ id: string }>; + searchParams: Promise<{ zielkonten?: string | string[] }>; +}) { const { id } = await params; const { benutzer } = await sitzungErforderlich("lesen", `/schluessel/${id}`); const s = await schluesselDetail(id); if (!s) notFound(); + const zielkontenParameter = (await searchParams).zielkonten; - const aktiv = s.status === "AKTIV"; + // Im Widerruf (#024) bleibt der Status AKTIV, bis alles entfernt ist – zuweisen geht aber nicht mehr. + const imWiderruf = Boolean(s.widerrufEingeleitetAm) && (s.status === "AKTIV" || s.status === "ABGELAUFEN"); + const aktiv = s.status === "AKTIV" && !imWiderruf; const rechte: Rechte = { public: darf(benutzer.rolle, "publicKeyAusrollen"), privat: darf(benutzer.rolle, "privateKeyAusrollen"), testen: darf(benutzer.rolle, "hostsVerwalten"), }; + const jetzt = new Date(); + const abgelaufen = s.status === "ABGELAUFEN" || ablaufZustand(s.ablaufAm, jetzt).art === "abgelaufen"; + const widerrufbar = + !imWiderruf && + s.kategorie !== "DEPLOYMENT" && + (s.status === "AKTIV" || s.status === "ABGELAUFEN") && + rechte.public && + (s.privateVerwendungen.length === 0 || rechte.privat); + const widerruf = widerrufbar || imWiderruf ? await widerrufUebersicht([s.id]) : undefined; + const vorauswahl = ( + Array.isArray(zielkontenParameter) ? zielkontenParameter.join(",") : (zielkontenParameter ?? "") + ) + .split(",") + .filter(Boolean); const auswahl = aktiv && rechte.public ? await zielAuswahl() : undefined; const personenKey = s.kategorie === "PERSON"; const verwalten = darf(benutzer.rolle, "schluesselVerwalten"); @@ -206,7 +233,6 @@ export default async function SchluesselSeite({ params }: { params: Promise<{ id const privatHerausgebbar = s.privatGespeichert && s.kategorie !== "DEPLOYMENT"; const darfAnzeigen = privatHerausgebbar && darf(benutzer.rolle, "privateKeyAnzeigen"); const darfLoeschen = privatHerausgebbar && darf(benutzer.rolle, "privateKeyLoeschen"); - const jetzt = new Date(); return (

@@ -228,6 +254,7 @@ export default async function SchluesselSeite({ params }: { params: Promise<{ id + {imWiderruf && Widerruf unvollständig} {s.instanzStandard && Instanz-Standard} {s.selbstHinterlegt && selbst hinterlegt} {s.vorlage && Vorlage: {s.vorlage.name}} @@ -240,14 +267,78 @@ export default async function SchluesselSeite({ params }: { params: Promise<{ id } aktionen={ - verwalten && ( - + (verwalten || (widerrufbar && widerruf)) && ( + <> + {verwalten && ( + + )} + {widerrufbar && widerruf && ( + + )} + ) } /> + {imWiderruf && widerruf && ( + + + + )} + + {abgelaufen && widerrufbar && widerruf && ( + +
+

+ {s.ablaufAm ? ( + <> + Das Ablaufdatum () ist + überschritten.{" "} + + ) : null} + Nach Projektende bzw. Ablaufdatum: Widerruf mit einem Klick. sshkv entfernt abgelaufene + Schlüssel nie von selbst – erst nach Ihrer Bestätigung und dem Dry-Run. +

+ +
+
+ )} + + {(s.status === "WIDERRUFEN" || s.status === "ROTIERT") && ( + +

+ Von allen Hosts entfernt; der Schlüssel lässt sich nicht mehr zuweisen. + {s.nachfolger && ( + <> + {" "} + Ersetzt durch{" "} + + {s.nachfolger.name} + + . + + )} +

+
+ )} +
@@ -321,6 +412,7 @@ export default async function SchluesselSeite({ params }: { params: Promise<{ id
{rechte.public && + !imWiderruf && (s.publicVerwendungen.length > 0 || (rechte.privat && s.privateVerwendungen.length > 0)) && ( + + + ); +} + +function WiderrufBadge({ s }: { s: SchluesselListenEintrag }) { + if (!s.widerrufEingeleitetAm || (s.status !== "AKTIV" && s.status !== "ABGELAUFEN")) return null; + return Widerruf unvollständig; +} + /** Schlüsselliste mit Filter (#012). Filter per GET, damit Links teilbar sind. */ export default async function Schluessel({ searchParams }: { searchParams: Suchparameter }) { // Jede Seite prueft selbst; die Huelle ist nur das zweite Netz (CLAUDE.md). @@ -60,6 +87,8 @@ export default async function Schluessel({ searchParams }: { searchParams: Suchp const status = einzeln(parameter["status"]); const liste = await schluesselListe({ q, kategorie, status }); const verwalten = darf(benutzer.rolle, "schluesselVerwalten"); + // Massenwiderruf (#024): Auswahl nur fuer Admins; die frische Bestaetigung prueft die Aktion. + const massen = darf(benutzer.rolle, "massenwiderruf"); const gefiltert = q !== "" || kategorie !== "" || status !== ""; const jetzt = new Date(); @@ -142,13 +171,27 @@ export default async function Schluessel({ searchParams }: { searchParams: Suchp ) ) : ( + {massen && ( +
+ + + + )} {/* Unter md eine Liste statt der Tabelle: sechs Spalten passen nicht auf 390 px. */}
    {liste.map((s) => ( -
  • +
  • + {massen && } {s.name} @@ -161,6 +204,7 @@ export default async function Schluessel({ searchParams }: { searchParams: Suchp + @@ -175,6 +219,7 @@ export default async function Schluessel({ searchParams }: { searchParams: Suchp className="hidden md:block" beschriftung="Schlüssel" spalten={[ + ...(massen ? [{ titel: "Auswahl", versteckt: true, className: "w-10" }] : []), { titel: "Name" }, { titel: "Typ" }, { titel: "Kategorie" }, @@ -185,6 +230,11 @@ export default async function Schluessel({ searchParams }: { searchParams: Suchp > {liste.map((s) => ( + {massen && ( + + + + )} + {s.person && {s.person.name}} diff --git a/src/app/(app)/schluessel/widerruf/page.tsx b/src/app/(app)/schluessel/widerruf/page.tsx new file mode 100644 index 0000000..f034ab5 --- /dev/null +++ b/src/app/(app)/schluessel/widerruf/page.tsx @@ -0,0 +1,118 @@ +import { Ban } from "lucide-react"; +import type { Metadata } from "next"; +import Link from "next/link"; +import { StatusBadge } from "@/components/schluessel/Anzeige"; +import { Breadcrumb } from "@/components/ui/Breadcrumb"; +import { Button } from "@/components/ui/Button"; +import { Karte } from "@/components/ui/Karte"; +import { Leerzustand } from "@/components/ui/Leerzustand"; +import { Seitenkopf } from "@/components/ui/Seitenkopf"; +import { WiderrufAblauf } from "@/components/widerruf/WiderrufAblauf"; +import { WiderrufFormular } from "@/components/widerruf/WiderrufFormular"; +import { darf } from "@/server/auth/rechte"; +import { bestaetigungFrisch, sitzungErforderlich } from "@/server/auth/sitzungspflicht"; +import { widerrufUebersicht } from "@/server/queries/widerruf"; + +export const metadata: Metadata = { title: "Massenwiderruf" }; + +type Suchparameter = Promise<{ id?: string | string[]; zielkonten?: string | string[] }>; + +function liste(wert: string | string[] | undefined): string[] { + const roh = Array.isArray(wert) ? wert : wert ? [wert] : []; + return [...new Set(roh.flatMap((w) => w.split(",")).filter((w) => /^[a-z0-9]{1,64}$/i.test(w)))].slice( + 0, + 200, + ); +} + +/** + * Massenwiderruf (#024): mehrere Schluessel – etwa alle einer Person nach Projektende – in einem + * Durchgang mit gemeinsamem Dry-Run. Nur Admins; das Vormerken verlangt eine frische + * Bestaetigung (Recht `massenwiderruf`). Protokolliert wird je Schluessel. + */ +export default async function MassenwiderrufSeite({ searchParams }: { searchParams: Suchparameter }) { + const parameter = await searchParams; + const ids = liste(parameter.id); + const selbst = `/schluessel/widerruf?${ids.map((id) => `id=${id}`).join("&")}`; + const { benutzer } = await sitzungErforderlich("massenwiderruf", selbst); + + const kopf = ( + } + titel="Massenwiderruf" + untertitel="Mehrere Schlüssel gemeinsam von allen Hosts entfernen – ein Dry-Run für alle." + /> + ); + if (ids.length === 0) { + return ( +
    + {kopf} + } + titel="Keine Schlüssel gewählt" + text="Wählen Sie in der Schlüsselliste die Schlüssel aus, die widerrufen werden sollen." + aktion={} + /> +
    + ); + } + + const uebersicht = await widerrufUebersicht(ids); + const offeneStati = (s: { status: string }) => s.status === "AKTIV" || s.status === "ABGELAUFEN"; + const nochNichtEingeleitet = uebersicht.schluessel.filter((s) => offeneStati(s) && !s.eingeleitet); + const laufend = uebersicht.schluessel.filter((s) => offeneStati(s) && s.eingeleitet); + const vorauswahl = liste(parameter.zielkonten); + + return ( +
    + {kopf} + + {nochNichtEingeleitet.length > 0 || uebersicht.schluessel.some((s) => s.gesperrt && !s.eingeleitet) ? ( + + {!bestaetigungFrisch(benutzer.bestaetigtAm) && ( +

    + Der Massenwiderruf verlangt eine frische Bestätigung Ihrer Anmeldung – sshkv fragt beim + Vormerken danach. +

    + )} + +
    + ) : laufend.length > 0 ? ( + + s.id)} + offen={uebersicht.offen} + zielkonten={uebersicht.zielkonten} + vorauswahl={vorauswahl} + ruecksprung={selbst} + darfPrivat={darf(benutzer.rolle, "privateKeyAusrollen")} + /> + + ) : null} + + +
      + {uebersicht.schluessel.map((s) => ( +
    • + + {s.name} + + {s.person && · {s.person}} + + {s.eingeleitet && offeneStati(s) && ( + Widerruf unvollständig + )} +
    • + ))} +
    +
    +
    + ); +} diff --git a/src/components/assistent/Assistent.tsx b/src/components/assistent/Assistent.tsx index 03bdd55..9a1b8ea 100644 --- a/src/components/assistent/Assistent.tsx +++ b/src/components/assistent/Assistent.tsx @@ -1,12 +1,13 @@ "use client"; -import { ArrowLeft, ArrowRight, Check, ExternalLink, Play } from "lucide-react"; +import { ArrowLeft, ArrowRight, ExternalLink, Play } from "lucide-react"; import { useState } from "react"; -import { clsx } from "clsx"; import { AusrollenPanel } from "@/components/ausrollen/AusrollenPanel"; import { Ankreuzfeld, Button, Feld, Formularfehler, Karte } from "@/components/ui"; import { Auswahlliste, Textbereich } from "@/components/ui/Feld"; +import { Schrittleiste } from "@/components/ui/Schrittleiste"; import { VorgangsKnopf } from "@/components/vorgang/VorgangsKnopf"; +import { warten } from "@/components/vorgang/warten"; import { istIpAdresse, platzhalterErsetzen } from "@/lib/vorlagen"; import { sudoersInhalt } from "@/lib/ssh/zielkonto"; import { @@ -91,19 +92,6 @@ function kurz(text: string): string { ); } -/** Wartet auf das Ende eines Vorgangs (fuer die Kette im Klick, nicht als Hook). */ -async function warten( - vorgangId: string, -): Promise<{ status: string; fehler: string | null; ergebnis: unknown }> { - for (;;) { - const antwort = await fetch(`/api/vorgaenge/${vorgangId}`, { cache: "no-store" }); - if (!antwort.ok) throw new Error("Status des Vorgangs nicht abrufbar."); - const stand = (await antwort.json()) as { status: string; fehler: string | null; ergebnis: unknown }; - if (stand.status !== "WARTEND" && stand.status !== "LAEUFT") return stand; - await new Promise((weiter) => setTimeout(weiter, 800)); - } -} - export function Assistent({ daten, bestaetigt }: { daten: AssistentDaten; bestaetigt: boolean }) { const [schritt, setSchritt] = useState(0); const [w, setW] = useState(LEER); @@ -249,27 +237,7 @@ export function Assistent({ daten, bestaetigt }: { daten: AssistentDaten; bestae return (
    -
      - {SCHRITTE.map((titel, index) => ( -
    1. - - {index < schritt ? : index + 1} - - {titel} -
    2. - ))} -
    + {schritt === 0 && ( void; +}) { const router = useRouter(); const [trockenlaufId, setTrockenlaufId] = useState(); const [ausrollenId, setAusrollenId] = useState(); @@ -43,12 +52,22 @@ export function AusrollenPanel({ auswahl, offen }: { auswahl: AusrollAuswahl; of const trockenlauf = useVorgang(trockenlaufId); const ausrollen = useVorgang(ausrollenId); + // Ueber eine Ref, damit der Rueckruf genau einmal je Lauf feuert und nicht bei jedem Render. + const rueckruf = useRef(nachAusrollen); useEffect(() => { - if (ausrollen.stand && !laeuftNoch(ausrollen.stand)) router.refresh(); + rueckruf.current = nachAusrollen; + }); + useEffect(() => { + if (!ausrollen.stand || laeuftNoch(ausrollen.stand)) return; + router.refresh(); + if (ausrollen.stand.status === "ERLEDIGT") rueckruf.current?.(); }, [ausrollen.stand, router]); const plan = (trockenlauf.stand?.plan as { ziele?: PlanZiel[] } | null)?.ziele; const aenderungen = plan?.filter((z) => z.geaendert && !z.fehler).length ?? 0; + // Steht schon alles so auf dem Host (etwa ein Key, den jemand von Hand entfernt hat), gibt es + // nichts zu schreiben – der Zustand der Zuweisungen muss trotzdem nachgezogen werden (#024). + const nurZustand = aenderungen === 0 && offen > 0 && (plan?.some((z) => !z.fehler) ?? false); const laeuft = startet || laeuftNoch(trockenlauf.stand) || laeuftNoch(ausrollen.stand); const fertig = ausrollen.stand?.status === "ERLEDIGT"; @@ -103,7 +122,7 @@ export function AusrollenPanel({ auswahl, offen }: { auswahl: AusrollAuswahl; of
    ))} - {plan && aenderungen > 0 && !fertig && ( + {plan && (aenderungen > 0 || nurZustand) && !fertig && (
    )} - {plan && aenderungen === 0 && ( + {plan && aenderungen === 0 && !fertig && (

    Alles ist bereits auf dem Soll-Stand.

    )} {ausrollen.stand?.status === "FEHLGESCHLAGEN" && ( diff --git a/src/components/ui/Schrittleiste.tsx b/src/components/ui/Schrittleiste.tsx new file mode 100644 index 0000000..ef15635 --- /dev/null +++ b/src/components/ui/Schrittleiste.tsx @@ -0,0 +1,41 @@ +import { Check } from "lucide-react"; +import { clsx } from "clsx"; + +/** + * Schrittanzeige fuer gefuehrte Ablaeufe (Assistent #020, Widerruf #024, Rotation #023): + * erledigte Schritte mit Haken, der aktuelle in Akzentfarbe und als `aria-current="step"`. + */ +export function Schrittleiste({ + schritte, + aktuell, + beschriftung = "Schritte", +}: { + schritte: readonly string[]; + /** Index des aktuellen Schritts; `schritte.length` heisst: alles erledigt. */ + aktuell: number; + beschriftung?: string; +}) { + return ( +
      + {schritte.map((titel, index) => ( +
    1. + + {index < aktuell ? : index + 1} + + {titel} +
    2. + ))} +
    + ); +} diff --git a/src/components/vorgang/warten.ts b/src/components/vorgang/warten.ts new file mode 100644 index 0000000..48aa47c --- /dev/null +++ b/src/components/vorgang/warten.ts @@ -0,0 +1,15 @@ +/** + * Wartet auf das Ende eines Vorgangs – fuer Ketten im Klick (Assistent #020, Widerruf #024, + * Rotation #023), nicht als Hook. + */ +export type VorgangsEnde = { status: string; fehler: string | null; ergebnis: unknown }; + +export async function warten(vorgangId: string): Promise { + for (;;) { + const antwort = await fetch(`/api/vorgaenge/${vorgangId}`, { cache: "no-store" }); + if (!antwort.ok) throw new Error("Status des Vorgangs nicht abrufbar."); + const stand = (await antwort.json()) as VorgangsEnde; + if (stand.status !== "WARTEND" && stand.status !== "LAEUFT") return stand; + await new Promise((weiter) => setTimeout(weiter, 800)); + } +} diff --git a/src/components/widerruf/AlleAuswaehlen.tsx b/src/components/widerruf/AlleAuswaehlen.tsx new file mode 100644 index 0000000..59d162d --- /dev/null +++ b/src/components/widerruf/AlleAuswaehlen.tsx @@ -0,0 +1,24 @@ +"use client"; + +/** + * „Alle auswählen“ fuer den Massenwiderruf (#024): setzt alle aktivierbaren Kaestchen, die zum + * Formular gehoeren. Die Auswahl selbst bleibt ein schlichtes GET-Formular – ohne JavaScript + * waehlt man eben einzeln. + */ +export function AlleAuswaehlen({ formular }: { formular: string }) { + return ( + + ); +} diff --git a/src/components/widerruf/WiderrufAblauf.tsx b/src/components/widerruf/WiderrufAblauf.tsx new file mode 100644 index 0000000..cbbba05 --- /dev/null +++ b/src/components/widerruf/WiderrufAblauf.tsx @@ -0,0 +1,224 @@ +"use client"; + +import { CheckCheck, ExternalLink } from "lucide-react"; +import { useRouter } from "next/navigation"; +import { useState } from "react"; +import { AusrollenPanel } from "@/components/ausrollen/AusrollenPanel"; +import { Ankreuzfeld, Button, Formularfehler } from "@/components/ui"; +import { Schrittleiste } from "@/components/ui/Schrittleiste"; +import { warten } from "@/components/vorgang/warten"; +import { widerrufAbschliessenAktion, widerrufZielkontenAktion } from "@/server/actions/widerruf"; +import type { OffeneEntfernung, ZielkontoKandidat } from "@/server/services/widerruf"; + +/** + * Ein eingeleiteter Widerruf (#024), wiederaufnehmbar wie der Assistent (#020): Dry-Run und + * Anwenden fuer alle offenen Entfernungen, dann optional Zielkonten, dann Abschluss. + * + * Was noch fehlt, kommt immer frisch vom Server (`offen`) – nach einem Neuladen, einem + * Fehlschlag auf einem Host oder einer erneuten Bestaetigung geht es an derselben Stelle weiter. + */ +const SCHRITTE = ["Vorgemerkt", "Dry-Run & Anwenden", "Zielkonten", "Abgeschlossen"] as const; + +const ZUSTAND_TEXT: Record = { + ENTFERNEN: "steht aus", + FEHLGESCHLAGEN: "letzter Versuch fehlgeschlagen", +}; + +export function WiderrufAblauf({ + schluesselIds, + offen, + zielkonten, + vorauswahl, + ruecksprung, + darfPrivat, + ohneZielkonten = false, + nachAbschluss, +}: { + schluesselIds: string[]; + offen: OffeneEntfernung[]; + zielkonten: ZielkontoKandidat[]; + vorauswahl: string[]; + /** Diese Seite – Ziel der erneuten Bestaetigung. */ + ruecksprung: string; + darfPrivat: boolean; + /** Rotation (#023): das Zielkonto nutzt der Nachfolger weiter. */ + ohneZielkonten?: boolean; + nachAbschluss?: () => void; +}) { + const router = useRouter(); + const waehlbar = ohneZielkonten ? [] : zielkonten.filter((k) => k.nochGenutztVon.length === 0); + // Ohne waehlbares Zielkonto entfaellt der Schritt ganz – ein leerer Schritt verwirrt nur. + const ohneSchritt = waehlbar.length === 0; + const [auswahl, setAuswahl] = useState(() => + vorauswahl.filter((id) => waehlbar.some((k) => k.id === id)), + ); + const [zielkontenFertig, setZielkontenFertig] = useState(false); + const [laeuft, setLaeuft] = useState(); + const [fehler, setFehler] = useState(); + const [bestaetigen, setBestaetigen] = useState(false); + const [noch, setNoch] = useState(); + + const aktuell = offen.length > 0 ? 1 : auswahl.length > 0 && !zielkontenFertig ? 2 : 3; + const privatOhneRecht = !darfPrivat && offen.some((o) => o.art === "privat"); + + async function abschliessen() { + setFehler(undefined); + setBestaetigen(false); + setNoch(undefined); + try { + if (auswahl.length > 0 && !zielkontenFertig) { + setLaeuft("Zielkonten werden entfernt …"); + const antwort = await widerrufZielkontenAktion(schluesselIds, auswahl); + if (antwort.bestaetigen) setBestaetigen(true); + if (antwort.fehler || !antwort.vorgaenge) { + setFehler(antwort.fehler); + return; + } + const fehlschlaege: string[] = []; + for (const vorgang of antwort.vorgaenge) { + const ende = await warten(vorgang.id); + if (ende.status !== "ERLEDIGT") + fehlschlaege.push(`${vorgang.beschriftung}: ${ende.fehler ?? "fehlgeschlagen"}`); + } + if (fehlschlaege.length > 0) { + setFehler(`Zielkonto nicht entfernt – ${fehlschlaege.join(" · ")}`); + return; + } + setZielkontenFertig(true); + } + setLaeuft("Widerruf wird abgeschlossen …"); + const antwort = await widerrufAbschliessenAktion(schluesselIds); + if (antwort.fehler) { + setFehler(antwort.fehler); + return; + } + const offeneSchluessel = (antwort.ergebnisse ?? []).filter((e) => e.status === "OFFEN"); + if (offeneSchluessel.length > 0) { + setNoch(offeneSchluessel.flatMap((e) => e.offen)); + } else { + nachAbschluss?.(); + } + router.refresh(); + } catch (fehler) { + setFehler((fehler as Error).message); + } finally { + setLaeuft(undefined); + } + } + + const bestaetigenZiel = (() => { + const url = new URL(ruecksprung, "http://x"); + if (auswahl.length > 0) url.searchParams.set("zielkonten", auswahl.join(",")); + else url.searchParams.delete("zielkonten"); + return `${url.pathname}${url.search}`; + })(); + + return ( +
    + s !== "Zielkonten") : SCHRITTE} + aktuell={ohneSchritt && aktuell >= 2 ? aktuell - 1 : aktuell} + beschriftung="Schritte des Widerrufs" + /> + + {offen.length > 0 && ( +
    +

    Noch nicht entfernt ({offen.length}):

    +
      + {offen.map((o) => ( +
    • + ●{" "} + {o.ziel} + + {" "} + · {ZUSTAND_TEXT[o.zustand] ?? o.zustand.toLowerCase()} + +
    • + ))} +
    + {privatOhneRecht ? ( +

    Private Keys entfernt nur ein Admin.

    + ) : ( + <> +

    + Der Dry-Run zeigt je Host, was entfernt wird – und warum ein Host gerade nicht geht (etwa + nicht erreichbar). Fehlgeschlagene Ziele bleiben offen; ein neuer Dry-Run versucht es erneut. +

    + void abschliessen()} + /> + + )} +
    + )} + + {waehlbar.length > 0 && ( +
    + Zielkonten entfernen (optional) + {zielkonten.map((k) => { + const genutzt = k.nochGenutztVon.length > 0; + return ( + + setAuswahl((alt) => (e.target.checked ? [...alt, k.id] : alt.filter((id) => id !== k.id))) + } + beschriftung={ + <> + Benutzer {k.benutzername} auf{" "} + {k.hostName} entfernen + + } + erklaerung={ + genutzt + ? `Bleibt: wird noch von „${k.nochGenutztVon.join("“, „")}“ genutzt.` + : "Nach dem Entfernen der Schlüssel; verlangt eine frische Bestätigung." + } + /> + ); + })} +
    + )} + + {noch && noch.length > 0 && ( +

    + Noch nicht widerrufen – offen: {noch.map((o) => o.ziel).join(", ")}. Bitte einen neuen Dry-Run + starten. +

    + )} + + {bestaetigen && ( + + Anmeldung bestätigen, danach hier fortsetzen + + )} + {laeuft && ( +

    + {laeuft} +

    + )} + {offen.length === 0 && ( +
    + +
    + )} +
    + ); +} diff --git a/src/components/widerruf/WiderrufFormular.tsx b/src/components/widerruf/WiderrufFormular.tsx new file mode 100644 index 0000000..96254db --- /dev/null +++ b/src/components/widerruf/WiderrufFormular.tsx @@ -0,0 +1,209 @@ +"use client"; + +import { Ban } from "lucide-react"; +import { useRouter } from "next/navigation"; +import { useState, useTransition } from "react"; +import { Ankreuzfeld, Button, Formularfehler } from "@/components/ui"; +import { widerrufEinleitenAktion } from "@/server/actions/widerruf"; +import type { WiderrufUebersicht } from "@/server/queries/widerruf"; + +/** + * Bestaetigung eines Widerrufs (#024): listet genau auf, was auf welchem Host passiert, und + * laesst Zielkonten (Standard: aus) zum Entfernen auswaehlen. Der Klick merkt nur vor – auf den + * Hosts aendert sich erst nach Dry-Run und „Anwenden“ etwas. + * + * Die Auswahl der Zielkonten reist als `?zielkonten=` in der Adresse weiter: so uebersteht sie + * ein Neuladen und die erneute Bestaetigung der Anmeldung. + */ +export function WiderrufFormular({ + uebersicht, + ruecksprung, + abbrechen, +}: { + uebersicht: WiderrufUebersicht; + /** Wohin nach dem Vormerken (Schluesselseite bzw. Massenwiderruf-Seite). */ + ruecksprung: string; + abbrechen?: () => void; +}) { + const router = useRouter(); + const [auswahl, setAuswahl] = useState([]); + const [fehler, setFehler] = useState(); + const [bestaetigen, setBestaetigen] = useState(false); + const [laeuft, starten] = useTransition(); + const gesperrt = uebersicht.schluessel.filter((s) => s.gesperrt); + const mehrere = uebersicht.schluessel.length > 1; + + const ziel = (() => { + const url = new URL(ruecksprung, "http://x"); + if (auswahl.length > 0) url.searchParams.set("zielkonten", auswahl.join(",")); + return `${url.pathname}${url.search}`; + })(); + + return ( +
    + + + {uebersicht.zielkonten.length > 0 && ( +
    + Zielkonten zusätzlich entfernen (optional) + {uebersicht.zielkonten.map((k) => { + const genutzt = k.nochGenutztVon.length > 0; + return ( + + setAuswahl((alt) => (e.target.checked ? [...alt, k.id] : alt.filter((id) => id !== k.id))) + } + beschriftung={ + <> + Benutzer {k.benutzername} auf{" "} + {k.hostName} entfernen + + } + erklaerung={ + genutzt + ? `Bleibt: wird noch von „${k.nochGenutztVon.join("“, „")}“ genutzt.` + : `Von sshkv angelegt. Benutzer samt Home${k.sudoModus !== "KEINER" ? " und sudoers-Datei" : ""} werden gelöscht – verlangt eine frische Bestätigung.` + } + /> + ); + })} +
    + )} + +
    +

    So geht es weiter

    +
      +
    1. + Die Zuweisungen werden zum Entfernen vorgemerkt; der Schlüssel lässt sich nicht mehr zuweisen. +
    2. +
    3. Der Dry-Run zeigt jede Änderung. Erst „Anwenden“ ändert etwas auf den Hosts.
    4. +
    5. + Erst wenn alle Entfernungen erfolgreich waren, gilt der Schlüssel als widerrufen. Scheitert ein + Host, bleibt er im Zwischenzustand und die Seite zeigt, was fehlt. +
    6. +
    +
    + + {gesperrt.map((s) => ( +

    + {s.gesperrt} +

    + ))} + + {bestaetigen && ( + + Anmeldung bestätigen und danach erneut „Widerruf vorbereiten“ wählen + + )} +
    + {abbrechen && } + +
    +
    + ); +} + +/** Die Liste „was passiert“ – im Dialog und auf der Massenwiderruf-Seite. */ +export function WiderrufInhalt({ + uebersicht, + mehrere, +}: { + uebersicht: WiderrufUebersicht; + mehrere: boolean; +}) { + return ( +
    + {uebersicht.schluessel.map((s) => { + const oeffentlich = uebersicht.public.filter((v) => v.schluesselId === s.id); + const privat = uebersicht.privat.filter((v) => v.schluesselId === s.id); + return ( +
    + {mehrere && ( +

    + {s.name} + {s.person && · {s.person}} +

    + )} + {oeffentlich.length === 0 && privat.length === 0 && ( +

    + Keine Zuweisungen – der Schlüssel wird ohne Änderung auf einem Host widerrufen. +

    + )} + {oeffentlich.length > 0 && ( +
    +

    Public Key wird aus authorized_keys entfernt:

    +
      + {oeffentlich.map((v) => ( +
    • + − {v.ziel} + {v.archiviert && ( + + {" "} + · Host archiviert – sshkv ändert dort nichts + + )} +
    • + ))} +
    +
    + )} + {privat.length > 0 && ( +
    +

    Private Key wird vom Quell-Host entfernt:

    +
      + {privat.map((v) => ( +
    • + + − {v.ziel}:{v.pfad} + + + {v.beimWiderruf === "UMBENENNEN" + ? `Wird umbenannt in …${v.pfad.split("/").pop()}.sshkv-widerrufen.` + : "Wird gelöscht"} + , dazu die .pub-Datei + {v.alias ? `, der config-Eintrag „Host ${v.alias}“ und sein known_hosts-Block` : ""} + {v.archiviert ? " · Host archiviert – sshkv ändert dort nichts" : ""} + +
    • + ))} +
    +
    + )} +
    + ); + })} +
    + ); +} diff --git a/src/components/widerruf/WiderrufKnopf.tsx b/src/components/widerruf/WiderrufKnopf.tsx new file mode 100644 index 0000000..14cdcf5 --- /dev/null +++ b/src/components/widerruf/WiderrufKnopf.tsx @@ -0,0 +1,64 @@ +"use client"; + +import { Ban, X } from "lucide-react"; +import { useEffect, useRef, useState } from "react"; +import { Button } from "@/components/ui/Button"; +import type { WiderrufUebersicht } from "@/server/queries/widerruf"; +import { WiderrufFormular } from "./WiderrufFormular"; + +/** + * „Widerrufen“ auf der Schluesselseite (#024): Gefahr-Knopf mit Bestaetigungsdialog. Offen/zu + * als Zustand wie im AusrollDialog – kein Render-Pfad liest die Ref. + */ +export function WiderrufKnopf({ + uebersicht, + ruecksprung, + beschriftung = "Widerrufen", +}: { + uebersicht: WiderrufUebersicht; + ruecksprung: string; + beschriftung?: string; +}) { + const dialog = useRef(null); + const [offen, setOffen] = useState(false); + const name = uebersicht.schluessel[0]?.name ?? ""; + + useEffect(() => { + const element = dialog.current; + if (!element) return; + if (offen && !element.open) element.showModal(); + if (!offen && element.open) element.close(); + }, [offen]); + + const schliessen = () => setOffen(false); + return ( + <> + + +
    +

    + „{name}“ widerrufen? +

    + +
    + {offen && ( + + )} +
    + + ); +} diff --git a/src/server/actions/verwendungen.ts b/src/server/actions/verwendungen.ts index f2f01f1..fa10776 100644 --- a/src/server/actions/verwendungen.ts +++ b/src/server/actions/verwendungen.ts @@ -74,7 +74,11 @@ export async function publicEntfernenAktion( } } -export type AusrollAuswahl = { readonly schluesselId: string } | { readonly hostId: string }; +export type AusrollAuswahl = + | { readonly schluesselId: string } + | { readonly hostId: string } + /** Ein gemeinsamer Dry-Run fuer mehrere Schluessel (Massenwiderruf, #024). */ + | { readonly schluesselIds: readonly string[] }; export async function trockenlaufAktion(auswahl: AusrollAuswahl): Promise { try { @@ -84,7 +88,9 @@ export async function trockenlaufAktion(auswahl: AusrollAuswahl): Promise { + try { + const ids = idListe.parse(schluesselIds); + const { benutzer } = await rechtErforderlich(ids.length > 1 ? "massenwiderruf" : "publicKeyAusrollen"); + await widerrufEinleiten(ids, akteurVon(benutzer), { + privatErlaubt: darf(benutzer.rolle, "privateKeyAusrollen"), + }); + pfadeNeuLaden(ids); + return {}; + } catch (fehler) { + return alsAntwort(fehler); + } +} + +export async function widerrufZielkontenAktion( + schluesselIds: string[], + zielkontoIds: string[], +): Promise { + try { + const ids = idListe.parse(schluesselIds); + const konten = idListe.parse(zielkontoIds); + // Ein Benutzer samt Home verschwindet: Admin mit frischer Bestaetigung (#018). + const { benutzer } = await rechtErforderlich("zielkontenVerwalten"); + return { vorgaenge: await widerrufZielkontenEntfernen(ids, konten, akteurVon(benutzer)) }; + } catch (fehler) { + return alsAntwort(fehler); + } +} + +export async function widerrufAbschliessenAktion( + schluesselIds: string[], +): Promise { + try { + const ids = idListe.parse(schluesselIds); + // Abschliessen setzt nur den Status nach dem, was die Datenbank belegt – kein Host-Zugriff. + const { benutzer } = await rechtErforderlich("publicKeyAusrollen"); + const ergebnisse = await widerrufAbschliessen(ids, akteurVon(benutzer)); + pfadeNeuLaden(ids); + return { ergebnisse }; + } catch (fehler) { + return alsAntwort(fehler); + } +} diff --git a/src/server/queries/schluessel.ts b/src/server/queries/schluessel.ts index a0badc6..5c87d4e 100644 --- a/src/server/queries/schluessel.ts +++ b/src/server/queries/schluessel.ts @@ -23,6 +23,7 @@ export const SCHLUESSEL_LISTE_SELECT = { ablaufAm: true, masterKeyVersion: true, passphraseGeschuetzt: true, + widerrufEingeleitetAm: true, person: { select: { id: true, name: true } }, _count: { select: { @@ -50,12 +51,15 @@ export const SCHLUESSEL_DETAIL_SELECT = { tags: true, ablaufAm: true, zuletztVerwendetAm: true, + widerrufEingeleitetAm: true, angelegtAm: true, personId: true, vorlageId: true, person: { select: { id: true, name: true } }, vorlage: { select: { id: true, name: true } }, erstelltVon: { select: { name: true } }, + vorgaenger: { select: { id: true, name: true, status: true } }, + nachfolger: { select: { id: true, name: true, status: true } }, publicVerwendungen: { where: { zustand: { not: "ENTFERNT" } }, orderBy: { angelegtAm: "asc" }, @@ -101,13 +105,34 @@ function alsStatus(wert: string | undefined): SchluesselStatus | undefined { return STATI.find((s) => s === wert); } +/** + * Heute 00:00 UTC nach dem Kalender in Berlin – Ablaufdaten liegen als UTC-Mitternacht ihres + * Tages in der Datenbank, und `ablaufZustand()` rechnet ebenfalls mit dem Berliner Datum. + */ +function heute(jetzt = new Date()): Date { + const tag = new Intl.DateTimeFormat("en-CA", { timeZone: "Europe/Berlin" }).format(jetzt); + return new Date(`${tag}T00:00:00Z`); +} + +/** + * Status als Filter (#024): ein aktiver Schluessel mit Ablaufdatum in der Vergangenheit gilt als + * abgelaufen, auch wenn niemand den Status von Hand gesetzt hat. Automatisch entfernt wird nichts. + */ +function statusFilter(status: SchluesselStatus | undefined): Prisma.SchluesselWhereInput { + if (status === "AKTIV") return { status, OR: [{ ablaufAm: null }, { ablaufAm: { gte: heute() } }] }; + if (status === "ABGELAUFEN") { + return { OR: [{ status }, { status: "AKTIV", ablaufAm: { lt: heute() } }] }; + } + return status ? { status } : {}; +} + export async function schluesselListe(filter: SchluesselFilter = {}) { const q = filter.q?.trim().slice(0, 100); const kategorie = alsKategorie(filter.kategorie); const status = alsStatus(filter.status); const where: Prisma.SchluesselWhereInput = { ...(kategorie ? { kategorie } : {}), - ...(status ? { status } : {}), + AND: [statusFilter(status)], ...(q ? { OR: [ diff --git a/src/server/queries/widerruf.ts b/src/server/queries/widerruf.ts new file mode 100644 index 0000000..afcac1e --- /dev/null +++ b/src/server/queries/widerruf.ts @@ -0,0 +1,121 @@ +import { prisma } from "@/lib/db"; +import { + offeneEntfernungen, + widerrufGesperrt, + zielkontoKandidaten, + type OffeneEntfernung, + type ZielkontoKandidat, +} from "@/server/services/widerruf"; + +/** + * Was ein Widerruf bewirkt (#024) – fuer den Bestaetigungsdialog, die Massenwiderruf-Seite und + * die Fortsetzen-Ansicht. Nur Namen, Ziele und Pfade; nie Schluesselinhalte. + */ +export type WiderrufSchluessel = { + readonly id: string; + readonly name: string; + readonly kategorie: "PERSON" | "DIENST" | "DEPLOYMENT"; + readonly status: "AKTIV" | "ROTIERT" | "WIDERRUFEN" | "ABGELAUFEN"; + readonly eingeleitet: boolean; + readonly person: string | null; + readonly gesperrt: string | null; +}; + +export type WiderrufZiel = { + readonly id: string; + readonly schluesselId: string; + readonly ziel: string; + readonly archiviert: boolean; +}; + +export type WiderrufPrivatZiel = WiderrufZiel & { + readonly pfad: string; + readonly alias: string | null; + readonly beimWiderruf: "LOESCHEN" | "UMBENENNEN"; +}; + +export type WiderrufUebersicht = { + readonly schluessel: WiderrufSchluessel[]; + readonly public: WiderrufZiel[]; + readonly privat: WiderrufPrivatZiel[]; + readonly zielkonten: ZielkontoKandidat[]; + readonly offen: OffeneEntfernung[]; +}; + +export async function widerrufUebersicht(schluesselIds: readonly string[]): Promise { + const ids = [...new Set(schluesselIds)]; + const schluessel = await prisma.schluessel.findMany({ + where: { id: { in: ids } }, + select: { + id: true, + name: true, + kategorie: true, + status: true, + widerrufEingeleitetAm: true, + person: { select: { name: true } }, + }, + orderBy: { name: "asc" }, + }); + const [oeffentlich, privat, zielkonten, offen] = await Promise.all([ + prisma.publicVerwendung.findMany({ + where: { schluesselId: { in: ids }, zustand: { not: "ENTFERNT" } }, + select: { + id: true, + schluesselId: true, + zielbenutzer: true, + host: { select: { name: true, archiviertAm: true } }, + hostgruppe: { select: { name: true } }, + }, + orderBy: { angelegtAm: "asc" }, + }), + prisma.privateVerwendung.findMany({ + where: { schluesselId: { in: ids }, zustand: { not: "ENTFERNT" } }, + select: { + id: true, + schluesselId: true, + zielbenutzer: true, + pfad: true, + sshConfig: true, + beimWiderruf: true, + host: { select: { name: true, archiviertAm: true } }, + }, + orderBy: { angelegtAm: "asc" }, + }), + zielkontoKandidaten(ids), + offeneEntfernungen(ids), + ]); + return { + schluessel: schluessel.map((s) => ({ + id: s.id, + name: s.name, + kategorie: s.kategorie, + status: s.status, + eingeleitet: Boolean(s.widerrufEingeleitetAm), + person: s.person?.name ?? null, + gesperrt: widerrufGesperrt(s), + })), + public: oeffentlich.map((v) => ({ + id: v.id, + schluesselId: v.schluesselId, + ziel: v.host + ? `${v.zielbenutzer}@${v.host.name}` + : `${v.zielbenutzer}@${v.hostgruppe?.name ?? "?"} (Gruppe)`, + archiviert: Boolean(v.host?.archiviertAm), + })), + privat: privat.map((v) => { + const config = + v.sshConfig && typeof v.sshConfig === "object" ? (v.sshConfig as { alias?: unknown }) : null; + return { + id: v.id, + schluesselId: v.schluesselId, + ziel: `${v.zielbenutzer}@${v.host.name}`, + pfad: v.pfad, + alias: typeof config?.alias === "string" ? config.alias : null, + beimWiderruf: v.beimWiderruf, + archiviert: Boolean(v.host.archiviertAm), + }; + }), + zielkonten, + offen, + }; +} diff --git a/src/server/services/verwendungen.ts b/src/server/services/verwendungen.ts index 7dbde1e..6a4cf9e 100644 --- a/src/server/services/verwendungen.ts +++ b/src/server/services/verwendungen.ts @@ -20,6 +20,9 @@ export class VerwendungsFehler extends Error { type Akteur = { readonly id: string; readonly name: string }; +/** Ein Schluessel im Widerruf (#024) bekommt keine neuen Ziele – sonst wuerde er nie fertig. */ +const WIDERRUF_LAEUFT = "Dieser Schlüssel wird gerade widerrufen und lässt sich nicht mehr zuweisen."; + export type PublicZuweisung = { readonly schluesselId: string; readonly hostId?: string | null; @@ -46,11 +49,12 @@ export async function publicVerwendungAnlegen(eingabe: PublicZuweisung, akteur: } const schluessel = await prisma.schluessel.findUnique({ where: { id: eingabe.schluesselId }, - select: { status: true, fingerprint: true, kategorie: true }, + select: { status: true, fingerprint: true, kategorie: true, widerrufEingeleitetAm: true }, }); if (!schluessel) throw new VerwendungsFehler("Diesen Schlüssel gibt es nicht."); if (schluessel.status !== "AKTIV") throw new VerwendungsFehler("Nur aktive Schlüssel lassen sich zuweisen."); + if (schluessel.widerrufEingeleitetAm) throw new VerwendungsFehler(WIDERRUF_LAEUFT); if (schluessel.kategorie === "DEPLOYMENT") { throw new VerwendungsFehler("Der Deployment-Key wird von sshkv selbst verwaltet."); } @@ -116,13 +120,47 @@ export async function publicVerwendungEntfernen(id: string, akteur: Akteur): Pro }); } +/** Ziele mehrerer Schluessel ohne Doppelte – ein gemeinsamer Dry-Run beim Massenwiderruf (#024). */ +async function zieleMehrererSchluessel( + schluesselIds: readonly string[], + mitPrivat: boolean, +): Promise { + const ziele = new Map(); + for (const schluesselId of schluesselIds) { + const liste = [ + ...(await zieleVonVerwendungen({ schluesselId })), + ...(mitPrivat ? await zieleVonPrivatVerwendungen({ schluesselId }) : []), + ]; + for (const ziel of liste) + ziele.set(`${ziel.hostId}\u0000${ziel.zielbenutzer}\u0000${ziel.art ?? "public"}`, ziel); + } + return [...ziele.values()]; +} + /** Trockenlauf fuer die Ziele eines Schluessels oder fuer ausgewaehlte Verwendungen. */ export async function trockenlaufStarten( - auswahl: { schluesselId?: string; hostId?: string; verwendungIds?: string[]; ziele?: Ziel[] }, + auswahl: { + schluesselId?: string; + /** Mehrere Schluessel in einem Dry-Run (Massenwiderruf, #024). */ + schluesselIds?: readonly string[]; + hostId?: string; + verwendungIds?: string[]; + ziele?: Ziel[]; + }, akteur: Akteur, /** Private-Key-Ziele nur fuer Admins (Freigabe Frage 3) – der Aufrufer entscheidet per darf(). */ mitPrivat = false, ): Promise { + if (auswahl.schluesselIds && !auswahl.ziele) { + return trockenlaufStarten( + { + ziele: await zieleMehrererSchluessel(auswahl.schluesselIds, mitPrivat), + ...(auswahl.schluesselIds.length === 1 ? { schluesselId: auswahl.schluesselIds[0] } : {}), + }, + akteur, + mitPrivat, + ); + } const ziele = auswahl.ziele ?? [ ...(await zieleVonVerwendungen({ ...(auswahl.schluesselId ? { schluesselId: auswahl.schluesselId } : {}), @@ -197,11 +235,13 @@ export async function privateVerwendungAnlegen(eingabe: PrivateZuweisung, akteur kategorie: true, privatGeloeschtAm: true, masterKeyVersion: true, + widerrufEingeleitetAm: true, }, }); if (!schluessel) throw new VerwendungsFehler("Diesen Schlüssel gibt es nicht."); if (schluessel.status !== "AKTIV") throw new VerwendungsFehler("Nur aktive Schlüssel lassen sich ausrollen."); + if (schluessel.widerrufEingeleitetAm) throw new VerwendungsFehler(WIDERRUF_LAEUFT); if (schluessel.kategorie !== "DIENST") throw new VerwendungsFehler("Private Keys werden nur für Service-Schlüssel ausgerollt."); // masterKeyVersion ist genau dann gesetzt, wenn ein Private Key gespeichert ist (DB-CHECK). diff --git a/src/server/services/widerruf.ts b/src/server/services/widerruf.ts new file mode 100644 index 0000000..53bb957 --- /dev/null +++ b/src/server/services/widerruf.ts @@ -0,0 +1,433 @@ +import type { Prisma } from "@/generated/prisma/client"; +import { prisma } from "@/lib/db"; +import { protokollieren } from "@/server/services/protokoll"; +import { VerwendungsFehler } from "@/server/services/verwendungen"; +import { vorgangEinreihen } from "@/server/vorgaenge/vorgaenge"; + +/** + * Widerruf und Massenwiderruf (#024). + * + * Ablauf in drei Schritten, damit der Status nie mehr verspricht, als auf den Hosts passiert ist: + * + * 1. `widerrufEinleiten`: alle Verwendungen auf ENTFERNEN, `widerrufEingeleitetAm` setzen. + * Der Schluessel bleibt AKTIV, laesst sich aber nicht mehr zuweisen. + * 2. Dry-Run und Ausrollen wie sonst auch (#016/#017). Was gelingt, wird ENTFERNT; was auf einem + * Host scheitert (nicht erreichbar, Datei geaendert), bleibt ENTFERNEN. + * 3. `widerrufAbschliessen`: erst wenn keine Verwendung mehr offen ist, wird der Status + * WIDERRUFEN (bzw. ROTIERT, wenn ein Nachfolger aus einer Rotation existiert, #023). + * + * Optional dazwischen: Zielkonten entfernen, die fuer diese Schluessel angelegt wurden. + */ +export class WiderrufFehler extends VerwendungsFehler { + constructor(nachricht: string) { + super(nachricht); + this.name = "WiderrufFehler"; + } +} + +type Akteur = { readonly id: string; readonly name: string }; + +/** Verwendungen in diesen Zustaenden zaehlen als „noch in Gebrauch“ (fuer Zielkonten). */ +const IN_GEBRAUCH = ["GEPLANT", "AUSGEROLLT", "ABWEICHUNG", "FEHLGESCHLAGEN"] as const; + +const SCHLUESSEL_KOPF = { + id: true, + name: true, + kategorie: true, + status: true, + fingerprint: true, + widerrufEingeleitetAm: true, + nachfolger: { select: { id: true, status: true } }, +} satisfies Prisma.SchluesselSelect; + +type SchluesselKopf = Prisma.SchluesselGetPayload<{ select: typeof SCHLUESSEL_KOPF }>; + +/** Warum ein Schluessel nicht widerrufen werden kann – oder null. */ +export function widerrufGesperrt(s: Pick): string | null { + // Der Deployment-Key ist sshkvs eigener Zugang; ohne ihn ist kein Host mehr erreichbar. + if (s.kategorie === "DEPLOYMENT") + return "Der Deployment-Key lässt sich nicht widerrufen – er wird über eine eigene Rotation ersetzt."; + if (s.status === "WIDERRUFEN") return `„${s.name}“ ist bereits widerrufen.`; + if (s.status === "ROTIERT") return `„${s.name}“ ist bereits rotiert und von allen Hosts entfernt.`; + return null; +} + +async function schluesselLaden(ids: readonly string[]): Promise { + const eindeutig = [...new Set(ids)]; + if (eindeutig.length === 0) throw new WiderrufFehler("Bitte mindestens einen Schlüssel wählen."); + const liste = await prisma.schluessel.findMany({ + where: { id: { in: eindeutig } }, + select: SCHLUESSEL_KOPF, + orderBy: { name: "asc" }, + }); + if (liste.length !== eindeutig.length) throw new WiderrufFehler("Einen der Schlüssel gibt es nicht."); + return liste; +} + +// ---------------------------------------------------------------- Zielkonten + +export type ZielkontoKandidat = { + readonly id: string; + readonly hostId: string; + readonly hostName: string; + readonly benutzername: string; + readonly sudoModus: "KEINER" | "BEFEHLE" | "VOLL"; + /** Namen anderer Schluessel, die das Konto noch nutzen – dann bleibt es. */ + readonly nochGenutztVon: string[]; +}; + +/** + * Zielkonten, die sshkv fuer diese Schluessel angelegt hat: ein von sshkv angelegtes, noch + * vorhandenes Konto auf einem Host, auf dem einer der Schluessel (in irgendeinem Zustand) fuer + * genau diesen Benutzer zugewiesen war. Ein Zielkonto kennt seinen Schluessel nicht; die + * Zuweisung ist die einzige belastbare Verbindung. + */ +export async function zielkontoKandidaten(schluesselIds: readonly string[]): Promise { + const ids = [...new Set(schluesselIds)]; + const [oeffentlich, privat] = await Promise.all([ + prisma.publicVerwendung.findMany({ + where: { schluesselId: { in: ids } }, + select: { + zielbenutzer: true, + hostId: true, + hostgruppe: { select: { mitglieder: { select: { hostId: true } } } }, + }, + }), + prisma.privateVerwendung.findMany({ + where: { schluesselId: { in: ids } }, + select: { zielbenutzer: true, hostId: true }, + }), + ]); + const paare = new Set(); + for (const v of oeffentlich) { + const hosts = v.hostId ? [v.hostId] : (v.hostgruppe?.mitglieder.map((m) => m.hostId) ?? []); + for (const hostId of hosts) paare.add(`${hostId}\u0000${v.zielbenutzer}`); + } + for (const v of privat) paare.add(`${v.hostId}\u0000${v.zielbenutzer}`); + if (paare.size === 0) return []; + + const konten = await prisma.zielkonto.findMany({ + where: { + entferntAm: null, + vonSshkvAngelegt: true, + host: { archiviertAm: null }, + OR: [...paare].map((p) => { + const [hostId, benutzername] = p.split("\u0000") as [string, string]; + return { hostId, benutzername }; + }), + }, + select: { + id: true, + hostId: true, + benutzername: true, + sudoModus: true, + host: { select: { name: true } }, + }, + orderBy: [{ host: { name: "asc" } }, { benutzername: "asc" }], + }); + + const ergebnis: ZielkontoKandidat[] = []; + for (const konto of konten) { + const [andere, anderePrivat] = await Promise.all([ + prisma.publicVerwendung.findMany({ + where: { + schluesselId: { notIn: ids }, + zielbenutzer: konto.benutzername, + zustand: { in: [...IN_GEBRAUCH] }, + schluessel: { widerrufEingeleitetAm: null }, + OR: [{ hostId: konto.hostId }, { hostgruppe: { mitglieder: { some: { hostId: konto.hostId } } } }], + }, + select: { schluessel: { select: { name: true } } }, + }), + prisma.privateVerwendung.findMany({ + where: { + schluesselId: { notIn: ids }, + hostId: konto.hostId, + zielbenutzer: konto.benutzername, + zustand: { in: [...IN_GEBRAUCH] }, + schluessel: { widerrufEingeleitetAm: null }, + }, + select: { schluessel: { select: { name: true } } }, + }), + ]); + ergebnis.push({ + id: konto.id, + hostId: konto.hostId, + hostName: konto.host.name, + benutzername: konto.benutzername, + sudoModus: konto.sudoModus, + nochGenutztVon: [...new Set([...andere, ...anderePrivat].map((v) => v.schluessel.name))].sort(), + }); + } + return ergebnis; +} + +// ---------------------------------------------------------------- Einleiten + +export type EinleitenOptionen = { + /** Darf der Akteur Private Keys entfernen (privateKeyAusrollen)? Prueft die Aktion per darf(). */ + readonly privatErlaubt: boolean; +}; + +/** + * Schritt 1: Verwendungen zum Entfernen vormerken. Idempotent – ein zweiter Aufruf (etwa beim + * Fortsetzen) aendert an bereits vorgemerkten Verwendungen nichts. + */ +export async function widerrufEinleiten( + schluesselIds: readonly string[], + akteur: Akteur, + optionen: EinleitenOptionen, +): Promise { + const liste = await schluesselLaden(schluesselIds); + for (const s of liste) { + const grund = widerrufGesperrt(s); + if (grund) throw new WiderrufFehler(grund); + } + const ids = liste.map((s) => s.id); + const privatOffen = await prisma.privateVerwendung.count({ + where: { schluesselId: { in: ids }, zustand: { not: "ENTFERNT" } }, + }); + if (privatOffen > 0 && !optionen.privatErlaubt) { + throw new WiderrufFehler( + "Private Keys auf Hosts entfernt nur ein Admin. Bitte einen Admin widerrufen lassen.", + ); + } + + await prisma.$transaction(async (tx) => { + const jetzt = new Date(); + for (const s of liste) { + const [oeffentlich, privat] = await Promise.all([ + tx.publicVerwendung.findMany({ + where: { schluesselId: s.id, zustand: { not: "ENTFERNT" } }, + select: { + id: true, + zustand: true, + zuletztAngewendetAm: true, + host: { select: { name: true, archiviertAm: true } }, + }, + }), + tx.privateVerwendung.findMany({ + where: { schluesselId: s.id, zustand: { not: "ENTFERNT" } }, + select: { + id: true, + zustand: true, + zuletztAngewendetAm: true, + host: { select: { name: true, archiviertAm: true } }, + }, + }), + ]); + // Nie ausgerollt: auf dem Host steht nichts. Archivierter Host: sshkv verbindet sich dort + // nicht mehr – das Protokoll haelt fest, dass dort nichts entfernt wurde. + const sofort = (v: (typeof oeffentlich)[number]) => + (v.zustand === "GEPLANT" && !v.zuletztAngewendetAm) || Boolean(v.host?.archiviertAm); + const archiviert = [...oeffentlich, ...privat] + .filter((v) => v.host?.archiviertAm) + .map((v) => v.host!.name); + await tx.publicVerwendung.updateMany({ + where: { id: { in: oeffentlich.filter(sofort).map((v) => v.id) } }, + data: { zustand: "ENTFERNT" }, + }); + await tx.publicVerwendung.updateMany({ + where: { id: { in: oeffentlich.filter((v) => !sofort(v)).map((v) => v.id) } }, + data: { zustand: "ENTFERNEN" }, + }); + await tx.privateVerwendung.updateMany({ + where: { id: { in: privat.filter(sofort).map((v) => v.id) } }, + data: { zustand: "ENTFERNT" }, + }); + await tx.privateVerwendung.updateMany({ + where: { id: { in: privat.filter((v) => !sofort(v)).map((v) => v.id) } }, + data: { zustand: "ENTFERNEN" }, + }); + if (!s.widerrufEingeleitetAm) { + await tx.schluessel.update({ + where: { id: s.id }, + data: { widerrufEingeleitetAm: jetzt }, + select: { id: true }, + }); + } + await protokollieren( + { + akteur, + aktion: "schluessel.widerruf.eingeleitet", + ergebnis: "ERFOLG", + fingerprint: s.fingerprint, + details: { + name: s.name, + public: oeffentlich.length, + privat: privat.length, + ohneHostZugriff: oeffentlich.filter(sofort).length + privat.filter(sofort).length, + archivierteHosts: [...new Set(archiviert)].sort(), + massenwiderruf: liste.length > 1, + }, + }, + tx, + ); + } + }); +} + +// ---------------------------------------------------------------- Offene Entfernungen + +export type OffeneEntfernung = { + readonly id: string; + readonly schluesselId: string; + readonly art: "public" | "privat"; + readonly ziel: string; + readonly zustand: string; +}; + +/** Was fuer diese Schluessel noch nicht entfernt ist – fuer Seite und Abschluss. */ +export async function offeneEntfernungen(schluesselIds: readonly string[]): Promise { + const ids = [...new Set(schluesselIds)]; + const [oeffentlich, privat] = await Promise.all([ + prisma.publicVerwendung.findMany({ + where: { schluesselId: { in: ids }, zustand: { not: "ENTFERNT" } }, + select: { + id: true, + schluesselId: true, + zielbenutzer: true, + zustand: true, + host: { select: { name: true } }, + hostgruppe: { select: { name: true } }, + }, + orderBy: { angelegtAm: "asc" }, + }), + prisma.privateVerwendung.findMany({ + where: { schluesselId: { in: ids }, zustand: { not: "ENTFERNT" } }, + select: { + id: true, + schluesselId: true, + zielbenutzer: true, + pfad: true, + zustand: true, + host: { select: { name: true } }, + }, + orderBy: { angelegtAm: "asc" }, + }), + ]); + return [ + ...oeffentlich.map((v) => ({ + id: v.id, + schluesselId: v.schluesselId, + art: "public" as const, + ziel: v.host + ? `${v.zielbenutzer}@${v.host.name}:~/.ssh/authorized_keys` + : `${v.zielbenutzer}@${v.hostgruppe?.name ?? "?"} (Gruppe):~/.ssh/authorized_keys`, + zustand: v.zustand, + })), + ...privat.map((v) => ({ + id: v.id, + schluesselId: v.schluesselId, + art: "privat" as const, + ziel: `${v.zielbenutzer}@${v.host.name}:${v.pfad}`, + zustand: v.zustand, + })), + ]; +} + +// ---------------------------------------------------------------- Zielkonten entfernen + +/** + * Optionaler Schritt nach dem Ausrollen: ausgewaehlte Zielkonten entfernen. Erst wenn die + * Schluessel von den Hosts verschwunden sind – sonst haette ein Fehlschlag beim Ausrollen einen + * halb geloeschten Benutzer mit noch gueltigem Schluessel zur Folge. + */ +export async function widerrufZielkontenEntfernen( + schluesselIds: readonly string[], + zielkontoIds: readonly string[], + akteur: Akteur, +): Promise<{ id: string; beschriftung: string }[]> { + const liste = await schluesselLaden(schluesselIds); + if (liste.some((s) => !s.widerrufEingeleitetAm)) + throw new WiderrufFehler("Bitte zuerst den Widerruf einleiten."); + const offen = await offeneEntfernungen(liste.map((s) => s.id)); + if (offen.length > 0) { + throw new WiderrufFehler( + "Zielkonten werden erst entfernt, wenn die Schlüssel von allen Hosts entfernt sind.", + ); + } + const kandidaten = new Map((await zielkontoKandidaten(liste.map((s) => s.id))).map((k) => [k.id, k])); + const vorgaenge: { id: string; beschriftung: string }[] = []; + const gewaehlt = [...new Set(zielkontoIds)]; + for (const id of gewaehlt) { + const konto = kandidaten.get(id); + if (!konto) throw new WiderrufFehler("Dieses Zielkonto gehört nicht zu den gewählten Schlüsseln."); + if (konto.nochGenutztVon.length > 0) { + throw new WiderrufFehler( + `${konto.benutzername}@${konto.hostName} wird noch von „${konto.nochGenutztVon.join("“, „")}“ genutzt und bleibt.`, + ); + } + } + for (const id of gewaehlt) { + const konto = kandidaten.get(id)!; + vorgaenge.push({ + id: await vorgangEinreihen({ + art: "ZIELKONTO_ENTFERNEN", + angefordertVonId: akteur.id, + hostId: konto.hostId, + eingabe: { benutzer: konto.benutzername }, + }), + beschriftung: `${konto.benutzername}@${konto.hostName}`, + }); + } + return vorgaenge; +} + +// ---------------------------------------------------------------- Abschliessen + +export type AbschlussErgebnis = { + readonly schluesselId: string; + readonly name: string; + readonly status: "WIDERRUFEN" | "ROTIERT" | "OFFEN"; + readonly offen: OffeneEntfernung[]; +}; + +/** + * Schritt 3: Status setzen – aber nur fuer Schluessel ohne offene Entfernung. Die anderen + * bleiben im Zwischenzustand; die Oberflaeche zeigt, was fehlt. + */ +export async function widerrufAbschliessen( + schluesselIds: readonly string[], + akteur: Akteur, +): Promise { + const liste = await schluesselLaden(schluesselIds); + const offen = await offeneEntfernungen(liste.map((s) => s.id)); + const ergebnisse: AbschlussErgebnis[] = []; + for (const s of liste) { + if (s.status === "WIDERRUFEN" || s.status === "ROTIERT") { + ergebnisse.push({ schluesselId: s.id, name: s.name, status: s.status, offen: [] }); + continue; + } + if (!s.widerrufEingeleitetAm) throw new WiderrufFehler(`Für „${s.name}“ ist kein Widerruf eingeleitet.`); + const eigene = offen.filter((o) => o.schluesselId === s.id); + if (eigene.length > 0) { + ergebnisse.push({ schluesselId: s.id, name: s.name, status: "OFFEN", offen: eigene }); + continue; + } + // Ein aktiver Nachfolger heisst: der Widerruf ist der letzte Schritt einer Rotation (#023). + const status = s.nachfolger?.status === "AKTIV" ? "ROTIERT" : "WIDERRUFEN"; + await prisma.$transaction(async (tx) => { + const geaendert = await tx.schluessel.updateMany({ + where: { id: s.id, status: { in: ["AKTIV", "ABGELAUFEN"] } }, + data: { status }, + }); + if (geaendert.count === 0) return; + await protokollieren( + { + akteur, + aktion: status === "ROTIERT" ? "schluessel.rotiert" : "schluessel.widerrufen", + ergebnis: "ERFOLG", + fingerprint: s.fingerprint, + details: { + name: s.name, + ...(s.nachfolger && status === "ROTIERT" ? { nachfolgerId: s.nachfolger.id } : {}), + }, + }, + tx, + ); + }); + ergebnisse.push({ schluesselId: s.id, name: s.name, status, offen: [] }); + } + return ergebnisse; +} diff --git a/tests/e2e/hilfen.ts b/tests/e2e/hilfen.ts new file mode 100644 index 0000000..edcb594 --- /dev/null +++ b/tests/e2e/hilfen.ts @@ -0,0 +1,90 @@ +import { execFileSync } from "node:child_process"; +import { expect, type Page } from "@playwright/test"; +import "dotenv/config"; + +/** + * Gemeinsame Schritte fuer Widerruf (#024) und Rotation (#023): anmelden, Hosts einrichten und + * der Kern-Anwendungsfall aus kern-anwendungsfall.spec.ts als Ausgangslage. + */ +const ROOT_PASSWORT = process.env["SSHKV_TEST_ROOT_PASSWORT"] || "sshkv-test"; +export const PORT = { + a: (process.env["SSHKV_TEST_ZIEL_A"] ?? "127.0.0.1:2221").split(":")[1] ?? "2221", + b: (process.env["SSHKV_TEST_ZIEL_B"] ?? "127.0.0.1:2222").split(":")[1] ?? "2222", +}; + +export function aufZiel(ziel: "ziel-a" | "ziel-b", befehl: string): string { + return execFileSync( + "docker", + ["compose", "-f", "docker-compose.test.yml", "exec", "-T", ziel, "sh", "-c", befehl], + { encoding: "utf8" }, + ); +} + +export function zieleZuruecksetzen(): void { + const reset = + "userdel -r sshkv 2>/dev/null; userdel -r deploy 2>/dev/null; rm -f /etc/sudoers.d/sshkv*; rm -rf /root/.ssh; true"; + aufZiel("ziel-a", reset); + aufZiel("ziel-b", reset); +} + +export async function anmelden(page: Page): Promise { + await page.goto("/anmelden"); + await page.getByRole("link", { name: /Mit Mock-OIDC anmelden/ }).click(); + await page.locator('button[data-rolle="admin"]').click(); + await page.getByRole("button", { name: "Anmelden", exact: true }).click(); + await expect(page.getByRole("heading", { name: "Übersicht" })).toBeVisible(); +} + +export async function hostEinrichten(page: Page, name: string, port: string): Promise { + await page.goto("/hosts/neu"); + await page.getByLabel("Name").fill(name); + await page.getByLabel("Adresse").fill("127.0.0.1"); + await page.getByLabel("Port").fill(port); + await page.getByRole("button", { name: "Host anlegen" }).click(); + await page.getByRole("button", { name: "Host-Key abrufen" }).click(); + await page.getByRole("button", { name: "Fingerprint stimmt – vertrauen" }).click({ timeout: 30_000 }); + await page.getByLabel("Passwort", { exact: true }).fill(ROOT_PASSWORT); + await page.getByRole("button", { name: "Zugang einrichten" }).click(); + await expect(page.getByRole("button", { name: "Verbindung prüfen" })).toBeVisible({ timeout: 60_000 }); +} + +export async function archivieren(page: Page, name: string): Promise { + await page.goto("/hosts"); + await page.getByRole("link", { name }).first().click(); + await page.getByRole("button", { name: "Host archivieren" }).click(); + await page.getByRole("dialog").getByRole("button", { name: "Archivieren", exact: true }).click(); + await expect(page).toHaveURL(/\/hosts$/); +} + +/** + * Kern-Anwendungsfall: Schluessel erzeugen, Private Key auf A (Alias zu-b), Public Key auf B, + * Dry-Run, anwenden. Endet auf der Schluesselseite; liefert deren Adresse. + */ +export async function kernAufbauen(page: Page, zweck: string, hostA: string, hostB: string): Promise { + await page.goto("/schluessel/neu"); + await page.getByLabel("Zweck").fill(zweck); + await page.getByRole("button", { name: "Schlüssel erzeugen" }).click(); + await expect(page.getByRole("heading", { name: zweck })).toBeVisible({ timeout: 30_000 }); + + await page.getByRole("button", { name: "Ausrollen" }).first().click(); + const privat = page.getByRole("dialog", { name: "Private Key ausrollen" }); + await privat.getByLabel("Quell-Host (bekommt den Private Key)").selectOption({ label: hostA }); + await privat.getByLabel("Ziel-Host (für known_hosts)").selectOption({ label: hostB }); + await privat.getByRole("textbox", { name: "Alias" }).fill("zu-b"); + await privat.getByRole("textbox", { name: "HostName" }).fill("ziel-b"); + await privat.getByRole("spinbutton", { name: "Port" }).fill("22"); + await privat.getByRole("button", { name: "Zuweisen" }).click(); + await expect(privat).toBeHidden(); + + await page.getByRole("button", { name: "Ausrollen" }).nth(1).click(); + const oeffentlich = page.getByRole("dialog", { name: "Public Key zuweisen" }); + await oeffentlich.getByLabel("Ziel", { exact: true }).selectOption({ label: hostB }); + await oeffentlich.getByRole("button", { name: "Zuweisen" }).click(); + await expect(oeffentlich).toBeHidden(); + + await page.getByRole("button", { name: "Dry-Run starten" }).click(); + await page.getByRole("button", { name: /Änderung anwenden/ }).click({ timeout: 30_000 }); + await expect(page.getByText("Ausgerollt.")).toBeVisible({ timeout: 60_000 }); + expect(aufZiel("ziel-a", "ssh -o BatchMode=yes zu-b id -un").trim()).toBe("root"); + return page.url(); +} diff --git a/tests/e2e/widerruf.spec.ts b/tests/e2e/widerruf.spec.ts new file mode 100644 index 0000000..dda76c4 --- /dev/null +++ b/tests/e2e/widerruf.spec.ts @@ -0,0 +1,61 @@ +import { expect, test } from "@playwright/test"; +import { + anmelden, + archivieren, + aufZiel, + hostEinrichten, + kernAufbauen, + PORT, + zieleZuruecksetzen, +} from "./hilfen"; + +/** + * Widerruf im Browser (#024), gebauter Stand + Worker: Ausgangslage ist der Kern-Anwendungsfall + * (Private Key auf A, Public Key auf B). „Widerrufen“ → Dialog → Dry-Run → anwenden → Status + * „widerrufen“; danach kommt A nicht mehr nach B. + */ +test.setTimeout(240_000); + +test.beforeAll(() => zieleZuruecksetzen()); + +test("Widerruf mit einem Klick", async ({ page }) => { + const kennung = Date.now().toString(36); + const hostA = `zz-e2e-a-${kennung}`; + const hostB = `zz-e2e-b-${kennung}`; + const zweck = `zz-e2e Widerruf ${kennung}`; + + await anmelden(page); + await hostEinrichten(page, hostA, PORT.a); + await hostEinrichten(page, hostB, PORT.b); + await kernAufbauen(page, zweck, hostA, hostB); + await page.reload(); + + // Dialog: zeigt genau, was passiert. + await page.getByRole("button", { name: "Widerrufen" }).click(); + const dialog = page.getByRole("dialog", { name: `„${zweck}“ widerrufen?` }); + await expect(dialog.getByText(`root@${hostB}`)).toBeVisible(); + await expect(dialog.getByText(`root@${hostA}:~/.ssh/`)).toBeVisible(); + await expect(dialog.getByText(/config-Eintrag „Host zu-b“/)).toBeVisible(); + await page.screenshot({ path: "docs/anleitung/bilder/widerruf-desktop.png" }); + await dialog.getByRole("button", { name: "Widerruf vorbereiten" }).click(); + + // Zwischenzustand: noch nicht widerrufen, nichts mehr zuweisbar. + await expect(page.getByRole("heading", { name: "Widerruf läuft" })).toBeVisible(); + await expect(page.getByText("Widerruf unvollständig")).toBeVisible(); + await expect(page.getByRole("button", { name: "Ausrollen" })).toHaveCount(0); + + await page.getByRole("button", { name: "Dry-Run starten" }).click(); + await expect(page.getByText(`root@${hostB}:/root/.ssh/authorized_keys`)).toBeVisible({ timeout: 30_000 }); + await page.screenshot({ path: "docs/anleitung/bilder/widerruf-dry-run-desktop.png", fullPage: true }); + await page.getByRole("button", { name: /Änderung anwenden/ }).click(); + + await expect(page.getByRole("heading", { name: "Widerrufen", exact: true })).toBeVisible({ + timeout: 60_000, + }); + await expect(page.getByText("Widerruf unvollständig")).toHaveCount(0); + expect(aufZiel("ziel-a", "ls /root/.ssh")).not.toContain("id_ed25519"); + expect(() => aufZiel("ziel-a", "ssh -o BatchMode=yes -o ConnectTimeout=5 zu-b true")).toThrow(); + + await archivieren(page, hostA); + await archivieren(page, hostB); +}); diff --git a/tests/integration/widerruf.test.ts b/tests/integration/widerruf.test.ts new file mode 100644 index 0000000..a36273e --- /dev/null +++ b/tests/integration/widerruf.test.ts @@ -0,0 +1,171 @@ +import { afterAll, beforeAll, beforeEach, describe, expect, it } from "vitest"; +import { prisma } from "@/lib/db"; +import { zieleVonPrivatVerwendungen, zieleVonVerwendungen } from "@/server/services/soll"; +import { privateVerwendungAnlegen, publicVerwendungAnlegen } from "@/server/services/verwendungen"; +import { + widerrufAbschliessen, + widerrufEinleiten, + widerrufZielkontenEntfernen, +} from "@/server/services/widerruf"; +import type { Plan } from "@/worker/ablaeufe/ausrollen"; +import { vorgangAusfuehren } from "@/worker/ausfuehren"; +import { deploymentKeySicherstellen, schluesselpaarVersiegeltErzeugen } from "@/worker/geheimnisse"; +import { HANDLER } from "@/worker/handler"; +import { datenbankLeeren } from "../hilfen/db"; +import { warteschlangeStoppen } from "../hilfen/vorgang"; +import { eingerichteterHost, masterKeyAnlegen, vorgangLaufen } from "./hilfen/host"; +import { befehlAlsRoot, zielA, zielB, zielBereit } from "./hilfen/ziele"; + +/** + * Widerruf gegen echte Hosts (#024): Public Key aus authorized_keys von B, Private Key samt + * config- und known_hosts-Eintrag von A, optional das Zielkonto deploy auf B. Danach scheitert + * `ssh ` von A. Scheitert ein Host, bleibt der Schluessel im Zwischenzustand. + */ + +const AKTEUR = { id: "", name: "Test-Admin" }; +let aufraeumen: () => void; + +beforeAll(async () => { + await Promise.all([zielBereit(zielA), zielBereit(zielB)]); + aufraeumen = masterKeyAnlegen(); +}); +afterAll(async () => { + aufraeumen(); + await warteschlangeStoppen(); +}); + +beforeEach(async () => { + await datenbankLeeren(); + await deploymentKeySicherstellen(); + const reset = + "userdel -r sshkv 2>/dev/null; userdel -r deploy 2>/dev/null; rm -f /etc/sudoers.d/sshkv*; rm -rf /root/.ssh; true"; + await Promise.all([befehlAlsRoot(zielA, reset), befehlAlsRoot(zielB, reset)]); + const admin = await prisma.benutzer.create({ data: { name: "Test-Admin", rolle: "ADMIN" } }); + AKTEUR.id = admin.id; +}); + +async function dienstSchluessel(name: string) { + const neu = await schluesselpaarVersiegeltErzeugen("ED25519", `sshkv:${name}`); + return prisma.schluessel.create({ + data: { + id: neu.id, + name, + slug: name, + typ: "ED25519", + kategorie: "DIENST", + publicKey: neu.publicKeyZeile, + fingerprint: neu.fingerprint, + kommentar: `sshkv:${name}`, + ...neu.versiegelt, + }, + select: { id: true, fingerprint: true, publicKey: true }, + }); +} + +async function trockenlaufUndAusrollen(schluesselId: string) { + const ziele = [ + ...(await zieleVonVerwendungen({ schluesselId })), + ...(await zieleVonPrivatVerwendungen({ schluesselId })), + ]; + const trockenlauf = await vorgangLaufen("TROCKENLAUF", { eingabe: { ziele }, angefordertVonId: AKTEUR.id }); + expect(trockenlauf.status).toBe("ERLEDIGT"); + const ausrollen = await vorgangLaufen("AUSROLLEN", { + eingabe: { trockenlaufId: trockenlauf.id }, + angefordertVonId: AKTEUR.id, + }); + return { plan: trockenlauf.plan as unknown as Plan, ausrollen }; +} + +/** Deployment-Zugang wie im Assistenten: deploy auf B, Private Key auf A, Alias zu-b. */ +async function deploymentZugang() { + const a = await eingerichteterHost(zielA, "ziel-a"); + const b = await eingerichteterHost(zielB, "ziel-b"); + const konto = await vorgangLaufen("ZIELKONTO_ANLEGEN", { + hostId: b.id, + eingabe: { benutzer: "deploy", modus: "KEINER", befehle: [] }, + }); + expect(konto.fehler).toBeNull(); + const schluessel = await dienstSchluessel("deploy-a-b"); + await privateVerwendungAnlegen( + { + schluesselId: schluessel.id, + hostId: a.id, + zielbenutzer: "root", + pfad: "~/.ssh/id_ed25519_deploy", + sshConfig: { alias: "zu-b", hostName: "ziel-b", benutzer: "deploy", port: 22 }, + knownHostsFuer: [b.id], + }, + AKTEUR, + ); + await publicVerwendungAnlegen( + { schluesselId: schluessel.id, hostId: b.id, zielbenutzer: "deploy" }, + AKTEUR, + ); + const { ausrollen } = await trockenlaufUndAusrollen(schluessel.id); + expect(ausrollen.fehler).toBeNull(); + const vorher = await befehlAlsRoot(zielA, "ssh -o BatchMode=yes -o StrictHostKeyChecking=yes zu-b id -un"); + expect(vorher.stdout.trim()).toBe("deploy"); + return { a, b, schluessel }; +} + +describe("Widerruf", () => { + it("entfernt Public Key, Private Key, config, known_hosts und auf Wunsch das Zielkonto", async () => { + const { schluessel } = await deploymentZugang(); + const blob = schluessel.publicKey.split(" ")[1]!; + + await widerrufEinleiten([schluessel.id], AKTEUR, { privatErlaubt: true }); + const { plan, ausrollen } = await trockenlaufUndAusrollen(schluessel.id); + expect(plan.ziele.every((z) => !z.fehler)).toBe(true); + expect(ausrollen.fehler).toBeNull(); + + expect((await befehlAlsRoot(zielB, "cat /home/deploy/.ssh/authorized_keys")).stdout).not.toContain(blob); + const ssh = await befehlAlsRoot(zielA, "ls -a /root/.ssh; cat /root/.ssh/config /root/.ssh/known_hosts"); + expect(ssh.stdout).not.toContain("id_ed25519_deploy"); + expect(ssh.stdout).not.toContain("zu-b"); + expect(ssh.stdout).not.toContain("ssh-ed25519"); + const danach = await befehlAlsRoot(zielA, "ssh -o BatchMode=yes -o ConnectTimeout=5 zu-b id -un"); + expect(danach.code).not.toBe(0); + + // Zielkonto: erst nach den Schluesseln, dann Abschluss. + const konto = await prisma.zielkonto.findFirstOrThrow({ where: { benutzername: "deploy" } }); + const vorgaenge = await widerrufZielkontenEntfernen([schluessel.id], [konto.id], AKTEUR); + for (const v of vorgaenge) await vorgangAusfuehren(v.id, HANDLER); + expect((await prisma.vorgang.findUniqueOrThrow({ where: { id: vorgaenge[0]!.id } })).fehler).toBeNull(); + expect((await befehlAlsRoot(zielB, "id deploy")).code).not.toBe(0); + + const [ergebnis] = await widerrufAbschliessen([schluessel.id], AKTEUR); + expect(ergebnis?.status).toBe("WIDERRUFEN"); + const protokoll = await prisma.protokoll.findMany({ where: { fingerprint: schluessel.fingerprint } }); + expect(protokoll.map((p) => p.aktion)).toEqual( + expect.arrayContaining(["schluessel.widerruf.eingeleitet", "schluessel.widerrufen"]), + ); + expect(JSON.stringify(protokoll.map((p) => [p.details, p.diff]))).not.toContain("PRIVATE KEY"); + }); + + it("bleibt im Zwischenzustand, wenn ein Host nicht erreichbar ist", async () => { + const { b, schluessel } = await deploymentZugang(); + await widerrufEinleiten([schluessel.id], AKTEUR, { privatErlaubt: true }); + + // B „faellt aus“: ein Port, auf dem niemand lauscht. + await prisma.host.update({ where: { id: b.id }, data: { port: 1 } }); + const { plan } = await trockenlaufUndAusrollen(schluessel.id); + expect(plan.ziele.find((z) => z.hostName === "ziel-b")?.fehler).toBeTruthy(); + expect(plan.ziele.find((z) => z.hostName === "ziel-a")?.fehler).toBeUndefined(); + + const [offen] = await widerrufAbschliessen([schluessel.id], AKTEUR); + expect(offen?.status).toBe("OFFEN"); + expect(offen?.offen.map((o) => o.ziel)).toEqual(["deploy@ziel-b:~/.ssh/authorized_keys"]); + expect((await prisma.schluessel.findUniqueOrThrow({ where: { id: schluessel.id } })).status).toBe( + "AKTIV", + ); + // Was ging, ist trotzdem weg: der Private Key auf A. + expect((await befehlAlsRoot(zielA, "ls /root/.ssh")).stdout).not.toContain("id_ed25519_deploy"); + + // B ist zurueck: ein neuer Dry-Run erledigt den Rest. + await prisma.host.update({ where: { id: b.id }, data: { port: zielB.port } }); + const { ausrollen } = await trockenlaufUndAusrollen(schluessel.id); + expect(ausrollen.fehler).toBeNull(); + const [fertig] = await widerrufAbschliessen([schluessel.id], AKTEUR); + expect(fertig?.status).toBe("WIDERRUFEN"); + }); +}); diff --git a/tests/widerruf.test.ts b/tests/widerruf.test.ts new file mode 100644 index 0000000..6fd8299 --- /dev/null +++ b/tests/widerruf.test.ts @@ -0,0 +1,346 @@ +import { afterAll, beforeEach, describe, expect, it } from "vitest"; +import { prisma } from "@/lib/db"; +import { BESTAETIGUNG_NOETIG, RECHTE } from "@/server/auth/rechte"; +import { schluesselListe } from "@/server/queries/schluessel"; +import { widerrufUebersicht } from "@/server/queries/widerruf"; +import { + VerwendungsFehler, + publicVerwendungAnlegen, + trockenlaufStarten, +} from "@/server/services/verwendungen"; +import { + WiderrufFehler, + widerrufAbschliessen, + widerrufEinleiten, + widerrufZielkontenEntfernen, + zielkontoKandidaten, +} from "@/server/services/widerruf"; +import { datenbankLeeren } from "./hilfen/db"; +import { datenbankAlsText, warteschlangeStoppen } from "./hilfen/vorgang"; +import { ed25519Blob, zeile } from "./ssh/hilfen"; + +/** Widerruf und Massenwiderruf (#024): Zustaende, Rechte, Protokoll. */ + +let admin: { id: string; name: string }; +let a: { id: string; name: string }; +let b: { id: string; name: string }; +let zaehler = 0; + +afterAll(async () => { + await warteschlangeStoppen(); +}); + +beforeEach(async () => { + await datenbankLeeren(); + admin = await prisma.benutzer.create({ + data: { name: "Ada Admin", rolle: "ADMIN" }, + select: { id: true, name: true }, + }); + a = await prisma.host.create({ + data: { name: "srv-a", adresse: "10.0.0.1" }, + select: { id: true, name: true }, + }); + b = await prisma.host.create({ + data: { name: "srv-b", adresse: "10.0.0.2" }, + select: { id: true, name: true }, + }); +}); + +async function schluessel(name: string, daten: { kategorie?: "PERSON" | "DIENST" | "DEPLOYMENT" } = {}) { + zaehler += 1; + return prisma.schluessel.create({ + data: { + name, + slug: `k-${zaehler}`, + typ: "ED25519", + kategorie: daten.kategorie ?? "DIENST", + publicKey: zeile("ssh-ed25519", ed25519Blob(), `k-${zaehler}`), + fingerprint: `SHA256:test${zaehler}`, + kommentar: `k-${zaehler}`, + }, + select: { id: true, name: true, fingerprint: true }, + }); +} + +/** Public auf B (ausgerollt) und Private auf A (ausgerollt) – wie nach dem Assistenten. */ +async function ausgerollt(schluesselId: string, benutzerB = "deploy") { + const jetzt = new Date(); + const oeffentlich = await prisma.publicVerwendung.create({ + data: { + schluesselId, + hostId: b.id, + zielbenutzer: benutzerB, + zustand: "AUSGEROLLT", + zuletztAngewendetAm: jetzt, + }, + }); + const privat = await prisma.privateVerwendung.create({ + data: { + schluesselId, + hostId: a.id, + zielbenutzer: "root", + pfad: `~/.ssh/id_${schluesselId}`, + sshConfig: { alias: "zu-b", hostName: "srv-b", benutzer: benutzerB, port: 22 }, + zustand: "AUSGEROLLT", + zuletztAngewendetAm: jetzt, + }, + }); + return { oeffentlich, privat }; +} + +async function fehlerVon(versuch: Promise): Promise { + const fehler = await versuch.then( + () => undefined, + (f: unknown) => f, + ); + expect(fehler).toBeInstanceOf(Error); + return fehler as Error; +} + +describe("Widerruf einleiten", () => { + it("merkt alle Verwendungen zum Entfernen vor und laesst den Status noch AKTIV", async () => { + const s = await schluessel("Backup"); + const { oeffentlich, privat } = await ausgerollt(s.id); + // Nie ausgerollt: auf dem Host steht nichts, die Verwendung ist sofort erledigt. + const geplant = await prisma.publicVerwendung.create({ + data: { schluesselId: s.id, hostId: a.id, zielbenutzer: "root" }, + }); + + await widerrufEinleiten([s.id], admin, { privatErlaubt: true }); + + const nachher = await prisma.schluessel.findUniqueOrThrow({ + where: { id: s.id }, + select: { status: true, widerrufEingeleitetAm: true }, + }); + expect(nachher.status).toBe("AKTIV"); + expect(nachher.widerrufEingeleitetAm).not.toBeNull(); + expect((await prisma.publicVerwendung.findUniqueOrThrow({ where: { id: oeffentlich.id } })).zustand).toBe( + "ENTFERNEN", + ); + expect((await prisma.publicVerwendung.findUniqueOrThrow({ where: { id: geplant.id } })).zustand).toBe( + "ENTFERNT", + ); + expect((await prisma.privateVerwendung.findUniqueOrThrow({ where: { id: privat.id } })).zustand).toBe( + "ENTFERNEN", + ); + + const eintrag = await prisma.protokoll.findFirstOrThrow({ + where: { aktion: "schluessel.widerruf.eingeleitet" }, + }); + expect(eintrag.fingerprint).toBe(s.fingerprint); + expect(eintrag.akteurName).toBe("Ada Admin"); + expect(eintrag.details).toMatchObject({ public: 2, privat: 1, ohneHostZugriff: 1 }); + expect(await datenbankAlsText()).not.toContain("PRIVATE KEY"); + }); + + it("ist idempotent und sperrt neue Zuweisungen", async () => { + const s = await schluessel("Backup"); + await ausgerollt(s.id); + await widerrufEinleiten([s.id], admin, { privatErlaubt: true }); + const erstes = (await prisma.schluessel.findUniqueOrThrow({ where: { id: s.id } })).widerrufEingeleitetAm; + await widerrufEinleiten([s.id], admin, { privatErlaubt: true }); + expect( + (await prisma.schluessel.findUniqueOrThrow({ where: { id: s.id } })).widerrufEingeleitetAm, + ).toEqual(erstes); + const fehler = await fehlerVon( + publicVerwendungAnlegen({ schluesselId: s.id, hostId: a.id, zielbenutzer: "backup" }, admin), + ); + expect(fehler).toBeInstanceOf(VerwendungsFehler); + expect(fehler.message).toMatch(/widerrufen/); + }); + + it("verlangt fuer Private Keys das Admin-Recht", async () => { + const s = await schluessel("Backup"); + await ausgerollt(s.id); + const fehler = await fehlerVon(widerrufEinleiten([s.id], admin, { privatErlaubt: false })); + expect(fehler).toBeInstanceOf(WiderrufFehler); + expect(fehler.message).toMatch(/nur ein Admin/); + // Nichts vorgemerkt. + expect(await prisma.publicVerwendung.count({ where: { zustand: "ENTFERNEN" } })).toBe(0); + + // Ein reiner Public-Key-Widerruf geht auch ohne. + const person = await schluessel("Laptop Alice", { kategorie: "PERSON" }); + await prisma.publicVerwendung.create({ + data: { schluesselId: person.id, hostId: b.id, zielbenutzer: "alice", zustand: "AUSGEROLLT" }, + }); + await widerrufEinleiten([person.id], admin, { privatErlaubt: false }); + }); + + it("weist den Deployment-Key und bereits widerrufene Schluessel ab", async () => { + const deployment = await schluessel("Deployment", { kategorie: "DEPLOYMENT" }); + expect( + (await fehlerVon(widerrufEinleiten([deployment.id], admin, { privatErlaubt: true }))).message, + ).toMatch(/Deployment-Key/); + const alt = await schluessel("Alt"); + await prisma.schluessel.update({ where: { id: alt.id }, data: { status: "WIDERRUFEN" } }); + expect((await fehlerVon(widerrufEinleiten([alt.id], admin, { privatErlaubt: true }))).message).toMatch( + /bereits widerrufen/, + ); + }); + + it("erledigt Verwendungen auf archivierten Hosts sofort", async () => { + const s = await schluessel("Backup"); + const v = await prisma.publicVerwendung.create({ + data: { schluesselId: s.id, hostId: b.id, zielbenutzer: "deploy", zustand: "AUSGEROLLT" }, + }); + await prisma.host.update({ where: { id: b.id }, data: { archiviertAm: new Date() } }); + await widerrufEinleiten([s.id], admin, { privatErlaubt: true }); + expect((await prisma.publicVerwendung.findUniqueOrThrow({ where: { id: v.id } })).zustand).toBe( + "ENTFERNT", + ); + const eintrag = await prisma.protokoll.findFirstOrThrow({ + where: { aktion: "schluessel.widerruf.eingeleitet" }, + }); + expect(eintrag.details).toMatchObject({ archivierteHosts: ["srv-b"] }); + }); +}); + +describe("Dry-Run fuer den Widerruf", () => { + it("nimmt die zum Entfernen vorgemerkten Ziele mehrerer Schluessel in einen Trockenlauf", async () => { + const eins = await schluessel("Eins"); + const zwei = await schluessel("Zwei"); + await ausgerollt(eins.id); + await prisma.publicVerwendung.create({ + data: { schluesselId: zwei.id, hostId: b.id, zielbenutzer: "deploy", zustand: "AUSGEROLLT" }, + }); + await widerrufEinleiten([eins.id, zwei.id], admin, { privatErlaubt: true }); + + const id = await trockenlaufStarten({ schluesselIds: [eins.id, zwei.id] }, admin, true); + const vorgang = await prisma.vorgang.findUniqueOrThrow({ where: { id } }); + expect(vorgang.art).toBe("TROCKENLAUF"); + expect(vorgang.schluesselId).toBeNull(); + const ziele = (vorgang.eingabe as { ziele: { hostId: string; zielbenutzer: string; art?: string }[] }) + .ziele; + // Beide Schluessel auf B/deploy ergeben ein Ziel, dazu der Private Key auf A. + expect(ziele).toHaveLength(2); + expect(ziele).toContainEqual({ hostId: b.id, zielbenutzer: "deploy" }); + expect(ziele).toContainEqual({ hostId: a.id, zielbenutzer: "root", art: "privat" }); + }); +}); + +describe("Widerruf abschliessen", () => { + it("bleibt im Zwischenzustand, solange eine Entfernung offen ist", async () => { + const s = await schluessel("Backup"); + const { oeffentlich, privat } = await ausgerollt(s.id); + await widerrufEinleiten([s.id], admin, { privatErlaubt: true }); + + // B war nicht erreichbar: der Private Key auf A ist weg, der Public Key auf B noch nicht. + await prisma.privateVerwendung.update({ where: { id: privat.id }, data: { zustand: "ENTFERNT" } }); + const [ergebnis] = await widerrufAbschliessen([s.id], admin); + expect(ergebnis?.status).toBe("OFFEN"); + expect(ergebnis?.offen.map((o) => o.ziel)).toEqual(["deploy@srv-b:~/.ssh/authorized_keys"]); + expect((await prisma.schluessel.findUniqueOrThrow({ where: { id: s.id } })).status).toBe("AKTIV"); + expect((await widerrufUebersicht([s.id])).offen).toHaveLength(1); + + await prisma.publicVerwendung.update({ where: { id: oeffentlich.id }, data: { zustand: "ENTFERNT" } }); + const [fertig] = await widerrufAbschliessen([s.id], admin); + expect(fertig?.status).toBe("WIDERRUFEN"); + expect((await prisma.schluessel.findUniqueOrThrow({ where: { id: s.id } })).status).toBe("WIDERRUFEN"); + const eintrag = await prisma.protokoll.findFirstOrThrow({ where: { aktion: "schluessel.widerrufen" } }); + expect(eintrag.fingerprint).toBe(s.fingerprint); + + // Ein zweiter Abschluss aendert nichts und protokolliert nicht doppelt. + await widerrufAbschliessen([s.id], admin); + expect(await prisma.protokoll.count({ where: { aktion: "schluessel.widerrufen" } })).toBe(1); + }); + + it("schliesst ohne eingeleiteten Widerruf nicht ab", async () => { + const s = await schluessel("Backup"); + expect((await fehlerVon(widerrufAbschliessen([s.id], admin))).message).toMatch( + /kein Widerruf eingeleitet/, + ); + }); + + it("setzt ROTIERT, wenn ein aktiver Nachfolger existiert (#023)", async () => { + const alt = await schluessel("Alt"); + const neu = await schluessel("Neu"); + await prisma.schluessel.update({ where: { id: neu.id }, data: { vorgaengerId: alt.id } }); + await widerrufEinleiten([alt.id], admin, { privatErlaubt: true }); + const [ergebnis] = await widerrufAbschliessen([alt.id], admin); + expect(ergebnis?.status).toBe("ROTIERT"); + expect(await prisma.protokoll.count({ where: { aktion: "schluessel.rotiert" } })).toBe(1); + }); +}); + +describe("Zielkonten beim Widerruf", () => { + it("bietet nur von sshkv angelegte Konten an und nennt weitere Nutzer", async () => { + const s = await schluessel("Deploy A"); + const andere = await schluessel("Deploy C"); + await ausgerollt(s.id); + const konto = await prisma.zielkonto.create({ data: { hostId: b.id, benutzername: "deploy" } }); + // Ein vorhandenes, nicht von sshkv angelegtes Konto taucht nicht auf. + await prisma.zielkonto.create({ data: { hostId: a.id, benutzername: "root2", vonSshkvAngelegt: false } }); + + expect(await zielkontoKandidaten([s.id])).toEqual([ + expect.objectContaining({ + id: konto.id, + benutzername: "deploy", + hostName: "srv-b", + nochGenutztVon: [], + }), + ]); + + await prisma.publicVerwendung.create({ + data: { schluesselId: andere.id, hostId: b.id, zielbenutzer: "deploy", zustand: "AUSGEROLLT" }, + }); + expect((await zielkontoKandidaten([s.id]))[0]?.nochGenutztVon).toEqual(["Deploy C"]); + // Beide gemeinsam widerrufen: niemand nutzt das Konto weiter. + expect((await zielkontoKandidaten([s.id, andere.id]))[0]?.nochGenutztVon).toEqual([]); + }); + + it("entfernt Zielkonten erst nach den Schluesseln und nie ein noch genutztes", async () => { + const s = await schluessel("Deploy A"); + const { oeffentlich, privat } = await ausgerollt(s.id); + const konto = await prisma.zielkonto.create({ data: { hostId: b.id, benutzername: "deploy" } }); + await widerrufEinleiten([s.id], admin, { privatErlaubt: true }); + + expect((await fehlerVon(widerrufZielkontenEntfernen([s.id], [konto.id], admin))).message).toMatch( + /erst entfernt, wenn die Schlüssel/, + ); + + await prisma.publicVerwendung.update({ where: { id: oeffentlich.id }, data: { zustand: "ENTFERNT" } }); + await prisma.privateVerwendung.update({ where: { id: privat.id }, data: { zustand: "ENTFERNT" } }); + const andere = await schluessel("Deploy C"); + const fremd = await prisma.publicVerwendung.create({ + data: { schluesselId: andere.id, hostId: b.id, zielbenutzer: "deploy", zustand: "AUSGEROLLT" }, + }); + expect((await fehlerVon(widerrufZielkontenEntfernen([s.id], [konto.id], admin))).message).toMatch( + /noch von „Deploy C“ genutzt/, + ); + + await prisma.publicVerwendung.delete({ where: { id: fremd.id } }); + const vorgaenge = await widerrufZielkontenEntfernen([s.id], [konto.id], admin); + expect(vorgaenge).toEqual([{ id: expect.any(String), beschriftung: "deploy@srv-b" }]); + const vorgang = await prisma.vorgang.findUniqueOrThrow({ where: { id: vorgaenge[0]!.id } }); + expect(vorgang).toMatchObject({ + art: "ZIELKONTO_ENTFERNEN", + hostId: b.id, + eingabe: { benutzer: "deploy" }, + }); + }); +}); + +describe("Rechte und Ablauf", () => { + it("Massenwiderruf und Zielkonten nur fuer Admins mit frischer Bestaetigung", () => { + expect(RECHTE.massenwiderruf).toEqual(["ADMIN"]); + expect(BESTAETIGUNG_NOETIG.has("massenwiderruf")).toBe(true); + expect(BESTAETIGUNG_NOETIG.has("zielkontenVerwalten")).toBe(true); + }); + + it("zeigt aktive Schluessel mit vergangenem Ablaufdatum unter „abgelaufen“", async () => { + const s = await schluessel("Projekt X"); + const frisch = await schluessel("Projekt Y"); + await prisma.schluessel.update({ + where: { id: s.id }, + data: { ablaufAm: new Date("2020-01-01T00:00:00Z") }, + }); + await prisma.schluessel.update({ + where: { id: frisch.id }, + data: { ablaufAm: new Date("2999-01-01T00:00:00Z") }, + }); + expect((await schluesselListe({ status: "ABGELAUFEN" })).map((k) => k.name)).toEqual(["Projekt X"]); + expect((await schluesselListe({ status: "AKTIV" })).map((k) => k.name)).toEqual(["Projekt Y"]); + // Automatisch entfernt wird nichts: der Status in der Datenbank bleibt AKTIV. + expect((await prisma.schluessel.findUniqueOrThrow({ where: { id: s.id } })).status).toBe("AKTIV"); + }); +});