From 4581e989896f7a62729eab00ddd66a29171192a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89loi=20Rivard?= Date: Thu, 5 Nov 2020 12:18:17 +0100 Subject: [PATCH] Canaille logo. Fixes #29 --- README.md | 10 +- canaille/__init__.py | 1 + canaille/conf/config.sample.toml | 7 +- canaille/static/img/canaille-c.png | Bin 0 -> 4219 bytes canaille/static/img/canaille-c.svg | 24 ++++ canaille/static/img/canaille-full.png | Bin 0 -> 20351 bytes canaille/static/img/canaille-full.svg | 151 +++++++++++++++++++++++++ canaille/static/img/canaille-head.png | Bin 0 -> 7764 bytes canaille/static/img/canaille-head.svg | 79 +++++++++++++ canaille/static/img/canaille-label.png | Bin 0 -> 8749 bytes canaille/static/img/canaille-label.svg | 77 +++++++++++++ canaille/templates/base.html | 2 +- canaille/templates/login.html | 4 +- 13 files changed, 347 insertions(+), 8 deletions(-) create mode 100644 canaille/static/img/canaille-c.png create mode 100644 canaille/static/img/canaille-c.svg create mode 100644 canaille/static/img/canaille-full.png create mode 100644 canaille/static/img/canaille-full.svg create mode 100644 canaille/static/img/canaille-head.png create mode 100644 canaille/static/img/canaille-head.svg create mode 100644 canaille/static/img/canaille-label.png create mode 100644 canaille/static/img/canaille-label.svg diff --git a/README.md b/README.md index c7abd9aa..da244d2e 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -⚠ Canaille is under development. Do not use in production yet. ⚠ +
+ Canaille +
-# Canaille - -Canaille is a French word meaning *rascal*. It is roughly pronounced **Can I?**, +**Canaille** is a French word meaning *rascal*. It is roughly pronounced **Can I?**, as in *Can I access your data?* Canaille is a simple OpenID Connect provider based upon a LDAP database. It aims to be very light, simple to install and simple to maintain. Its main features are : @@ -14,6 +14,8 @@ It aims to be very light, simple to install and simple to maintain. Its main fea ## Install +⚠ Canaille is under heavy development and may not fit a production environment yet. ⚠ + First you need to install the schemas into your LDAP server. There are several ways to achieve this: ### LDAP schemas diff --git a/canaille/__init__.py b/canaille/__init__.py index 70fccdbd..8309cc71 100644 --- a/canaille/__init__.py +++ b/canaille/__init__.py @@ -176,6 +176,7 @@ def setup_app(app): def global_processor(): return { "logo_url": app.config.get("LOGO"), + "favicon_url": app.config.get("FAVICON", app.config.get("LOGO")), "website_name": app.config.get("NAME"), "user": current_user(), "menu": True, diff --git a/canaille/conf/config.sample.toml b/canaille/conf/config.sample.toml index f892e825..1f855325 100644 --- a/canaille/conf/config.sample.toml +++ b/canaille/conf/config.sample.toml @@ -2,14 +2,17 @@ SECRET_KEY = "change me before you go in production" # Your organization name. -NAME = "MyDomain" +NAME = "Canaille" # The interface on which canaille will be served # SERVER_NAME = "auth.mydomain.tld" # PREFERRED_URL_SCHEME = "https" # You can display a logo to be recognized on login screens -# LOGO = "https://path/to/your/organization/logo.png" +LOGO = "/static/img/canaille-head.png" + +# Your favicon. If unset the LOGO will be used. +FAVICON = "/static/img/canaille-c.png" # If unset, language is detected # LANGUAGE = "en" diff --git a/canaille/static/img/canaille-c.png b/canaille/static/img/canaille-c.png new file mode 100644 index 0000000000000000000000000000000000000000..11b048cb381a1978b0fb3d134aec704e9ae77091 GIT binary patch literal 4219 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 Pe;8wZbG<5^2gv^dR>SPm literal 0 HcmV?d00001 diff --git a/canaille/static/img/canaille-c.svg b/canaille/static/img/canaille-c.svg new file mode 100644 index 00000000..fb15e09b --- /dev/null +++ b/canaille/static/img/canaille-c.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + diff --git a/canaille/static/img/canaille-full.png b/canaille/static/img/canaille-full.png new file mode 100644 index 0000000000000000000000000000000000000000..2653737b0fb857b0ffaceef21f828acd073f966f GIT binary patch literal 20351 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/canaille/static/img/canaille-head.png b/canaille/static/img/canaille-head.png new file mode 100644 index 0000000000000000000000000000000000000000..e869f9fbd24eb926d3bd61f77ffb3e8613a7dd41 GIT binary patch literal 7764 zcmV-a9;@MrP)006rP1^@s7%H-(p00009a7bBm000*f z000*f0cW4mQUCw|8FWQhbW?9;ba!ELWdK2BZ(?O2No`?gWm08fWO;GPWjp`?9pOnt zK~#9!#8!b3!XOMRTnEq%>IQX#uHZ%;!4Y&49ieW}4QwYs=z$kw0)gt4yWCMi67nHm zDq~EwM(pUU7%yFxZDGJO2*}Bp@}s;n@lZ--8Cd^{)9HT(PTA-mIGJ5`L2_)hFmM-v zbtm*OeyvGrUIMqI{<_+5Y#O{Sfi~7YIpxx80y{fw8`hkF4!9!S5cc0wYz3HYveJO> z4?SF?*73X+Bzp+ig{(tX95PT35rBS{IX*3yHNo#D!T%1?p0izqfUA$eDhZt08~jE| zCI;`C5#X27tD!mq-fSxup`ZIZp9< zFtCC8)TQLcO8{of?FL~OhN4x~Jy?YiIzrii5g4g#z$mamnE+bUNXGKpMxs)Fnx`Y* z+>>+#+}@1o=ItBWc8djDqW7Zn-Rk|^sTfMQ3`CYmO*w?Pg-_wgxu~fLJ#B|f)LEYI ze?5UT&VO7Q5E#4!sXVYlQDtp+Rd-`QokGkm{g?c_)mgUviP1MJ$u^D}Imh9gS7SDp zc5AR?DI7q%I7s!NZd}XKaf}XLnU0mr4(n8IclonZ_a=bcWru0ytVj}1HbO~%0&+6D zc=H5hvh*wCb|l3wx((}GvrM4f3uuccK2hU@xZRV0rQE)8xG}+IZJ}vyCvsqW>^oQ_ z+Go#d!UbmytJ?P#fLSZCK^TUC73u&Tp`)}Llnof6Ba{tbgN%?7U;{RQ4d@2YNC~o{ zJdR^mM2ZBcc6_#L{Dh3WBDk1x`AHx>ZnA1NIrad~m5F(4++@G~9dIGARn1t@)U~9T z^VZb@7%56FJ(Jbq6u_DKZg8C~_EtO>aBk4jd|M{a%Rj{dOt!&d@jU|>m(>phkTaru z#;h~4#6F97g|oPX)g-E`(7%XF6^rD^4YW#jZk!h>sIr4I;6 zrU2j8oeJp`-)m|=H@}AS6Q`19Q^d$wPW>q2}b|u~u*=y;m zm-C!P_}%(Ne!(*)%4;DCJa8qo6H=@yrj-T`ggklf*AsYj9*>zS&+c7T8;A^mH<28D z8z;5C0%=T`V4Qg2`vSO9;DDxsi+v?Cu0;i zw(rRp1=d{PY7ob}hwSR|D#xkMGEu0&b1FE=@O(Z*iAbtKl60qC^q`PQhFE9J@W^$% zKLm7j!+d{{O=unIl<-@82$;(ui%t)%7A6L!8T0cm^rJk!n){>fbeT+Og)dW7o&>dR zMe}(h)U_3er;)I9#!6t~Uzsq|QV_=5dJ}}8k?j)wRvA)FwgteOR~geqIRkwgX^`Oq zG}re_uCIW{m?RW<({{Y+!)Y;52%L-#5I`<~gF+090-oXhnp*^bd%!`o&;?QN_O@CW zQ|N+15cbr+;&&NPeMuh}{vZ-H6};oPCgnstO=rU#v2lwMy0%>$-~z}*TI_B2WdKWs z6D%MC!0h@^gM%m{q;g9N)=x+u9rRLX^}i6?Hx?q+*_Bc0*!$ya+h(C=Mf1NR(^?O1zgSYPE^qmobu3r)x@tVV5|aHQFdkL9G~ztpr{t5xQN$ z9X5nSau$x#>P(AtH0pGSqi=E`IQj(vU>y$3N^^{EZ=;bmBo0G3b1c9 z6U3RI?gVx>P&Uv8)dp23XhvWsa6Cbj393xs<^T$iX;R|nc>GudgrZF&QhYq}etZ}G zqlqUNRtelXI3T_jM7FX?-i!AArGgFD#6SP|8F2{8SmOdV4!Cdt{z`a=(ZSCe>;$CO zwVglbeY=2-q}*iG9;nXyRc;^`1~jyj>(!JZCA&a?ry9-;)7&I`AYLNePUjL>p9#kC z&n9eCgk*boU96g`p z!IdgIJ>c(P7LCtPE&$+^0+0o7!lHGfHJ~c4iU6BRAN_R>M+5+^vK+v~f}1VCk;WX9I1$BUHMHp4uHr$Nr(_aZaK8ned&Fu#o;RaVXF$p~!j@LnHGlsA=EqLkia zBIoS;Ow{Q^cEX7Bu{0CwqQK<$%-md=v0`p+6uPXWRMIK9f^?rJDA_L_@9aIOrmv_q zSc*Uk?H<6}8-C<&Zrcn2v>~NXhYV;tcT6x1MG>@p3P3By!F4NiZt@JSQ`h3bral-J zX=N$BoyBcqnKNdsS~RM8#?%Cz*}p~~(g!LPfc|dEN&pr-^W!V-vamE%rdQ7tOl0yl zhzRW3g#;lG2o(!NZ#SXK)XMGLvCPV(nW0;~8nC&Ejp%!3C+t*d5#PII6O12}#SdU0 zCply{@{2$DCIo<~L77y56}LyNW}&X(P8$fBNQ56sX|@P`BoFim+$XWXF@bJIaRD>m zI6=`WT^Yk8VgGe*K6OhDqT`L;L_8Ro)Aw~s!IFbASlTM{C)wfd`{}jb%wAH7J z%XRQELmsq%Cpg%$_+?>hOA&T}O{qrf89CR^G zx&HTe3`W1=z#jbVLJH0bDZlt$mkALJ(p-u-i(ImxIqpS~-ia%}-!wlaVn?4J_PIna=eepefK?rZE(i!nVNQE@N#v+9r>EmxBVA@y(>L# z8;8PJP5xV|AWQ{ODiGa)T!EbqlnO#uu-Xbjcc4_TbOlx_h&oug0>|(^dSDnJaXdU6 zBxW?8k!=#>hj(9-2OByIa!{)Q*37m2GqCnUZXiz%Xi%K?k^{qc-9Ep=W(GPwxRf1> zla$e=n_EX@%C%jWDJ4CY=0q{Er>R#E`+c%NXV6CL)APGN#k%>T0Dv2!o~FL*H-s!_ zigo}w*Ugjr;uo0$yw1E`)&qFyW{OV4TnfD&L&m1F1)9KDT`bty09`1^uPbz3++qef zDf4i;Kts@>Xpmv?)>Owy0u7!n%F&5D^Ykjh>-KlSlzAn{^YhY_Ig&+=j0$5(K%X zxDP^(^(TUNaVnOgiKrRH8fXJ1o3Vv=9dp17Y zWgn&O)Bn{ZJM6>la;G`g5eKJ{x3^YpYMT+by9}q{Y+VTm4QS@pG@SZ# zC};#y!|X;$styR(IhMviGrzHil%J*L%dD8ipw$o);t@t4J5QW{ojec9Lz9SBY_k4? z*tO}Z4F9fn*vke<$?Cfo`y?D*4D~ec?db0;ul2(c>|8uwCjk75$7LQ=U@xdE?+q5O ze_9E(Pb(&M;}^g#)kofFzQ2>|!gL4XL3xl8`m8NR5u3`t+VI{@s7XMsqlQhd!88Np z-^u7i)@sOG1*J1zSov#j>nMRTp*w}+rb&&WcaF0iRl`o#jv8%^Fw+WyqHkQS3^p(s zFbSYTjXbttu}G8cjjt_$(rB*BIaq}tPMTDJUTPc(jp=DN0D8t32K&?93ETLg}Bwoxu!#D;+gx*53sGB(h<%^hX0lZ9M68vJd; z0!*+MI8kk*C0lZ>;{bQ4GzYKMs^*l`EP|?gK#v#SxhPu52cVOE^ul|uEr33axngyJ zsh4j3asMx?Z(u#a;uPYE($ zJC%%n0{|!tSDL7iEN8!p5fu;v)Jtp!^_Vh?mHp2lIt8j~***-M!~@u9Imo9i^d_rP znoJXMy|XUJN^*2&M*n^2HpU52v^>cN&FmB3rQBa-5%GcRDUuoo6%O^SD7OQwdQe7( zwwrYufu#2-0p1`JP9=S{i3PMQJNugGukiElz#OCzZS4ZnkUE88s=Hp{#aKo`E$J}>cxbU@cCu-RMZ{4OBSazcESAeciT*naOPZM98IphfW5a1`wr z;NGUy5jQCTEqWX!0(lyUkGIsD-Lv7ugE|yjRb01q0KN_F#&kWbW1KUE%~p{PS>stb zdSVgc-0XewU^ABb8w=<&^GwVG%5Sif2nD6_;6Uw70Ag69B?m?Ty7GBRGG$uc`@}2? z(>!XMJ4B9$lkOWy)~MLz+9g2_;YFS;LypFwTr4?k_#^sg|K z%Md`1Q8qIu$%$S0uTyd=iPc-B(>k91-kho|9Tg`mlh8m+bf(=YMq67DgWa-NJv}rW zLOO7b$YpvZ(13lngtopBcgnqyONHe+WCRtV4nTJdsUt*kzFLOZ&H<6SgPT`OUrJM( z+Vxgli6R4DY1m>1hhfP)dzv`jKe*FGaqX=_9-myrL{<~wRhcR*@I-Z?ao!RR+z~rj z07f2dR2evE_s9@v{^I|YzP`*gS4@#w^b(^V%AlPD&>E`FHs_4$S#oXTyi&ZdbA}+R zT6qMSd6^~9AS3^gzP=!wIgJ4_XU+2Hxr<{Mseei0PLTdUta^@T|j^j z0I;rO@_iKNPAT2&JsPreDz7{vZ!IGTtNMJ3P{zhsD6{KF&I{=|#rM6=#8txq;y-N~ z+23Lp)lE|C4g@&HiVpDPfEEB>1Eq!#obb zF;0ph)5%e^0mauKgKN#7a1guP;@^J+Xzz-y+s2hBUXK5xRA9aeqErxW1<_UzZUs+U z!O|71QbFhnR;eIN1z{=(T|wvy_Gz3!M9~xh5FiMGch13)6In7bz{T7d3dGQ$t}PfEuC(E&-MD2s6>Ye-gS7mz9;z$~o%v0@RQ>0W87$ZUx;X zuovQI@sk>(4^YQqfeFBri}Vs2c@ipEo4d}B2B;xZ`oDXC*cjv){B(diBp_1&iwY{d zg*KeX9nA&x1Dfb|EQc*-y`qL=5iz96{t;rzDL}0^39E?w!XWlw zBU&Vb12#atE(;yZr8J5g4FGKT)RX$qF`aJ?X5w+6={^#@e&ihyfI4tMlSPXv-7~ubQ`Nq$18w~4n3JZaO0H`4lfVxL+R!))RUCk+|HzXFhi4?2^(1aWPOyETgu}k^V z`nhcVTnqd3&GrJhVf_m+Zw4Dc9RM&TDCMMRzvAwxvry52s@3WMDqxlt<1WW}%i~Y4 zON@0iiv=}P*rc@@cUNZtOKELUDebUY!!@mZdaG0|47}*KU8m3(z-$YvcJc}COrBKe za6>`hJ&i{VbvR*ql+`8M9P@Ry>N10%#tn^=P-U{Z2Y`1ruxAYPN#`_|OqNVmve_;@ zpM-t&f*J+toe32I$bA5qgM+CH+UV<)QH%Xq`>&^GK3D=h3&3}$N~H&0^c$NM<)X1K z@GqLvMxfqyb?vG#m|Z?^KGm~!p4;U!mkysRVTL;QyrIQ)WBU9r+JOhYr4f;3_d-FO zsBTt_JXl9N2wCgqk^hQ$N-vR%K;?)VlX6KnExP>`!>J`-n9UG9l2LvW+D7%PK8irg z%R>4=PV}5Fawta_zV^1G5a%sB-H5%sZddyvfelYk(B$Wh^s+akZn+692mKC@emfY~ z%EaAbfSb6z2gUb2IpzTH^Fi5IPJ*rGVwnQeVT0Phzb+j7t-V2J_{vQa|MfC9v zm7}q}D~YnY=vtf8kG~C3`86bzL?9cLOUC}Ub-aY4`0U4j(umX4yo2!kd(gblw+(Nb zwee)BT}GJqBiK!<+t(}4+61zzvFXxp09xUrc$(m;&7#BGFfMeF zdhU1WYy1>C&L`|+!V7lQL!pZyookM3(*^a~gJgxmx)ur@9bK%}wxD)k{i+!kw9F!q zX%di9&GoIrK5a*0D;o*yBLZauK(Ux)g(W?2Oa@zHkx*H|(zj*S&_S-yLp|22@@I$i zkxUHcLY$8Rr;5I2o$uZ0E(lZjV@qnAo)xjV5)Ds#CSdP^=)hth#rdStJ`~U`y$y^n zwVk8CQIFY4xx%nYLl#!IL7l7+(7DD+SQ>0YR6YW38op?@La-L0=%N)2-I-ecD~nFq zF(gWBt-Fdv*EIauJm5)u3@O+ZD4-X)$X#*63XL6-UyHztPQL3#T$Z_6@_zG>bn|$- zr;jeXemk^UEakLT z!*pk3aMCOt$lz%LTA_RQVHJ^b<(_tAmU>8U)q?wV9EffY2mCY?R*10DH}@)E#Uw!1 z8W!Ttsgd4se-JvK{bu%U0w+3%oDAE~9c+V?+?3o*1}tg6_sz97BIP z2!B)~SXm%~ZMDthWq*3&-1tQ2aLJ7!-!HnHzE%A(8Sr0faV|SsPgx0M&g)KWkN2IP z{grrLKI)Mz%27bZ%1-0`Y61O7ghu)18wZn7R(}iy9OVfdCLf`qf3HIbLa{D)z@T%f zE#IFbV4C#JZJp1q^4gtFG`TWd)gjAcLBxLEh@Zs@+Cu++6KJuDwC7o`y|)Tbe^b2Q zE)7%kY#$_mLUh2UNO&Sk6md%excK0j?_9VkX?&Qo z9}C|;E152v7H&8U%|D@+`@M@6JjQk@SpLwT{*Bb4Lunp8VS8K{!h#*N}t-$zr0r!jAI{t z*NK|bf>DOJ9nupY=*lbdp;=GVq=W*1aZbcIR zwgq-%fkI_b_|`&}P7L@*33gs2>wxttvnQJ|TVbuw|1u1!{%QjHGN_9)x6}K=9N;L0 z$9!&0x|WUnZh4TT7So@=D}=>407tqUUFFsC@9s2pbXmb?MShO1kDPi2S2HuPot3#2 z=Q7BJn6}`?F|Zg#HNoGl#sGR%pfHcJ zKl(tKWdN;DzVV_^iSv=u+Y#UM`y82Pls0;L`D52a9CH{oTmtNPT3$ou2hL z@)`Srf%2x*hUW~;otKmJ9mxW-Rdy+7?)TP1pvz_32e#Mjv(+ZZSD&^m`sEPSJ9ThW?@P>+kupyaJlD z^P5SJnt-O=h|N;ZeZx`*GT}7*x;8D}t)la)7w_`GQiox=iC(`F>U!mZ zDf@S}-Z`|_3+9XiU_UegO?szlFj4G0z)~;U-){SV`O*S9j`b!BH<%>EL>Y{Pr4H2J z=DOtfnjfQy{5Mxp!jzyHw&liAtag&=Sc5VT1Il(D_bPVx|TwcToyhN#QE&I7Tw*;VG zz8`t8ocLXNU{>&S@L~$f#tArNdFgd4+*T{4=ijgSK5u|JA|I3K>E6@^c7^tcYjG}^P+|n! a$o~O%5jvbsb}IV-0000* literal 0 HcmV?d00001 diff --git a/canaille/static/img/canaille-head.svg b/canaille/static/img/canaille-head.svg new file mode 100644 index 00000000..55ec9bfc --- /dev/null +++ b/canaille/static/img/canaille-head.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/canaille/static/img/canaille-label.png b/canaille/static/img/canaille-label.png new file mode 100644 index 0000000000000000000000000000000000000000..befb387b539925654dbcbae732a21386e0dfb669 GIT binary patch literal 8749 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 X$6dI&=7ocG00000NkvXXu0mjfT?J|9 literal 0 HcmV?d00001 diff --git a/canaille/static/img/canaille-label.svg b/canaille/static/img/canaille-label.svg new file mode 100644 index 00000000..b0e8efc2 --- /dev/null +++ b/canaille/static/img/canaille-label.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/canaille/templates/base.html b/canaille/templates/base.html index f4aa6521..5bff2163 100644 --- a/canaille/templates/base.html +++ b/canaille/templates/base.html @@ -9,7 +9,7 @@ - {% if logo_url %}{% endif %} + {% if logo_url %}{% endif %} {% block style %}{% endblock %}