From 4f681996d8cb5558e0eb460c7025204d4301f21b Mon Sep 17 00:00:00 2001 From: Alexander Huck Date: Mon, 20 Nov 2023 17:30:16 +0100 Subject: [PATCH 1/3] feat: add inovex logo to the auth success page --- internal/auth/assets/index.html | 16 ++++++++++++++++ internal/auth/assets/inovex.png | Bin 0 -> 17735 bytes internal/auth/handler.go | 22 ++++++++-------------- 3 files changed, 24 insertions(+), 14 deletions(-) create mode 100644 internal/auth/assets/index.html create mode 100644 internal/auth/assets/inovex.png diff --git a/internal/auth/assets/index.html b/internal/auth/assets/index.html new file mode 100644 index 0000000..a884024 --- /dev/null +++ b/internal/auth/assets/index.html @@ -0,0 +1,16 @@ + + + + CalendarSync + + +
+

CalendarSync authentication successful!

+

You can now close this window.

+
+
+

The CalendarSync project is powered by:

+ +
+ + diff --git a/internal/auth/assets/inovex.png b/internal/auth/assets/inovex.png new file mode 100644 index 0000000000000000000000000000000000000000..2548f77137596a9b8e22a8fb35f520f840e728bc GIT binary patch literal 17735 zcmeIaWmuG5)IU0kNGYh464FQxDlyU^q5^`1bc>+UGStulf`YVkBi#){Dj_*E3^hXy zLrJ&P**x!g&-e4`eE6Tau3_N5_r3PoYyDR2wf68$RprG^QaVxy1aed1s{KHzITh> zh9~a&XFf^GVI=0u?_V@vi0ngp6 z3zd5BZL>kt0ef=ojtjP0W6<=fk4DWKPY7hTB{0R^5fueh&(T`971&uz@uTb$6WO*epJ1@?zV5<-`76jGGOw;WLOGA#{NciP9cPozK56LhL{h zLy8g|UuY#WM^TL&XZd4K01wYu01y5hO~-@6{lgpx)9~OMCC@1h6fp*WQjoX61ZH4$ zBiNNSCNkfocrSKKp-eGSC!@ER>2&b}$By-q-rdSeUS;A4RIQ}Xa+oNzoxff~E{Ct; zeyz#|Vvfw<2Ym`)#LdeQ`qF3bnT(@a(lrIJDJ35Ws7U7rviK ze^)|)*ny5oUYS8X1dT#q+t%534|~5{4hjZ?oX^iUR)o9gZx*>xD%cpj#Uvf`mcJ>m zZQQ?!aa!7M2$WAFP*nnotJGUxy279tUL&zuNM9@h>XbETpdxU+_%BJ)~sf~OR&{wHorKQPciy7^Gh;v3YCqfwjR3^Tnv_W_eci*#k(9Wtu8 zwG0`#YDzAXbv{=hEvRSZbQ zZ)smWlgn6AaAB$|*0=M-{C0Wt6o}>?SoqLcSjpLRLPOef==pe|CPRk)^9z**nYVw- zUe>4N)J*SI8FWYy0{wFk!y$_M(w+})I79&Ij%Iq+}1I^hJT( z0o!)b;l6xl72nd4Gm1iNd$JMTQFeNUEVjBN zmSKl#WCW4oI8{`#RxDof{v_Zpn4Bu$A<-{nyezaft4p8A*geY7O7L0imSPHyJr8pg zpQt1UewN$NlMu$K;%JmuF%72Crc>vZ~*vp7}%lTXmRcbk} zns+Cg?OtLNd->ovyf;6wfW7z9Y{`N7<1A=#cd}`}8Q*+V7q1GVo#*G;NniJv=ZZAW0n0v3pCEA43 zyQt352xKXRzE_|RnMnl-^-gic802aEU}qV)(h1DX1ZwMNV6rnG=wFB2Rzv%BC=<+i zngIj$yp!@EfBrw$^lKU{;W3;EhtEyaaKKDId#O|yHLSB03|vMeIp$nZSIHd(@cxh% z;QbZpN`%s~r;<^S)#PX{P{e{lqoLO))QYBL=_5;04Ec>W-_qkcUGP4Yk9nOW_lEOcy51c=it z*v$I@Mc#9!;7Ws%IwTkH&Tjx_DZ5D>6z;6yhw3l@*22}MdKiPd*rAL${ZJ2K^ru)K z86xJ}fblp>-z3=f#rFL=AhWG)oySW0^}?c!$~40mr{y}}9Gze@G44R6lwbkRc{U>w zo%24vtIrJVSi?uszbr}=4EsWXcFYxi21Ev6Eu-Ep3!Uo@a1BX{wKook$@!bOqvQEM zapgH6!E@6=A#xSZS&z#eLA8s`4i$ST7bVu`RR52SM-sz-4Hdi&?*V{07tXS^<@+Vy z{F2n)sL*gBbjo;;v8H+cuQ)FVF%VO79gBSuhtJ;@8;2}s)bDR|M(OQ{D6qVas1q$Y z_>Y`P*KNEHhh`5m?eq|?$ggCWKz}mrqa#U4mrW$ou46xDrqf~ENj8lj<}RT2)QQaD zQ`F)oqo*a9@m3p^x{;9Y}_QUAaA-B3K4p zF;mmPox?tzRO=g|4PA^}wj`s2WQh1!S{O>7tuo^7SmM=J@!9+NsQg6wn|Xhx!j_O0 zul{q}e88=ivajC9{ZTGSRBC=e*ZXHvdO19CTB<0!IKs3q7H73PZg*?h$6Pj!AV#Lb z*TCehkWikjt;dM)D8MD$tGFAU`HiDU#xxRXHvk+8ErO7xodX?z@R;e80v z4a~s%{hZTq%3L%!5xD#OrHC-3Ro8TfqifjS6BPMK-r8je`9Y@xk&{~Meh z(JPOjl;P;~wYvQ=v`tgU#7+RL{pxgOfTvCI8QE3F(yss+zPjI;Vec_Xtfu@9o6l4e za}#&}_!>9ZLOp83>yTv)F@g=s*7tAPd8t=i6EnGTIa~Q%S*RY&Wneg_feO9%|3oZS zkKW*_wS3#Y;td;TSBN|PS&^;Al*vZr8WZ5h{)?At2H@s}%YT0jgbu({NM#r=XDp4A?Mpnm(4jD_l!DgLSY5K` zS{P&Nk+^*ec5h{)_AL5y=G;hY)eXCQYuKGHHAkgZTWGu=;FtxdD?q=OnYL5JKS9c` ztG7Yj#=KHVVoy7e}c1bbL*@32MmgIFR|vY&ksr(Plnw| zZc6YQ(-Rr@d8v5M{~0MN7fyV#m(VbS+kIeLc|1GjQ8MzFvYY;kf8ZOG@l>+?*M;p zhQ{ah*TmAkm508C;Wn+ovBg4L7(#Q#6o9~>8Qzj;!yY~tNEPQ zPoe|<7iLt)`qAd^-4_>$|B~6UNmVO_o)22}yD2kA(aKT-Cp$BZ&C+L(D`(pPn@*2|0?Dd}azj7B<@HKKBtkXqpJD*;_|7 zCT?Er+pUIqof7@~7)YAtwH!}C_in;BNoax~r_*M5fkvun>Eyh6bFF;y#P8zFhBlx$ z%zV8RjK^`4 zv&W40WUTa&ap9z#J{d)?`*hLf5-F{VeWyd!_Jw_iiz-7I>XBFI?Ub{%`q$X$3#c0$jr$~decs) zrSu#z$&Rjk-HoJ*2G$dUuuT zr@G|HNGN(?j$%JOr5`PU)o$hl{OkS+AgDqNmkAM)?DRYlu%rJ{6I(o!g+AYz<-oUF z1qSw~dR1=Aszm;%uGF^NQbd$C)YaTu&k3j*T)3UMd4?1AT$FopLc)I~7a|OoQ5JgC z>AC4%^ZiSWc9T;_C8{P>`fRzYJhbQo#d*aV8fPWE{kt5h7mhD-r=NNt{0ntARG8wh z>0i|5GMUUG0Gef*g6u|g?B+l)nmp|3G=mr+qq?w%jgpv+Eic?vX`(U{NZ)L0IJ7_Y z^q{wrL;Bx0yX69=^YnAvX96xtfcbV1Kbp>BYgXFl=F~Q)4x8MAmEj#J(q|voigl6~ ze|!JCC{n6>;=E+wWOtL)PNPP9vw#WYOq!RvP-XO+K5TLcZbGcvzs2Z77nts$sSQwd z#Mh&A^H~6N=J@Z^z`Sv>sc5v+zdo-PwJTg#z@+l4RJaUDJHb_~MdEq>W7qSt7q7=9 zWjz}%(9H-1^_={zn97f*+m#{@Qbgoj=_P-7cr=!H{xv-FXCqX7=!W+peZz=r;g&NJ zlC;;d@MLH3ZZJE1Crrt=J}P=N>AXBLpYg@DzKfQh-7azQID^~vt-iv}B_AonXsL4< zV~C=BKZ9yHkFUWK^UmPb`t>y|p3F{xBE{o;A)Rzo^g>SH~V#}pzq@FaPzAQ-}bl$5c$PYU_H1?2>n0YU^ zhW%srip;LeBFZm+=43%|bA?QX8z5g%-7%ajhZOP2wRX9#hCA#*Kuv95(hCi%CZX`n zk_VCxom)j3+9!MIvCk<`VojaT@3rWkB49JS!TqZf%`egjx@Eu$d|7=B9P5&ts%sz50$?ed@d|1H06Hq-m6vs z@&#y-E3SZ<){tin03c`;>kwGeX_!LwN^PirT(R-^e0KJr%`D0Vy_WH1a9sy8HDc4T zsrcc-Wq*rQ`j1??Yfo$|5W|L|3<&Q5mKbNov5+*7Vy zHhazI8ccu9Ka}0Z9>&uaE9ez<$dlm%JTX%`iIkE~f(M5b&eKtj^Q--5%Ne}_#3SSY zC}kqTFT#V1;g-VYFV9-^4Iap?q2^8qj31+>?xg!Q17p)+6xx~H8-*IkGj~<`_&#Ne<}_N&Q4EQB=SmOnF~&H1{G);FfbAFI z@%qI{)2Wl4`Inluby70BNLaP$g9W3IS)xX`6+XC=fRa9RMiKz^@rb4Vp@^Ax&fGdm z-wAD8>9{=FDz>+3ius3`+W)&}2*F))v@^6XUeW)vnqiLLcF{1^wS0G4KUH%izxK!+ z+KM?28a}R$umCArwOHi!d-^3+C0<8?)!uvB&FO^oA58P7nmw0vd=lq&daqx>fi#J9 z=XB*o;AX>C-sep6IsVb7qiXT#V=9KL*wb%}Kd1Vo9o?o}HV4wRDc1U8!D@0uvuyYND4I^fwUKdLorc>~>4H@m6_3W5c`NTNc z0cdfc8yP313+s(+Ljbs7b&hA)Y5;y z*}TL|0kMQx&M>TbZonFw)}CMaZWc$)^?R4e+i@wmd2fYsr$q+VJ|9?9t5WUv;kpKl z_SM~Fz0~aER(;3%5!JZHjrD@l)geOODE+3onq^qj!VztrZQo2vu6yuEk#dpyZVtLp-fF>Ow6V&_ zV+yzxNpy10V|LJwHvy`1D_UPi)_)4H0zfvFT16o z)3C(kZPOat%+2jQ_!RfN4_J9tdH(Zo0-k3m2G#VEixDChTs&Q!kS^Y>pbn2pEHjG{ zq0M#agE_&?oa_b>OOHnyG3V>zqi)+amfnlYIv9Fcav28T-)=UnY5$aTB%9h5aiV`c z+4S#s$QNDiSxoa*G;ics=3luSmnM%)awof8=FTg^GGICa#*NqY4p)`aq_8v~DoxP|jcNCUw-!o_pGD=n}u@ljbR zDX|^p6!m@VA10D>u}}L1IoAdCZ2gJO(eK4bTaI4}HH_NVI^G9Dd7cZB4BQ&ixs0k@ zP8VHWudtoQM#{r#%=cuAs(bDdp1bybTm9qLleu3^aY=8rAFf^^tABq}+skJi5lIK1u21)5(B*nh-{i7<>cWtByh{84E&^#K`jpideqs_Qk=jm9n6c2^D z3${NSajums#11kj{t;gC(p>OJ=6$i6IeyRBmR9}K(7Dl&z_7k!Yn9V+@3YASoRdU9 zpv2a%|H#uWa%p9@8uvvT5y$&P0zO5LsksFR5%Bc_Ld*A$M(_!^iK0clcdk8%8{FcI zjdj~w4?Ax6F4~=IpYWzE6)A~r5X$8iEPUp>GtEx9oc%@gnR_D%>UPN`xNR-t;5gpV9h&sITwQ^lk=+Tt*y?Vxt znWI=OUxoqZ5byRYF(`u6&}((I*#R|OsDIk8C8v9;7aT7pwqwya#9GR8xty|DYAJ-` z=H&R6rFtBh9Y@u~O8^;Dx)VzRz6!OpV8g}9*)5tHm;I4eJJi@f?Zsa6v|)6^{%pQR z30no$MsHJ3sFvfPxc&a_yreUUr2B8%5Dx@L=ariyo!az}A%fJE62v!2N5a6GZ|h0^ zHJO27lJ2W>$-1cX2hs;aLGgu$EDDVMyIL>!pZn?qY7UzQV|B>VWLF<6oGPy@`3J6S z&MS1QNDAA(4JU$UltC(d28ymdwF{?n{O2Yw)ZfOPgk9`PufKHb+yx*iIre(@Rp^t& zE#q^p(D<7cz0C6`5e=|G`*%T+UG+JPFAafXxo*|Vd(-FLrq@p19$j6n8}PEfD=4Hr zo<^SkY~Dr*6KW?)Q5iTTj8Hlcgwr0xaO~&G+l4hH4c5nuRKUz~t7M(vKuU9T+lmAx zbt5w9!Yz^QUzp~}iI^p)hOLtz!-iYa(OM-Ux@<7dT;V)hs5N|2)k-~%-mc;gvBR&c zwOOkK5R=VSB9--*Vl1!SO%LJ{vKz)zyTl*=73^ruqfoKi!=JgYMK;fOFvWSknD-oZ z+11cjq_N$6;k>i-G0pOtsEO=lb>|VO;}DK@|0apuHVP~8uW0+^Z195f$ZKbP@SyCb z#e1l9c`(z7IO4?maP+Dyxel|xsL5x8^{o8?u=PFSoH$4pXlRGkBQCJd?gw@J+}4TV zaO9|>A+zPKKiSqNnF?W4maG6~rSlLx`1||Sn*zB3f9xjETehVF!; z$pJeim+J_*n!J*3_0%=E{*(8qTd03ZnQr?>jX=GqRs4_XdJ*S2%a~3)I^8xDF!BU2 zGFzPD=GqaZ;u;@dP(We#={y34V?xM%JNp#xtNuyj$9Fs39&Saz$Yn81=~v;WgvU6& zlC2orAMtV(wfTNY`7Y~;Y_9m+b|pmRGoS(mpaKq{0yAwSzImwX6^t|~gB@G1)keiZ z4cwm+NO1Tf-ZObULA;$y_)=556*N|!!==z5&>>I7fkpu+a)7dXOm79n#SyNpMRb=H~SKh^XDr!%|31V)6s^in2GO?9=+RB=MjdvJ>?rgJuLmpp-(o9eq zi*!5aNTgmS573hn&E`^*FcFQ*U|(=5A*86f1116Gx)`0PtC-&&a2kyty|rIiwKo%( zX3F>eTWut0DJm7Kect#W3vOcSW6XmhaUu+ComYSuKB%PeS_eh?W2^W8LlUo%m(YiR zLM`Mw=e4@T!`FWnIG+CRS%CPAciozKW>dYw@(POdM9Ruol_{(Z2H@uxF{n1b#1LRm z?#5Bx%gPEBs~BJLzd2l8L-kt!s5k&kGeGmth~xm~iP$C;$DGBevfBJD@Z>d6i6?O) zcO;T4O4kL|exm%xIb7dt%^r;?h7*K?vH-K1A%Wo;kZWD5ThJX}hW{$yd8>DqPuc9g z#~g^&!uOhw#;9MZJ+@26yaF?6fd1zz%?=rt3efyuEqWs^PXgw7keHL;6<#0V^M zOC^z8@wBX-Cndw588jpSNqC-8no@qExauLd;ykU{_ggqfFX&pD*g6qA!Zw0mt3Afn zi|9v#g;fJhhm)C-%Rn`WfMhpAVh-rIor3NllP-xd!vG7@JQR+HnxgVul_L1MufEJg zzeqt3D4K^L`HYGq|G(8ktiYsW`J|46PI|k_YLD+B6_YYDT~>^-L#dNg|1}wApHY9_ zz&Dn3N$>nQO1>GF(H83#d%jq777rTY_drMHiH3Yyy;=^pqPlJS-t}hraDrKKFpq}$ zC12f4ZThkn+n8Q*p11%ffOE=Vm2Al<8yYk(hw4vDHkMyc+=4g&7;?SR{alRK_^}7QumXylzkDkH zyNvb%x1w9>1v>Db28;l5*`@u$D>jfdiqe#jSJ>RW!1tZ^5o4 zRDz}TI@$2b4!QCR6ytn`sBbUZVowrI<-8Y7fF+RKFIQF@I!X3+ua!RhOyI)-#wb$V zS>6bSY4%ZZG>u%|dM(|`a@7Y8IF0_qxNQ4s1SL-e1H1-b05qkEU0!#%w`|++bDCSx z!?;o4yq@h05k?6y0Fum2Dgbgq$ic!IjK-)q8U;LyNBcj;L1sbkL59DU)Df1$zrJW2 z6p4+MI*joOZ6$y#0o$=`1xnivjeSwmL2GU=DF01hzsd0%m`&>PX1mA$p?0OkvZ0cP zBOVZ)X{;RThZ{gtsQ~+vWh9QklRNEV(esBY(+5%YbALpFM^XD;E?Z;g4IKm!d7zwJ zjzk$3Hgy>6kc#6Q{c+32@ERNM1VSyZp?fpzsOemyp8{fj zxuz8)9ye@Xv&yxa)A<>sk={w@8;k@cvZyhr2`36OkOgO;+1CVJ*r0@Wy;ZXQE z5c?e?4hIrq@|d&nJo$OeX9qw@NM-Cli1rq}0u;|@$!2C;K6yY?Ie`eCci&mIoxWJb zC3h*g@1Lj698;Y1k&{CdK?*ydQ*qUBl8WQ}h#&C$9Ps?1^5f?|>74-E`v|sEo`V{8 z<3{PzdE+%&kFO9_E0^?| zV#k5TbL?SvRlk%iqU)(l~7|;`JnP%YgH2__C2qdWvBv2oMwCd}j^~?_lTg#W$ z!@yxRW_znqq5-Nv^5%=0AC1p#6Gr6%XD(V?ns;wBg2QXS=p^Cy;*5}*fyz?2Qho@e zw2c@(!LBU%)(rE>9Re{?xQ#CtHQK)dhKi=1()?|RyM=b`t_%aO9OL< zCEd1tNJ$0n1#kg>6ZV1-0*PUigzt*7eH346a*tH`yJ?GLC)juIe@d>{aJHO}3V35x@kE@<{5b_tk_kf6+}%8o;qn(K>XDKPX8;Q;$^)z3}*x zsm`*szVnT->ZzZ3Fv@B4(sU8cMHB1iqMv@dwSw;j#f?MhlRCs=NnoxquW9g>Vcw^V$kTLA7PuDw#mHt+gkPR@)}Z&+2c`;Bb)>B zSea0(bJ`ii4R%AVtqiST+GUS=5fG?g#q6XcXH1<_`0G~Lxx+hT>A_ATj0@5TL<(nJ-QohR8;)ypZo&h<%Y7kiv; z0n|)=m>tXhcUv4|>2kXPHoBFW80Y25p1lc zoBef}D6M+>l-9F5DdHoaM*1uYFq*>z$tw{1+qlfx)?Y*V2M+^f@ZPGNLIEtriUp+D zhQ0*ar4Cvf;-_?H4X?XUId1x3Evr4N;dHP(_4QJyX3@gW(Z zCC~fx{)+SEFO`pO6ax})(tz&%{C~`}RT+Np+5vPZK$)NeeH;u$)cE|-1-apMBsc~( zX7E!nIOt(uUT^Srwy(EOauCJ)n2N|^p>26671<~7=YxWqgmzz-$lT-_($ZY|0+h$| zgaxgUmV<2zq2%W5EN!F5a#}(o$W=)t2X)!k6}+^{0@`eG=zw4cdR$D#eG#%22K9K@ zH>>>j{i+F?3bDPn6wQSAgmOfSu3~Q~ZyL;$$M4IpR4H%8wKw&ZTo+=>F3vq?f!fLs z9RnO@eGPxtw?OGYyR1dkFg7YR5by0Ciz~*uBr?N79|k_-yn#HW(ySiF%OejuW(Ee5 zI6dSVaIPPQopXf?C-k^DpE&U)l%63&<0#mds2e_()LGVCwIY2Qxx348XW3wMxrl2y zz2IbRI(wQB$*6D*dAEh(PaG{SSnoTmX-gg%Bj6Z;t>p~F3o#PPVO3UnQSvmNJr>q( zrK{Z*N8|EgIhkb{2lB3%aB`_1)^%QIT+9PS`PdS8qJ#GPMz)o<$Gs*G1zH%Mvl`Ah z)&2Ud#ZO?EdCT?ZBpdgeajRL&&Z+8Zt9FBZeUi6j}R7B(s<4)7{?SJtN6>BezwcuhTVOSM#((43$EN-wO@Qd@YT z2WyU1lz-Yp=1%H{GcY1)uqTFxuRbENzb8VP;%34_$r|&h^Gl)oOH|^_ubn3}>CSxz z?xl3)&JrFXs1)BB7vtZL9-JXfs=4dX+2O%Adq>-#1eoX1pZh#aI69-PC(ss7l9c;= zUy4|?e~VQN|K;X-(`emv|J6jb*|`+-BrCBTIH#kXA8+`^=MXogwRKgZltdBVp7!%Cnwb$qrev<% zbrOziNJc^>E1P=aJiLM1OWA%UwGL}~uHr7+f5CrLo~+I)Uwpvsw(UWUD_u8)JQe!T z1H!*|e@ypdbUKeUWWwHmH2un~U6e%u-vv&yseL1u1|Ps&!Ygu0TJ)AQmdRM;q&h6u0b*s5uWY>_#xA6~4$ViR+Ps}CL5iC-iL>k=B z9D|HnM-8m!c3L9SeebtNnICe=KTTe9lCa6unb$|JRZ zqI@Az*BGJ`ODi+xi^E-zp=&{;dItqQ5rLPk?A{9-e(Dy6a?%nWF^y3JX*?6MM=ZLf z*ixt}4(jgJlJfm?tH_c?_ceolqtwHjWp)S#Udw?XLW>WG(Tr~fb7+s{PuuWGHGA@@ zKI#wVKtTO_L&zihac=vVgUHTaWI}47&89(AHh0;v{liLPHK@E2&QieKuuCZ^r$*|&s-mmVSBlze5i(kI+wz}>t-`))!U z?a$HFD_Uha_zbIuyg6~$K=n8}kStV+fo7~#UnZ?0WlfFFP_1!p-sfE(1&|4U3q$sV z#x2g(BUTR;+f^eK(GP5WqYMUBO&L9(()4>M^LrnSlTQiHJtdwpLY_B>$HP3pFO%1i z;l~r>UM6mZx&L~6$3CGX8(-l_U1%-6y)KV*3?~(8gc)3={ZeiPHTGv55&m+&1RhQ% zO74i5VYYVvsJ%8VzLb`8n3r^t9AlU#<60)SK9h?IU;CBu?dh5TnNCMl)cfeKzA-EL zXUBur{6#a7s)2OKkG*6DGqM_tL^l2g9&a&FOQ{ytI9fAW4JjO{W;S_&-SM>i-ay@3 z4RlS;X`@QDbd*uDCGPPP?s^dA{`FiP`;=@oApjTVlP%6BhQECLW>U@o^q9*8!b8cU9ARbW*X?@XDP5(M3TKzn#NUP0=w|?m34uJ z^YSz&gMQQ`*JIO4GSl#a-Q3p;xA5V(?QD;?k5f-=W`qn3^)~0D5d2nD6%T1GZ}27R z_6Rb?h*DUm)`x0WPaf=P4f3KpDcFa&_-^tgxOR4Zel>S=^&xjHoeSH#?C$55#crl+ z$g8*Tw_*!)>fXNA-%O1roEakKcRd4@Z8-_Wb{h?TOzmrtI1n=TvJ`W-7O0I~>HM8o8_cbe za8$u$w(9mT28H{lo3M0WN6IC+*cwwhExmdC4i23fSswKj4YR%)xVsV>8HbqoN1izS z{UC_8v`((5q|Z*Qg<+l!E%?su%Jmpjq27j_c*EO@5p~SC3a;L=Y%hErZZ~53O#psF zq_xR2IGDn^Z*e`~u=|U(+ez}stcBVyvEo7VW@xuzxVT(6FO4a=nz9#5lQr@pfAPFJ z^^c9*OPe^;AD_(y5$;RX)CRxIewK1`;!VW)zoL#u@|F>6ZJgoJLxQwwZDPf=iyJ%_ zUW^ZRRR%@ATQwlp_SI7>l9SSH}^dzu(TtV(Zv@ z;E3@(w_LDAc$>YptRqyR-j;FjkyNi^RFm1faWoRB0a!JJ@6E)|@v>>}LEofz7m`jp z8y^DT0W|&VJ1A@0>{}SlSCjq|q3ul};$h0J`gT?IOCYtQRw(I2J=VXSjn z1HFTV^4uMBzW3|C5FqxycL&Z~y$E>|9Bg=EQiLkb1C8LSIt{NWQdVhkq-Gw(Y z*Tbq5V~!j^-{0nI6=LJ_BAk{LP^p?UH2zJU@Ltn;Q#Vf%o(^mS<+rcJD-$QT+@s0l zL!f1cr8$|r@$DwxK~eqZ#dD;0F+QZN`fhU&N0YVXqCxL%WCFaov91A8Gl{7Jyw#0v z7=hzGD&GRj^yc9q+$M}@(2(PC&>to8nbh(3_7LYeB%Eq*rwE>Avpi{>AU8G+$Ap{b zjBYr0uZjvUMJk7dj(%Z^kw1w}?!ecIllH}iPAl6_>43ehpH}@;RDIQ(3J}yInYC}W zFgy)r;933qC7&XV3*2`HJBHWPjmU(h&7R`4vq#ZrcS}l%Lx#QXiPIECcY?4&)$Qokc!&txl8LUH0`|9L-r(;TSR8Ct2)(l#g^R zbsdD90ol!IUFv502IZop0**>C^2t&Q{L$KS+LBFGOKZGEE^~vSR>%W`%Xo^mbeVy| zG>X|x8%OCt;bxRh%M(IK4}Ork6^Za2%mDqr4|1yzk$gZ;qb%fRdh#DLJjgpje)e_A zIn=MN2o~;rz?XvfEGSn@ADXzqKkL5~0*W#`BbhM&B%Tryu=|_@+gpN(eTn24$G-M$ z_EN^HYxPgQK8_ETY)Pr93xILQ5g(WHX^rOIo}v)`L@=gbL;-3v=3BLYTc*v5oDY51 z?mryntpYx#nS_b>l`B}xVNvmQF=9JEONw?zc#5Ipv^7wuZF#qxBq${DNeF7T${hPW zt8LSs8D#mQqQ7B$tQn=yOUSsE@9jz^phrw#U=~;~9LMaU&^~hCwsO+&_HzCU!1Wuv zgavh3GH+j2&O2JZzHZYvLA!DhTB+KN=!%bPEP^+cF-var`B!N9YwwUa$djAffqe}v z*mCz#A2Gyz28CnpxQ}#wJl+)TmSBHtuk*lB&pExrd8N2Ey}b!+IM(&e1oZ6RX)K-^ z^;J(A((;BgKll#_Ty@2gcZM%?mjmgw(amo<7!*GPs*C>7uP|S2x=d7GU2?|M#zsMC}c?FpdiusJ-v;Kv|ztnww@}ftofF9 z%JM{VT;bo?qjJP~GOOES@3o%dME;f*<4TjCpfsc*EDNoiuyk>W5q+f%R<2{eb-lJz z5?(!{uLd76RJEUz#j?zXqV5=zyDbJ8)LFgQ7k>~)M`72>Ly_Iri`2vo8R{AWCi%8C zSp#&hxQhtr6j%`Y$iH*vuwt>hmi?eZEuW^wc$G{zS8wVutykke?Bw_vb&$a z{2IaM^WHpdYD%2-s;r@&+O6f)gWo2mpnu?Ao&IxSp4l?j4Cx(_x_T0GVuvG{i|B&y z^0*lx1!$+e5#d>Zs+!_Or2j57XnaA`jX$_%z> z5~l*)k8ygPjpinwR3n>!J6Uht7oS!)8ib*CInBK~7=xGGGnU_8T+I=`$CIlm!M$?H zO2;Lb9yJCrQsSUp7^)YZf|;18dYPK+w7^gqZP2hY>Dt@5!Jjx$Di!WFQ96C`k(TID zh#wY-Kxhcw>H4jeX~bFO8yn8F0H}EKw5>l$6W&fzvgCLkwOHd`!@r|ptmpROcAZH`#zW~sZ^^ullQCC=Tfe**ObmDi|YDT(+FH-{S5p6j3cBwH9} zL!CC0Rv*p1hgxtAI@i{I=N0LQ!-^)R1nNqv<(R`5wDug?6|DOgH7Wnjg_FnvD&P2+ zsColODIMsS`@}8DKqVZC$qi0%|n| z{t?fWFO3Y%fpm>3_}BenYQ|7~GfBB*I&B^?4()7mff^8|-ClA?B2gP8i&BX-+%#|L z3uxtZ2T(#P-RmV{x@w35qyia=_?U&?8F31J$FHJ_B8`w=Z6?0NmVvyTe#CO}&%HPQ zcI_(ziblfWqPB{5Iv)v72@7i`;bqk&A6x5^zbXgd)&ZHrzE0(I`=Xg^$~LJ53QD}j zfx~L96JMvRk#XiaQKPq^o##9@dH5xVHw73&;P$nJ8exT7GTJiXYxTqqEFA^UUj9Co zP3!sgkm!lU)6WG)(Ob&)U>Bnj2cy%L?OW{ciCG_*H{-lfSn#{ifdvjt{WLP2kjd-h z)hfcITFgB~{qqY*Cj}jJQ_*3?8?!+Rnyf7>$CD{cPN0iQ3IdUntZi%y^6k~9S+7(l zew?JI>hW#kW?5tGzX>GjA=7*AQ|V_nb&oneDj@A!gojSTSsje}Pp-5h(k`*N4$gb} z_W+tQHLJOeS>S6OK?@EUsI82z-O%q38)+&6Qt_iT+<%~7gFh;YQA>H>Hc07Fe`wPc zou4!Jh-D+m7h4;WgnE)FSmeW8!&XDf`-;mX`s;H;h!(B?<#EaDy`#4@KNt>OrY^;W zwDlmv0Ah-zYUnByvvzy2;Vm`BV9@q<*Zq@lV~9qCCd7bLi5MEqxcZi5qwsHQ)V{h0 zVNp#&?W zdNIH)n}WMBCo>a5?hZ_+$&>$^Yt+cCrwi{cdF*+_R7O4c5$6pDT3A_dxcJO&8Sc{Y zG90dXWb77B213+22&_@0O-!^cd0_^{5@q4wIHaf>DOM+_PMz0-O=1cpQ?n>@t`)-F z!-wXn)Cv?d9@d|fP+$X+8dI9M<4wJF+t(Y=NIj4{ClVUB4Y~r2T>~^gns?|w?R7OZTcZVz zn|n7j^f(Td^||{*ckHcL*Y>xc!8e|*O~T1&X_#WR-YBm|M+u3=zP3d6Ee^;y%Wfo1 z6Cs;g50WlHH(a=o0Q%o=el>KC+UkW~y^%g^wgrJ)o4fqK0MrdDquCwIff;^dX$p-F zpOhS-flyFCnz#n`@BI5QjuM`M>!Rj;6tO>VCtj;l0HR>ExI6FPy>gt_Qk`k$lsi{u ziscFtNcCAQ+KmI`lC!N_- z5t&=<{T`$j&2sqWv6I=;lZ@n^bQ^^iHg0jKw$5Td12!n}*AX3ZMv?k1v0@^i_4Zfm zgZKEK3m6*5*trRh#!f93K6NsvP5TxM}i34J1*T2-+5ZduYtGv;RBy*T57&y{H z>b_mtNtz*gW>N>P7Uz@}-OHc*}#!6uRC zhFYSAiaU+mkiN+ym7*R8Q`K$`G)*p%aYQBcJfOPKe4tr^PE057TcQm07J#C?Z(6CX z?N#)&@4c)icZ8PQvSrZniJMV9rj>*4+(djR+r;|r<=@~x@SGf#t+g;Zsz!ZZT@%w0 zuX<$~j&M^8ye{ZwV2dYm@0O(xp^<1-Je4ni|E>O+z<0&0$3Gbn+cBX5hi)=G znz4HE`|7-vLv!0;iZ86bhqSoX`t*1%h=gS+TEItW$AdTF9_t#{lhoF!;v1;c9$^2; z87Il{&mvSYz+@O5B5;@v;D4O@3y{}={F8mZnA za(*+P$Qb_TTElXx>JS2ywKd`55@EFFZI}JQ|Nr%WtOR62&Mp*RP7JfD&fmBcf`Yut Kv*M>FzW*1Wg&P_G literal 0 HcmV?d00001 diff --git a/internal/auth/handler.go b/internal/auth/handler.go index 2b22d48..6b65d64 100644 --- a/internal/auth/handler.go +++ b/internal/auth/handler.go @@ -2,6 +2,7 @@ package auth import ( "context" + "embed" "net" "net/http" "net/url" @@ -12,18 +13,8 @@ import ( "golang.org/x/oauth2" ) -const successHtml = ` - - - CalendarSync - - -
-

