From cebb59d910983bf6b4ba11c1daf5d0a6375b9705 Mon Sep 17 00:00:00 2001 From: qcigano Date: Tue, 4 Aug 2026 16:37:46 +0200 Subject: [PATCH] =?UTF-8?q?Zugangsseite:=20echte=20Fotos=20f=C3=BCr=20Dogi?= =?UTF-8?q?=20+=20VanVan,=20"Dogi"=20statt=20"qciga",=20Herz=20statt=20Sch?= =?UTF-8?q?l=C3=BCssel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - qciga-Fenster zeigt jetzt Dogi (Name + echtes Foto) statt Icon-Platzhalter — Rolle/Code-Prüfung im Hintergrund bleibt unverändert "qciga" (nur die Anzeige wurde umbenannt). - VanVan-Fenster bekommt ein neues, eigenes Foto für die Zugangsseite. - Beide Quellfotos (~1,8 MB PNG) auf 400×400 zugeschnitten (gesichtsfokussiert) und als WebP komprimiert (7–14 KB) — eigene Dateien nur für diese Seite, NICHT die sitehweit verwendete öffentliche vanvan-portrait.png ersetzt oder angetastet. - Schlüssel-Emoji im Dogi-Button durch 🩵 (Baby-Blau-Herz) ersetzt, passend zur Cyan-Akzentfarbe seines Fensters. - functions/_middleware.js: alte Freigabe von /img/vanvan-portrait.png entfernt, stattdessen gezielt nur die zwei neuen Avatar-Dateien freigegeben (kein Shop-/Kundendatum). Per Build + wrangler pages dev + Browsertest verifiziert: beide Avatare laden korrekt (200), alte Foto-Freigabe korrekt entfernt (wieder 302), Layout/Funktion unverändert intakt. --- functions/_middleware.js | 12 ++++++------ public/gate.html | 10 +++++----- public/img/gate-avatar-dogi.webp | Bin 0 -> 7464 bytes public/img/gate-avatar-vanvan.webp | Bin 0 -> 13858 bytes 4 files changed, 11 insertions(+), 11 deletions(-) create mode 100644 public/img/gate-avatar-dogi.webp create mode 100644 public/img/gate-avatar-vanvan.webp diff --git a/functions/_middleware.js b/functions/_middleware.js index 69df9a1..fa732ef 100644 --- a/functions/_middleware.js +++ b/functions/_middleware.js @@ -76,16 +76,16 @@ const OEFFENTLICHE_SEITEN = new Set([ Registrierung auf /admin/ mit einem echten Browserfehler fehl, sobald jemand /admin/ ohne gültige Haupt-Gate-Sitzung aufruft (z.B. direkt per Lesezeichen, ohne vorher die Haupt-Seite besucht/eingeloggt zu haben). - /img/vanvan-portrait.png (04.08.2026 ergänzt): wird als Avatar-Foto direkt AUF der - Zugangscode-Seite selbst gezeigt (siehe gate.html) — ohne Freigabe zeigt das Foto dort nur einen - leeren Kreis, weil selbst dieses eine Bild noch hinter der Schranke lag, die es doch gerade - anzeigen soll. Kein Shop-/Kundendatum, sondern VanVans eigenes öffentliches Porträtfoto (wird - nach dem Öffentlich-Schalten ohnehin überall sichtbar sein, z.B. Startseite). */ + /img/gate-avatar-dogi.webp + /img/gate-avatar-vanvan.webp (04.08.2026 ergänzt, ersetzt die + frühere Freigabe von /img/vanvan-portrait.png): eigene, extra für die Zugangscode-Seite selbst + angelegte Avatar-Fotos (siehe gate.html) — ohne Freigabe zeigt das Foto dort nur einen leeren + Kreis, weil selbst dieses eine Bild noch hinter der Schranke läge, die es doch gerade anzeigen + soll. Keine Shop-/Kundendaten, nur die beiden Profilfotos für die Zugangsseite. */ function istOeffentlichErreichbar(pfad) { const ohneSlash = pfad.endsWith("/") && pfad.length > 1 ? pfad.slice(0, -1) : pfad; if (OEFFENTLICHE_SEITEN.has(ohneSlash)) return true; if (pfad.startsWith("/_astro/") && pfad.endsWith(".css")) return true; - if (pfad === "/img/vanvan-portrait.png") return true; + if (pfad === "/img/gate-avatar-dogi.webp" || pfad === "/img/gate-avatar-vanvan.webp") return true; if (/^\/(logo\.png|favicon\.ico|favicon-\d+x\d+\.png|apple-touch-icon\.png|icon-\d+(-maskable)?\.png|sw\.js|manifest\.webmanifest)$/.test(pfad)) return true; return false; } diff --git a/public/gate.html b/public/gate.html index a82b8ee..638fbc9 100644 --- a/public/gate.html +++ b/public/gate.html @@ -288,13 +288,13 @@
-

qciga

+

Dogi

- + - +
@@ -302,7 +302,7 @@

VanVan

diff --git a/public/img/gate-avatar-dogi.webp b/public/img/gate-avatar-dogi.webp new file mode 100644 index 0000000000000000000000000000000000000000..46480a7d47c45a26fbe44dc88aaea1f97f927681 GIT binary patch literal 7464 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 m9xFe}U^2w{ei#9)lrV7a_kaMO9eGv& literal 0 HcmV?d00001 diff --git a/public/img/gate-avatar-vanvan.webp b/public/img/gate-avatar-vanvan.webp new file mode 100644 index 0000000000000000000000000000000000000000..5b6713d75f6edd9abe686249b13eb5475b1a86b6 GIT binary patch literal 13858 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 <>yLMkc2R!w@T}$T=D{K zAHwJM2$}0qE&BxhZ^!+~R{h<;Zuv^mO*A@CMBUISce{VRWW_7YyoT6&g!$gYPgHP> zdjp}|o+f>xpL^LBAn%m7C*Tn8Q}QMBD9Y(BAf2hWcz2 z6Bs+2psZ4&TkBpHeSI#G4>t}yZ-=UYv)pV=-~;0OwdMC^;+>j)kc7)i(^6U4SwMre8Ze~lE7+^ zWJ|Sg>KnH?XgLjwnij*iip5`xKG2F3(o=U=ER*wCjWTy(LW_{*2c`Nx*7vN`_R=tG zVL;CB0|{-1RbI|Ks{2|2{-uo-QW#%No}WLYdi+5B@JaasXWQK3=gc!O`P~Fl$$Q1Y zfv7#fiZr3KpqAkac{kB7Uz-vL1po3G+ppWAz{kPHdBZB(uUt%i{gDfPYNwu3#5|Mt ztb);C5_TYFw&nG|CC{=!z*O-QN{AJ?Up~2lI=$9(0rm{)km4&^y|U80xc zzfa{H4=_RywzF?fbGl!v-F)e?Jxt5CINNgut14NZLC6*oWxeu(>;3}g?D>zS_%Q@h!{p6v9?{BM`xqXBw0u_?A;9QD&owT3namvYzJ<1UC*m0 zvMB`#lZHQ|`+g~Q?E*4%iov-rR9Nk-AcFMrOTADGz2HsPO`r0+H`K;fz>e?seFU+U zXs${&EKg6RiR_32VO>={caxGf<(w>k_z%MAC{IXa%KoM7$LNuCR$FEX??}%O1>>Rc zkY-JT9pGTakFdP1vU{9o3r^&`puwc5gy4a0A7!638Y9d}7P|&pa{Ak$YN>_GTzP}nE z+WiUt93dK`?{(}{TYXQQq41UosgP%O4) zkQtM+B5369@r?~$1paCL?Hfb12IHK&ig(*`w`OcQ+!dEB1?8LEhbxW=r0iswpg5T6 zqggs+FJ0cmKht=Kkw#qC7n5yrEJ_ z45;CTadJ)1u&nL>Fa+~5b8EhS-CE6O$f~r5?d$BS%0^MM@R_NGw9R-H-%K9*Pn)9EEy zCCEwLEOaFh`*R*PQNK^~pTx#n1K^zgcQu&CP-!~2Z~lDQT`6;Sn{iy!hub~mHr)08 z;DUXj62_thfp`CRHFOJNu;?Es^eW5NPt(ZK?v-A5Gs|^g&jEF`f%N84EH}dFpB-!v zRx%Bu(8T{oH1;_Pj4eVbCHwtO>8C!L;qAac${tz#vi!^_gce(EupTmJh8L^rJ;Ylm zrMH2w7O;MNuBZKucl>AT_z#p`RDemJmToW`ae?|uxVL3UBX!OqN9wK&U#~flOcOia z;{*3#RNHv{kU{ec6Lc?=sw4`~VD>n_dvOKwn#adpd1nOzQw5*Psj&N}=PVBHogP#R z)6RW1;O65H~Ubk=4Fo+&cK2uxUcP=^+-Agf#1;4ZrhIZM|G*V zCeVI4clV|EW%aaAiWWMWK?81gD&Ndv?P}kW1En&0HR)z7gV1~J4>&gax^nhR=198z zt^{H^ib0+NGOpkGvo)CrdqOrZ(c{WqQ)hDcGSoNY(LfrW_cIVd1ht$+u(07<|FWi| z5%C4E1kF@f#;wGA6J4=pdwHL!55njPS63MX-XVN+VV>fP>>!vnLI=MGiSPi9H+_V0 zTqaZQSKK4ZWJa98B(+96vgH@6$=l8{Wbu&VEy~Al4b!z-2LqYE6Y*hIq_aEdebS~r z9vyczAdCS9&xA=b(Qq)fPb{E-LZXCV%Ej57;Y`Paj=kz7Bz0SORZpia<0{g~pHZd! z@I|H7_@$0d|6nkM&syR{1fe~)Z$Q|jA4X9UD+(dk1`I}!QwXRKY6L~n3JvpbBK+Z_H>_282#nm~>Vr6*|)lGlc3bW>5q`YduyPv@_C5YV?6kF%EZ!+Ir0LKZua3Y< zIcVM8h|OifBgS`_xvhKNuF+e6XIMXM+~fOHw;5GvgE|vfQwSHY_uST6F35oO6Fsji zrJZ+LwFttpfVLgJQ=yV~yi^{~FuB=Aab}QBI6?@t6dVcFV#dH3WGN^jn(>C>=#gM& z$*CUi*cT_Qn7PHprmxb#?HIedGY9gUy*C9OGbaj-<&)MGc*EOOBZ72!0HOX13>8wi zo{f2Umboqu?i%?ZpTc2<7b>Xn@`7P_lUR8v^T+t(0UA@J0-y2CkP`-fTcL3}72?jl zF`*Ecd#v)&nPI4|lj2f8vIJd__uqcMy{yO@vy<^w?@jC!D0ZbZQ|fmD?9va*k+`bu z@cZeSGXh9u9LvxbWiqqqbRX1gwlk0MtjeL{NHc%6yR!;00ET|C>oeBbF^m~3mTKhO z?|{*y?*f-^mBq5pcGDHNkF+pS(dy-g3wfh(*?_SS&$fx@H_)k>m@38$hEaxPzrHJ4 zK>8F1Ss{HYw#sjl>ZZ?dCEk9NQn_jSqUh(ymPJ9N-g&30UEaiIm7Gq-^3>(fY=4!N zA_-|qKU*y`d!x<|v=BrwwOp-CDf}$LAQdB3yIT`g;h=CO$^YdltJ8B^;hv3y;eTW_ zO^Qk^P;tC>eo``sQF98$#iSU+fF@fpv=R?m5T9H80!DF-EhB~XW*zyv9WjT{hzG@@ z%c$_){FNSJ?T7}g+b`_m-xen~ku(D|qVLWm5$sVy{?(lcIh|VxYey)-*(=SqL`(T> zP>PLc*dCOr8$VT{GB+@_sddHx#Q(I@wl2SaPZ^YoCSYih2{ou#r9%u2=ZgM{Hk;>= z<8CX>p&ck3-v+8icK}p1qBxe2pj7XtVm41c5pgG!QSb689gZKq58vAWk`aJ4SLLfx?Tf zaG3V;2b%;yX}eiGg;pA_E`k$)ah@0Q>ybOE@CLM!o$hey-k5OKtxJD>eKU~J}N6W3J0}H zl^>cxeK-2;S|*Lwk;we}lTWOp`ZU1IOgZ=}W$8!aLmP57!LEO>v4usN^IOn(4JTA8 zg3$p0ky6bapW!95mrtdkivz*BsMDyq2s6y4E27cwjBjJ4yanhcPHu93)~wG$$cU_9 z4B+(@0{jHhrdHd=A+Dp|+2G_$NGq7w3r2+4e1EZB?NbEb>@)3ft|)a+0^fbJo3+@N z*QHb(F^874UTrdzvDIrs;@gFd>3!>qDv4eU+d5gq{ip4QP*~ixa2o4#YO3fOjH2{x zGOY`Cn1uS^(GhY0>4hg`%3Nt1L80;vUt@k+P2cAY#n3OW=z=W5cj#g2?FzJy zLO<1adRO8rY7@M4Wh*ni?{RxwU@rr$n)DD3(f@PhTfNm9dqqglf$w=?f61pvoW*Y5 za&w8@|BeG@`^qDvK0?$oI5S~2_s+jbajOlO+&w7Es|9oPiF*ZbwHt6pf@nC50r!7JY1a|kFF6wb$fIu~q0;F;lZxX%v7~Z{+MWw||;qUGA z;v%VBsFp>$KovcgV7tWlf`nQHW4loiVn4CmSo#-3ygYK@+gt%c?f$v!$?*$BP0z>6 z#1au^tl&UggaTjfmHVEDK^~;A1}p#}k~lXXf!wi%?PtZPcGX7{Qik1CdnYxh@_MnQ z@{HT~zV_1EdvCp`)iH3?-SpKnMfHK+M9f zjlKtA4x1L+1(EK5Fs6(#X?jDgR#<%HwI;HjqtAL3JoWVspB}*VTCTwpqy$a0A8iqG|)ii(* z%4+V^R#pcg(!>Ckt5S3)@r+i5N#=+bHpRf(R=AZBgn3cZu%FiX32fBo7{m|jsP6z3 z9gf=zI>d?9){|nMZS4mKDTXPbL0Oq)XWJnyFFS`ZhFay6oFhkdH zyJ5Xcn*fLQp?^LoB{>|fzNeW9# z*T-yIN(zFAmlP(4r95H#0S1172r_uTR-vn=_}O&W)d2gs2V)8UR$~qvZ)KTB*qe^S zr&(I$PWN*O5+V4W1kYfDtHSGlJ5N{<_ttHAC)pf+^O6yAW{HP$*JU<2tR>^20(*fI znP3f+ETT^;R_y_K{+(U4G`P>~D`&uBj?$B45joW@mNWu;J*a+j4f2AZa2ZnKgB}Cq zB3vcK{$=yBf$HPSWmJMlprQGN7~$6suxi;piZ@z1PJrS8r$JVyYMXv9P^LwEIe&2j zR^$wLQn=A;{Z31l3lW%2iZR-S2&thbCH4B-;1M^=SZ0i(U8#SEgWf{^Aw>ZQ3Bp%M z1dAu?Ml=y_J3sPHeh2!l8Qu_g*LBshy4sOQ>4Qgc2#R!NJJh2uGYs03smZ>kz9(^cdK4}g-B6*Jo%O0z~mUQR9!!b4zipT zt4`zg9OafxP-Llu4J(Q@V~I>zU?`T8kF^gLcdO zFYynhBqbYkp(zoJ7Prxc;rgZUGUca$!Pc?G20W#xpvXCV)bA4_Yk{Ym<}uPNB59xp z@@@>1wtSsD$y)?<^xEOeK896yi8N}6#W9x}LPu?edHZptK3zlc-^Kpig};nSUd)`6 z1!}n>P7Lz&!MXB{j}EO;z*dNqQr~AVW42>nNq~aMZo`wV;vzhec`AZIZ1crwICgwO ze@i95Arx}ujIXv=x4;TX)){w`ulo|GY5;1g*by|byO16--ZiRLdNeGCF6ZagLmXz8 z6WNP)%#2D9--n#hGnE@YZ%fqvX&)MsT_|8Zhr(kbWLO_zbZv!v%#w{D*#C}=IacaY z=wP>Z3D}PUO7lty4X`>wiOz8=xy>o@zHR(Y^ye>DHN2`m%U8n8BiBGFNV};1ZAY^0 zZyk`;kzZowJgAhkfK%w+Mh+J)oNyk)gkmH5=Wz{rj+MH^N!dvE<++U@OfJ}%UU-3g zddQ60d$IQS)Woj4$4yVmE_vg-aRE8X=78O=AXM9`2Cb$MsFJ?by>+FyH>N6H+%EK+ zs7sO;{2H)|Nj`mA2#mG@n^6is|>i`{8U}DZ1Q&Q=;V$1#$5EKppu4W;plM zosg0*I!FQK6`rCB?l~zQO|g;4mA36=y5<+{?p>jH>lbfTDo=sc3kAjN>Qg(?*(G~s z8P5Xv59vD`!i!0W73!TN6%%$h+u@`@JQ;&ffjLbvJIykQ?kI~?VLfja=b!>SikKMO z#|#SZLM6N7Dr$p_5t+S(;9fVKRsY?rc`RI(t^vV0BsssqxOp~#M} z+#~z|SJRb?AW~vU@wdmGlZ}MHQj}I_L7|bBeYf@Fkt-vor~k_WkvSJ~a~2v)_3RM$ zitn(s2Ye8l2<&5!o_>vRG%Bq*W#TYOjkV{i54?HaFNZMSO##)so~21US-!f13Tk`7 z1;CUqTrl2=Leo+bhsAk~sLOaZMFOQK8yP|1=+st~U6CNTOb}?~7YuI8>%`;L+j`mj zlOk}ff%m57YiVy>j*r$BV?RHhTd~;{w(au|a@Ihd9Z9V?J+~C0zVDAtXX&KA?dsWd zoUcqJYV^@I%eKTOb;R+tsLL&Dw6LdCOM-^oXIU-Q8slVtwcsC8uiiz46n&!)29*7@ z*>gFurMNOK{PNC4A^l@A8vEylSH+hC4*NUKVR48lmnjeKGs$asGELbL=Sw)O>zovM zn}c%; zJthgga=62D9U${2ZpFw`0R$_>9Q{-JUVgw~q5U-84#Zbl;m5v)Y_C#ChsOjV$uWr* zAuSTokCIuoKiVXE(P*jyaS2>y5r|^g#eC2WHzTuv%*?2Qr0{gV4cfD2yU{Uwh z9+pke2z$z6GoaAsYg};KPVV9(tGqKXUqs~@KYOY0fZ=0*io`K!T1;J9!LpN(Z-@b} zf2Ca&+TR!8%)B<9wX%}?0bm=Z$p0OyCRMXcKBp!F}Ic z=HBnl81(&lN2{iY+=b+PoA~n!q1)D+O8YDRiVBwoY|3(a+h{;6W zp~_Cww#vyuUVuvquRnW;c0D}iL&{FV$tEe8bE7{Rj871fP|d8$78H=FA`jz=fsv#5 z>(`ID#cC7Nj`D%+XUgaUKCarjXy?S!3MN@o&5>|-dLoAzgM@bnHY!daJRgf&x4RNb zQ^{hxVz6#{BJZ62Ib0gvRej&8`n3$Eput^(+;VcJ$mwQD*L!c7Z0L*j&t-2q{M+ep zymo!o>qIX)E%M5}>6OV^jf=?6tjbkbDNpD-6|MraOAG>rNkm0SCsWI{BKTkSQ%gwm zK94J0J_R!wdpnv<4QFTIz}2Uz;^I~=E?Q0IN$`k!n&a4Wl3%CezlqnVnlyEpyAp&F z+74vUr3`<~bu-$KAD@9+`XNgkF!J%{vI##bn`_AAkk@GJ{`RUceJi@Omc}X^!2NL1 zx=TeMTJ%%=kUfyEG_ha3{J)o>uv>RA-C$+8zUwcq?)ozHrUAk=YYus)Kh8n%)9?fWoanYw)-yopkb=Lo|u)#%U-Ig5)8o_Hm=>; zI!6NmrZuAo?wKHu;(VmAFB+YEdt$1!%>4IIa*Y?-TAek2tk3kn@C|Cvn=Z?%!kVaRO%lB{mXOpQcys&RWS zhF%<59Wdbf4ireIq4y_|=@(q}uMVo(OR_nO{xf7^-tWSHE>*MWEs7ToWRfwBSBkJ= zU6eXuUF9=?uO5HaIm2l{%N?rQL<9%ra|erA*t1Z@1jYg?6ExIk`|fvfaMsg@C8tOG zmTc2_$oBtIEuQp$E`=N7o<>eGa~#1T^Vo|zn59bVj>9`TJ(s><0ERS1lnPfXg>=?v zC*aF0S)zMteulNqY+;V@>*`2G4pw`E;62$r3nk*!9z2KO!V-Wsee|y#+Y(OJnT+AU zq7-A@pdJB8g1Xr_n*ZXXwj;}C&K`k`>&gH<#N{qq6c=Z|&x(m9a4FQ{+sB&`TB11n zj&@ZVa3FkBo?9vux@4b#bCvQK=W7rnlktmMw|lRHWx}RQ197~GD4{NvfxIw?lr=4( zVe))Y#nT*8br6W;7Iy;1Qn|&g6oZ9KI=ph8N9ZxpoLCioaNNNs4{rrKh2|4617|D| z(lT6NLnP;%nb#3DKqJ73Z%-*gFmhS95z+FOU`JD? zX(U-u*pzNTt&K}p$#g>QR35!;TEoZ*`U@ivRflW%R%M!2RI0Iql!l}oXegsxpApF5 zVu#*YOh~3RKyY3R6q%?Rxp!MY(6N9Rv4GQZ_baiFTFi%nJT1o$nj0^wS;?+=*k#fYh2! z=A)oYV?s^4k+cC?9v+=71V1khf>uPfr;aoldEUGilzDC8zPz7N(oCT2{p+5hE6qQJ?YK95zq# z^mqeqf*o(vUBm@9bmDv2zUVtZC`<ffAVrjetO=>{*TGw~C6hTV*V7(GRE zK(L0Q0vw!j9SAyERet2=;Eiglu=!cF&@UL_{Z$f2K1qvdwpb5q9$0Vqf@%TGBcz^P z5k+yeNdT+{xk%5%fhArLHM|u+Gpz`}%_?Kh8g5Ct7A}sYsDC=!*YaXF z!4e2)DBbJjj`sqo@7ZoO-a6t;KfuYcI!<|;&}n>p5;#1eVyXQO(b8VQ&_L6Wh$>aJ z7L*4Cj}~9)uo`IwF?^#MB1RnG1nzx27zTHdL|6b~0~WngV}{l$Cn0LYL0C@v!|aP1 k!zo2F9(ULPg9pc!Z6F!f3_C