CalendarSync authentication successful!

-

You can now close this window.

-
- -` +//go:embed assets +var assets embed.FS type OAuthHandler struct { listener net.Listener @@ -86,9 +77,11 @@ func (l *OAuthHandler) createAuthorizationExchange(ctx context.Context) func(htt // show the user a success page and stop the http listener w.WriteHeader(http.StatusOK) - if _, err := w.Write([]byte(successHtml)); err != nil { - panic(err) + successPage, err := assets.ReadFile("assets/index.html") + if err != nil { + log.Fatal("could not load auth success page", err) } + w.Write(successPage) } } @@ -96,6 +89,7 @@ func (l *OAuthHandler) createAuthorizationExchange(ctx context.Context) func(htt // and the http server will shut down. func (l *OAuthHandler) Listen(ctx context.Context) error { mux := http.NewServeMux() + mux.Handle("/", http.FileServer(http.FS(assets))) mux.HandleFunc("/redirect", l.createAuthorizationExchange(ctx)) if err := http.Serve(l.listener, mux); err != nil { From 11363eac9dd21a176e92facfd81c36634eb76868 Mon Sep 17 00:00:00 2001 From: Alexander Huck Date: Mon, 20 Nov 2023 17:38:53 +0100 Subject: [PATCH 2/3] fix: error handling of w.Write --- internal/auth/handler.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/internal/auth/handler.go b/internal/auth/handler.go index 6b65d64..40deab1 100644 --- a/internal/auth/handler.go +++ b/internal/auth/handler.go @@ -81,7 +81,10 @@ func (l *OAuthHandler) createAuthorizationExchange(ctx context.Context) func(htt if err != nil { log.Fatal("could not load auth success page", err) } - w.Write(successPage) + _, err = w.Write(successPage) + if err != nil { + log.Fatal(err) + } } } From 32238a4881fd62adfe910a78de76b9941309e77a Mon Sep 17 00:00:00 2001 From: Alexander Huck Date: Wed, 22 Nov 2023 14:48:32 +0100 Subject: [PATCH 3/3] fix: a better accent color --- internal/auth/assets/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/auth/assets/index.html b/internal/auth/assets/index.html index a884024..4664796 100644 --- a/internal/auth/assets/index.html +++ b/internal/auth/assets/index.html @@ -6,7 +6,7 @@

CalendarSync authentication successful!

-

You can now close this window.

+

You can now close this window.

The CalendarSync project is powered by: